sexta-feira, 2 de novembro de 2012

Os 5 princípios básicos de segurança para empresas - PARTE 1


O mundo da computação é um complexo e constante processo de mudança.

Para minimizar os riscos de segurança as empresas devem atentar para os "5 princípios básicos de segurança":

  1. 100% de segurança não existe
  2. Os riscos de segurança são diretamente proporcionais à complexidade do software
  3. Implementar a segurança em camadas
  4. Não permitir que uma intrusão feita seja reaproveitada em outro lugar, ignorando a segurança
  5. Pensamento "Nós nunca estamos prontos para intrusos", conceito de mover-se a perfeição


100% de segurança não existe

É impossível garantir que todos os programas em execução em todos os seus sistemas estejam livres de qualquer tipo de bug que poderia ser aproveitado para quebrar sistemas. Existem muitas pessoas que simplesmente escrevem muitas linhas de código, verificando e checando muito pouco do seu trabalho. Esta não é apenas culpa dos desenvolvedores de software. Desenvolvimento de software é um processo extremamente complexo e um caractere incorreto (uma string por exemplo) em um programa com milhões de linhas de código pode criar um buraco de segurança.

Além disso você não pode prever com precisão as interações de milhares de programas diferentes que podem acabar em uma única rede em conjunto. É impossível que o código perfeito seja escrito, porque os criadores são também humanos e estão sujeitos a imperfeições, assim que você deve tomar decisões de arquitetura com este fato em mente.

A segurança é um trade-off. As necessidades do negócio devem ser equilibradas com as preocupações de segurança em grande parte da mesma maneira como os controles de segurança física. As políticas de segurança devem ser sempre efetuadas com uma avaliação de risco e análise de custo/benefício. No final, o grau de segurança é sempre uma decisão de negócios.

Os riscos de segurança são diretamente proporcionais à complexidade do software

Há aqui duas questões: a complexidade de cada programa de software e do número total de programas de software que compõem a sua solução web ou em server/client local. Quanto mais código você tiver, mais bugs serão susceptíveis de ter. Uma vez que todo o software tem erros, deve-se presumir que os erros podem ser explorados como falhas de segurança. Já as empresas só devem executar o software de que necessitam para estar operacional. As empresas devem eliminar programas de exemplo, scripts e documentação que são desnecessários para o funcionamento de um sistema de produção, porque não há razão para correr o risco quando esses programas entregam qualquer valor operacional. Além disso, mais software significa mais atualizações de segurança.

Então, por exemplo, se seus usuários básicos nem mesmo usam a ajuda do Linux, Windows ou qualquer outro sistema operacional ou aplicativo, por que então instalar a ajuda? Além de economizar espaço, se algum intruso descobrir uma falha na ajuda do Windows, por exemplo e você corrigiu todos aplicativos do sistema operacional Windows e pensou: "mas acho que na Ajuda do Windows, não haveria um possibilidade de intrusão", pode ser aí a grande falha e oportunidade do atacante, isto serve também para sistemas Linux e outros.

Não basta instalar a configuração padrão. A maioria dos softwares vem em uma configuração insegura e para torná-la tão fácil quanto possível na intrusão. Para eliminar os riscos de segurança desnecessários, você deve "blindar" o software ou instalação do sistema operacional, qual chamamos de Hardening¹, ou melhor, blindagem virtual. Em particular, a configuração padrão e as senhas devem ser alteradas, uma vez que estão facilmente disponíveis para os crackers e outros seres maléficos.


Outras providências que um processo de hardening pode incluir:

  • Limitar o software instalado àquele que se destina à função desejada do sistema;
  • Aplicar e manter os patches atualizados, tanto de sistema operacional quanto de aplicações;
  • Revisar e modificar as permissões dos sistemas de arquivos, em especial no que diz respeito a escrita e execução;
  • Reforçar a segurança do login, impondo uma política de senhas fortes.



Finalmente, os programas mais simples são menos propensos a ter falhas de segurança ao usá-los. É por isso que proxies são uma boa maneira de proteger a fronteira da rede de ataques externos. Proxies são programas simples - eles compreendem o protocolo de aplicação, mas não implementar a funcionalidade. Portanto, eles são mais seguros do que os servidores que protegem.

Implementar a segurança em camadas

A teoria da "cebola". Além da cebola ter várias camadas, ela tem um "cheiro desagradável". Pense nisso, forme uma segurança por camadas e criei um sistema de defesa que seja desagradável, ofensivo aos atacantes.

Como todo o código tem erros, você nunca quer confiar em qualquer pedaço de código como sua única linha de defesa. Se você aplicar várias camadas de segurança, o cracker não pode entrar tão facilmente, pois uma fraqueza em uma camada não pode representar uma ruptura total do sistema. Por exemplo, se o servidor está sendo executado como um usuário privilegiado, como "root" ou "admin" e há um bug em qualquer lugar dentro desse pedaço grande e complexo de código, um cracker pode muito bem ganhar acesso administrativo total para o seu computador. Se o servidor web é executado como um usuário não-privilegiado, então mesmo se um bug é encontrado, a exposição pode ser controlada.

Um exemplo básico de software baseado na "teoria da cebola" para mim, é o NMAP.

Quando executamos o NMAP sem o uso da conta root, podemos varrer os serviços com algumas opções, mas com todas opções, apenas usando a conta root. Então qual a tendência? De SEMPRE EXECUTARMOS O NMAP USANDO A CONTA ROOT e assim expomos também nosso sistema a uma varredura ou ataque. Há mais, é só usarmos a técnica de IP SPOOFING e MAC SPOOFING e tudo bem.

Nos próximos artigos vou demonstrar que dá para localizar que varreu um host, mesmo com IP/MAC SPOOFING.


Não permitir que uma intrusão feita seja reaproveitada em outro lugar da segurança

Separação da função é essencial para a segurança. Você precisa ter aparelhos separados para funções distintas e diferentes redes de computadores com diferentes níveis de segurança. Isso é ruim para GreenIT (TI Verde, como economizar energia à favor do meio ambiente, um bom exemplo, além das vantagens é a virtualização). Por exemplo, um servidor web se comunica com o mundo exterior, enquanto um servidor de banco de dados só deve se comunicar com o servidor web. Cada máquina deve estar em uma rede separada. Assim, se você tem uma "quebra" do servidor web por um cracker pode ter acesso ao seu servidor de e-mail, mas não o seu servidor de banco de dados, que é fisicamente isolado e protegido por firewalls e outros.

Tenha em mente, a segurança nunca é sobre uma coisa qualquer e sim do conjunto total. Além disso a segurança é tão boa quanto a um elo mais fraco, algo que muitas empresas parecem esquecer. Os firewalls são apenas uma peça do quebra-cabeça e assim você pode precisar de mais de um firewall. Por exemplo, muitas empresas utilizam redes privadas virtuais (VPNs) para permitir que dois escritórios possam se comunicar sobre uma forma "Internet segura". VPNs têm um fundamental calcanhar de Aquiles que poderia torná-los indesejáveis: se você tiver um usuário doméstico conectado a uma rede corporativa por meio de uma VPN, em seguida, toda a rede corporativa é tão segura quanto a segurança do PC doméstico.

Quão seguro é o escritório de sua casa?

Artigo :  Backtrack-linux.org


0 comentários:

Postar um comentário

Proibido palavras ofensivas, racistas ou descriminatórias.

[Seu Comentário será liberado no máximo em 24horas]