Conceitos BáSicos Sobre SegurançA Parte 3

389 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
389
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1
Ações
Compartilhamentos
0
Downloads
4
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Conceitos BáSicos Sobre SegurançA Parte 3

  1. 1. Conceitos Básicos sobre Segurança - Parte III Por: Elias Barenboim ( 02/05/2001 ) O que é vulnerabilidade? E incidente de segurança? Uma vulnerabilidade é uma falha que o usuário poderá explorar para obter algo que não é autorizada como usuária legítima daquela máquina ou serviço. Quando uma vulnerabilidade é explorada e compromete de fato a segurança do sistema ou informações nele contidas, podemos dizer que ocorreu um incidente de segurança. Tais vulnerabilidades podem ser causadas por falhas de engenharia, design do programa ou mesmo por problemas em sua implementação e configuração. Por que a Internet é vulnerável? Vários dos protocolos que hoje fazem parte da infra-estrutura da grande rede foram desenhados sem preocupações de segurança. Quando algo é criado tratando um fator como secundário, é muito difícil torná-lo eficiente posteriormente. Assim aconteceu com a segurança na Internet(futuramente isso vai mudar, já estamos caminhando para isso) . Outro problema é a dinamicidade da Grande Rede, sua topologia, tecnologias empregadas e massa de público . Por causa de sua estrutura altamente aberta e seus protocolos básicos, os ataques que sofrem geralmente são rápidos, fáceis, baratos, e além disso podem ser difíceis de detectar ou rastrear. Um invasor não necessariamente precisa estar fisicamente no local, pode estar em qualquer lugar do mundo, que ainda pode ser omitido facilmente. Existem vários sites que não consideram as questões de segurança. Eles acham que sua segurança já é suficiente, que nunca serão atacados ou até mesmo que a Internet é um meio seguro ! Atualmente, técnicas são desenvolvidas constantemente, ferramentas novas estão surgindo a cada hora e as velhas soluções são dadas como certas. Na verdade,o administrador acaba assim ficando mais iludido que seguro. Nota-se também que a grande quantidade de dados que trafegam na Internet não são criptografados. Confidenciabilidade e integridade são muito difíceis de se obter com isso. Isso prejudica não só aplicativos(como de financeiras) mas todos os mecanismos fundamentais como autenticacão e não repudiação. Exemplo disso é a utilização de um sniffer, onde, através de um site comprometido, podemos obter informações de um outro computador, até então "seguro", através deste. Dados como login, senhas, nomes de máquinas, dados do sistema e vários dados pessoais acabam ficando disponíveis. Outro fator interessante é o crescimento exponencial da Internet nos últimos anos. Com esse aumento de público veio também o aumento de tráfego, de protocolos e de serviços, que ainda não estão 100 % para utilização. Além disso, os fabricantes inserem novos recursos, com mais buracos, e acabam piorando ainda mais o programa. Um questão interessante é o fato das máquinas já entregues, montadas. Em geral, elas são colocadas lá já com o intuito de mostrar que possui o máximo de programas possíveis, de recursos e de fácil utilização . Questões de segurança são esquecidas nesta hora. Tipos de Vulnerabilidades Falhas nos Programas ou Design do Protocolo: Primeiramente, protocolos são as regras básicas de conversa entre computadores numa rede, ele é como se fosse a língua que ambos os computadores são "obrigados" a falar para se comunicarem. Se o protocolo contiver uma falha em seu design, isso será fácil de se explorar independente de quão bom ele
  2. 2. seja implementado. Um exemplo clássico disto é o NFS. Seu objetivo básico é compartilhar arquivos, intrinsicamente ele não inclui nenhum tipo de restrição quanto ao acesso e à autenticação: não se sabe quem realmente é quando se loga. NFS é algo que já é altamente batido no universo Internet, recomendo uma experiência com Coda (muito bom!). Quando um programa é desenvolvido e secundariamente se fala na questão da segurança, ela é tratada como algo adicional. Por não ser core (essencial) ao sistema, ela não engloba este como um todo; sempre há furos. Não se desenvolveu pensando nisso, é apenas um ¨bônus. Essa situação, lamentavelmente, é bem comum entre os desenvolvedores atuais, porém, cada vez mais (ainda não podemos generalizar), a questão da segurança está sendo mais refletida quando se quer desenvolver algo. Falhas na Implementação do Protocolo: Mesmo sendo bem desenhado e planejado, o programa ainda não está imune totalmente. A implementação (fase do desenvolvimento quando começamos a pôr em prática o que foi definido, deixar operacional) é importante para definir como o protocolo vai se comportar em seu ambiente. Um serviço pode então se tornar altamente perigoso pela forma que é implementado. Um servidor de Email por natureza deixa qualquer um se conectar a ele (a princípio). Imagine um destes que aceita conexões de todos os lugares, pode-se conectar, tentar mandar um email para determinado usuário e caso retorne sucesso já se descobriu uma conta na máquina. Caso deseje, tente outras coisas. Lógico que isso não parece muito significativo, mas é o primeiro passo para se obter informações relevantes, como nome de usuários, versões de programas, configurações da máquina e vários outros detalhes que parecem não importar. Algumas falhas comuns no design/implementação dos programas: checar pelo conteúdos dos dados e tamanho; checar pelo sucesso ou falha; falta de habilidade para se adaptar ao esgotamento dos recursos do sistema; checagem incompleta do ambiente operacional; uso inapropriado de chamadas do sistema; reutilização de funções para outros propósito que não tenham sido previamente determinado. Lembre-se, coisas que parecem irrelevantes ou mesmo uma conta (máquina, rede) que não merece grande atenção são os primeiros passos para que o invasor ganhe acesso a partes mais privilegiadas de seu sistema (isso serve para usuários, máquinas e redes). Falhas nas Configurações do Sistema e Rede: São falhas que não são causadas pelo design do protocolo nem mesmo por implementação. São falhas causadas pelo método que são instaladas e configuradas. Um grande problema é a famosa palavra "default", tudo vem por default e é deixado no default, até que aconteça maiores problemas e se tenha que sair dele. Ou seja, as pessoas tem uma tendência enorme de não mexer o que já vem configurado. Também pode acontecer por equívocos em suas configurações que acabe causando falhas grotescas em segurança. Costuma-se pedir que servidores em geral sejam rodados em ambientes isolados. Pegando o FTP como exemplo, pede-se para que ele seja rodado isoladamente do sistema atual, não permitindo o usuário a leitura da árvore de diretórios: apenas aquela sub-árvore pré-determinada. Caso aconteça um erro na configuração, pode-se com isso expor o sistema por inteiro, por uma coisa relativamente trivial(este exemplo de separar por ambientes será discutido em outros artigos e é válido para vários outros serviços). Referências do Artigo http://www.cert.org http://www.securityfocus.com
  3. 3. Bem, acho que é isso, agradeço os emails que tenho recebido e espero que gostem, qualquer dúvida postem mensagem nos nossos fóruns. Abraços, Elias Bareinboim Copyright (C) 1999-2000 Linux Solutions

×