conceitos básicos sobre segurança parte 3

3

Click here to load reader

Upload: felipe-santos

Post on 09-Jul-2015

294 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Conceitos BáSicos Sobre SegurançA   Parte 3

Conceitos Básicos sobre Segurança - Parte IIIPor: 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 comousuá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 nelecontidas, podemos dizer que ocorreu um incidente de segurança.

Tais vulnerabilidades podem ser causadas por falhas de engenharia, design do programa ou mesmo porproblemas 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 sempreocupações de segurança. Quando algo é criado tratando um fator como secundário, é muito difícil torná-loeficiente 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 geralmentesão rápidos, fáceis, baratos, e além disso podem ser difíceis de detectar ou rastrear. Um invasor nãonecessariamente precisa estar fisicamente no local, pode estar em qualquer lugar do mundo, que ainda podeser 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 asvelhas soluções são dadas como certas. Na verdade,o administrador acaba assim ficando mais iludido queseguro.

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ãorepudiação. Exemplo disso é a utilização de um sniffer, onde, através de um site comprometido, podemosobter 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 depúblico veio também o aumento de tráfego, de protocolos e de serviços, que ainda não estão 100 % parautilização. Além disso, os fabricantes inserem novos recursos, com mais buracos, e acabam piorando aindamais 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 sefosse 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

Page 2: Conceitos BáSicos Sobre SegurançA   Parte 3

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 quemrealmente é quando se loga. NFS é algo que já é altamente batido no universo Internet, recomendo umaexperiência com Coda (muito bom!).

Quando um programa é desenvolvido e secundariamente se fala na questão da segurança, ela é tratadacomo 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, é bemcomum entre os desenvolvedores atuais, porém, cada vez mais (ainda não podemos generalizar), a questãoda 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 queaceita conexões de todos os lugares, pode-se conectar, tentar mandar um email para determinado usuário ecaso 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 queparecem 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 grandeatençã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 falhascausadas 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é queaconteça maiores problemas e se tenha que sair dele. Ou seja, as pessoas tem uma tendência enorme denão mexer o que já vem configurado. Também pode acontecer por equívocos em suas configurações queacabe causando falhas grotescas em segurança.

Costuma-se pedir que servidores em geral sejam rodados em ambientes isolados. Pegando o FTP comoexemplo, pede-se para que ele seja rodado isoladamente do sistema atual, não permitindo o usuário a leiturada á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 separarpor ambientes será discutido em outros artigos e é válido para vários outros serviços).

Referências do Artigo

http://www.cert.orghttp://www.securityfocus.com

Page 3: Conceitos BáSicos Sobre SegurançA   Parte 3

Bem, acho que é isso, agradeço os emails que tenho recebido e espero que gostem, qualquer dúvida postemmensagem nos nossos fóruns.

Abraços,Elias Bareinboim

Copyright (C) 1999-2000 Linux Solutions