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

Autor: Mauro Risonho de Paula Assumpção A.K.A firebits <firebits at backtrack.com.br>

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

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


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?

Pensamento "Nós nunca estamos prontos para intrusos", conceito de mover-se a perfeição

Um grande erro que muitas empresas fazem é configurar um firewall ou
alguma outra proteção e então eles se esquecem deste recurso e "tudo
está seguro". A segurança é um processo contínuo. Você deve
continuamente monitorar arquivos de log e manter a par das novas
ameaças à segurança. Além disso, você deve manter-se atualizado com
patches de software para reparar os buracos de segurança mais recentes.
Mais de 90% dos incidentes de segurança poderiam ser evitados se o
administrador de redes ou de sistemas tivesse atualizado os patches de
software.

Aí que entra o processo de teste de vulnerabilidades, que gera
um laudo das vulnerabilidades do seu ambiente, orientando quais os
melhores patches (correções) para uma determinada falha ou falhas.

Para se manter-se atualizado e aproveitar a experiência de outras pessoas, use recursos como dos sites Viva o Linux, Backtrack Brasil e o conhecimento de pentesters, analistas de segurança e peritos em segurança. Talvez você pense, qual o custo disso tudo?

Mas repense melhor, qual é o custo de perder tempo da sua
empresa (veja quanto sua empresa gera seus produtos em 1 hora e qual o
custo quando ela fica parada por 1 hora) ou em casa e pior, ser
acusado, por exemplo, de pedofilia, porque alguns crackers ou
pedófilos, colocaram imagens indevidas no seu computador e a policia
federal detectou que provem do seus computadores, ou ainda spamers usam
seu computador como forma de enviar spam a outros usuários, tornando as
vezes sua conexão de internet lenta. Ou algum cracker roubou um site de
banco, retirou dinheiro e as informações provem de seu computador.

Muitos pensam, "então devo retirar dinheiro pessoalmente no banco" ou
"vou pagar esta conta pessoalmente no banco ou em outro
estabelecimento", mas isso não é uma tendência e sim o contrário.

Você já notou quanto tempo você perde em um cidade grande para
fazer o procedimento de pagamento ou saque manualmente, mesmo em um
terminal?

Ou também como você se expõe aos perigos de um assalto real e não virtual, fazendo isso?

Então é uma tendência usar a Internet para transações bancárias ou outros tipos de compra e venda, por exemplo.

Isso não significa que você não pode fazê-lo em casa, mas você tem que
dedicar recursos significativos para isso se você quiser fazer um
trabalho razoável.

Comprar equipamentos de segurança com bons firewalls, IDs, IPs
e outros, bem como contratar um profissional de segurança para
implementar da melhor forma esta questão.

Boa segurança definitivamente pode ser alcançada, mas é
preciso um esforço dedicado. Reconhecendo que a segurança é um meio
para um fim e não um fim em si mesmo, vai proporcionar a melhoria maior
e individual na segurança geral do seu site, da sua empresa, na sua
casa ou no seu sistema.

Faça como os escoteiros fazem:

"Sempre alerta!"

Obs.: Hardening é um processo de mapeamento das ameaças,
mitigação dos riscos e execução das atividades corretivas – com foco na
infra-estrutura e objetivo principal de torná-la preparada para
enfrentar tentativas de ataque. Normalmente, o processo inclui remover
ou desabilitar nomes ou logins de usuários que não estejam mais em uso,
além de serviços desnecessários.

Referência:

Mauro Risonho de Paula Assumpção
Fundador do BackTrack Brasil (BTB)
Pentester, Analista em Segurança
Desenvolvedor de Software
firebits@backtrack.com.br
http://www.backtrack.com.br
última palestra ministrada: 05-fev-2009 Intel Moblin Day 2008-2009
http://www.intel.com/portugues/pressroom/releases/2009/0205.htm


http://www.vivaolinux.com.br/artigo/Os-5-principios-basicos-de-seguranca-para-empresas

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s