• Nenhum resultado encontrado

V

ULNERABILIDADES são descobertas com freqüência e é possível falar com absoluta tranqüilidade que não existem servidores 99% seguros. O que se pode pretender é um servidor que ofereça tanta dificuldade que ele desesti-

mule os invasores. Mas mesmo com esse nível de dificuldade, não é possível confiar cegamente no sistema. Dessa maneira, o administrador deve estar utilizando ferramentas de detecção e prevenção de intrusos para monitorar o sistema de sua responsabilidade, com o objetivo de impedir que ataques em fase inicial consigam chegar a um nível indesejado de intrusão no sistema.

Parte do serviço de prevenção de intrusos é feito com uma implementação de uma política de segurança adequada. Obviamente, essa política deve estar baseada em serviços criptográficos, uma correta configuração de serviços e firewall, entre outros. Dessa maneira, a dificuldade gerada servirá como uma prevenção adequada de intrusos. Mas isso não é suficiente, exigindo o uso de mecanismos que permitam alertar ou mesmo bloquear tentativas de ataque. O processo de detecção de intrusos envolve inúmeras estratégias. Geralmente são utilizadas ferramentas IDS (Intrusion Detection System - Sistema de Detec- ção de Intrusos). É importante notar que esse termo pode ser usado de várias maneiras, de forma mais ampla ou mais restrita.

Em uma abordagem mais restrita, IDS refere-se apenas aos aplicativos ca- pazes de alertar quando uma tentativa de invasão encontra-se em ação. Nesse sentido, constituem-se principalmente em programas de monitoramento de conexões de rede, como o Snort35. Em uma visão mais ampla, também são

IDS as ferramentas utilizadas para monitorar a integridade do sistema. Nesse caso, também podem ser definidos claramente como IDS os verificadores de integridade de arquivos, como o AIDE36 ou o Tripwire37:

Técnicas de Detecção de Intrusos se aproximam bastante daquelas usadas em Firewalls e sistemas de Log, e o seu objetivo principal é reagir a uma invasão (ou suspeita de invasão) no menor intervalo de tempo possível. Isto pode ser feito, por exemplo, monitorando-se continuamente o tráfego de rede, à procura de qualquer anomalia, ou então analisando-se conti- nuamente as últimas entradas dos arquivos de log, à procura de ações suspeitas.

(WEBER, 2000)

Em (NAKAMURA; GEUS,2002) é proposta uma classificação de ferramen- tas IDS nas seguintes categorias:

HIDS – Host-Based Intrusion Detection System: monitora o sistema utili- zando informações locais, como arquivos de logs ou agentes de auditoria.

35Snort: http://www.snort.org/.

36AIDE:http://www.cs.tut.fi/~rammer/aide.html. 37Tripwire:http://www.tripwire.com/.

O HIDS pode ser capaz de monitorar acessos e alterações em arquivos e processos no sistema, entre outros aspectos. Exemplos de IDS nessa categoria são o Tripwire, o AIDE, OSSEC 38 e as Sentrytools39.

NIDS – Network-Based Intrusion Detection System: monitora o tráfego de rede, geralmente utilizando a interface da rede em modo promíscuo, como se fosse um sniffer. Exemplos de IDS nessa categoria são o Snort e o AAFID40.

Hybrid IDS – Hybrid Intrusion Detection System: utiliza monitoração do sis- tema e da rede ao mesmo tempo para prevenir ataques. Com isso tem-se o melhor dos sistemas HIDS e NIDS. Um exemplo de IDS nessa categoria é o Prelude41.

Como comentado em (KIM et al., 2007), HIDS tem a vantagem de verificar se um ataque foi bem sucedido, bem como detectar ataques locais e explo- ração de privilégios42. Entretanto, esses sistemas são difíceis de manter e configurar, uma vez que precisam ser adaptados a cada máquina onde são instalados. NIDS, por outro lado podem ser centralizados em um roteador da rede, por exemplo e exigem menos esforço para sua configuração e manuten- ção. Entretanto, são incapazes de detectar vários tipos de ataques, inclusive os encriptados.

Entre as ferramentas IDS, merecem destaque aquelas que trabalham com mecanismos ativos de detecção de intrusão. Esse processo refere-se principal- mente ao uso de ferramentas que monitoram o sistema ou, principalmente, a rede, efetuando ações pré-estabelecidas tão logo algo estranho seja detectado. A filosofia, de certa forma, é extremamente simples: o IDS analisa continua- mente o sistema ou a rede e tão logo reconheça um padrão estranho, algum mecanismo de alerta ou de defesa é acionado, dependendo do caso.

Nesse sentido, é possível dizer que sistemas IDS funcionam de forma se- melhante aos sistemas anti-vírus atuais, que continuamente ficam analisando arquivos inseridos no computador ou que chegam via rede. Uma tentativa de invasão, assim como um vírus, pode ser detectada por um padrão. Não será de estranhar se, num futuro próximo, as empresas desenvolvedoras de anti-

38OSSEC: http://www.ossec.net/.

39Sentrytools: http://sourceforge.net/projects/sentrytools/.

40AAFID: http://www.cerias.purdue.edu/about/history/coast/projects/aafid.

php.

41Prelude: http://www.prelude-ids.com/.

vírus acabem por inserir ferramentas IDS em seus produtos ou transformar seus produtos em IDS.

Uma invasão geralmente deixa rastros. Talvez, inclusive, seja possível dizer que, da mesma forma que não existe um sistema totalmente seguro, não existe uma invasão perfeita. Assim, a verificação periódica dos arquivos de registros pode evitar surpresas extremamente desagradáveis, ao mostrar a tentativa de invasão desde o seu início.

Um esclarecimento a ser feito é que, em um sistema medianamente seguro, uma invasão é um procedimento relativamente demorado. Assim, o leitor deve excluir de sua imaginação a imagem romântica de um hacker que consegue penetrar em um sistema em poucos minutos. A menos que o sistema seja uma peneira de vulnerabilidades, uma invasão irá exigir esforço e paciência do intruso, que terá que fazer inúmeras tentativas para conseguir seu intento. Caso haja uma verificação periódica dos logs, por exemplo, uma tentativa de invasão pode ser bloqueada em seu início. Além disso, os arquivos de re- gistros podem indicar falhas em serviços, o que poderia comprometer não só a segurança, mas a qualidade do sistema. Outro motivo para a verificação pe- riódica dos logs é a possibilidade de verificação de ações anormais no sistema, como logins fora do padrão ou tentativas de execução de aplicações restritas.

Outro mecanismo poderoso para a verificação da intrusão é a monitora- ção dos processos de sistema, em busca de anomalias. Em geral, tentativas de invasão sobrecarregam o número de processos do sistema, ou fazem com que determinados processos consumam mais recursos, como memória e CPU, comparados a uma execução normal. Isso ocorre porque em geral o invasor envia uma grande quantidade de dados ou de pedidos de conexão, em busca de fragilidades no sistema.

Um problema parecido ao detecção de intrusos, a detecção de SPAM con- siste na análise da mensagem, incluindo seu texto e cabeçalho, com a finali- dade de determinar a probabilidade da mesma enquadrar-se nessa categoria. Em geral, esse processo é implementado como filtro, seja em um dos serviços de e-mail43, seja no cliente do usuário.

Deve-se destacar que o processo de reconhecimento, tanto de intruso como de SPAM, pode gerar falsos positivos ou falsos negativos, como a maioria dos

43Como comentado em (UCHÔA,2005), o processo de envio e recebimento de e-mail envolve

mais de um tipo de servidor. Em geral, inclui: servidor SMTP (para envio e recebimento das mensagens) e servidor IMAP ou POP ou Webmail (para leitura das mensagens pelo usuário). Em geral, filtros anti-SPAM, quando instalados no servidor, são configurados para funcionar em conjunto com o servidor SMTP.

sistemas de reconhecimento de padrão. Tomando-se SPAM como exemplo, tem-se como falsos negativos as mensagens que são caracterizadamente SPAM e que seriam entregues ao usuário como se fossem mensagens legítimas. Por outro lado, o sistema anti-SPAM poderia detectar como sendo SPAM uma men- sagem importante para o usuário, evitando (ou atrapalhando) a entrega de uma mensagem legítima. Como pode ser inferido desse exemplo, em geral tem-se maior aceitação para falsos negativos que para falsos positivos, tanto na detecção de intrusos como na detecção de SPAM.

Os IDSs atuais geralmente são construídos ou baseados em detecção de anomalia ou detecção de mal uso, como apontado em (BIERMANN; CLOETE; VENTER, 2001). Quando baseados em detecção de anomalia, o IDS irá tomar por base que um ataque será diferente da atividade normal, e o invasor irá exibir um padrão de comportamento diferente do usuário legítimo. Por ou- tro lado, a abordagem de detecção de mal uso é baseada num repositório de técnicas conhecidas de intrusão – invasões são descobertas a partir da com- paração de dados do sistema com aqueles armazenados no repositório. Ainda em (BIERMANN; CLOETE; VENTER,2001), é possível verificar uma compara- ção de várias técnicas de IDSs com relação ao tipo de funcionamento e alguns outros critérios comparativos. Esse artigo, entretanto, não inclui SIAs entre as abordagens adotadas no desenvolvimento de IDS.

Como comentado em (AICKELIN; GREENSMITH; TWYCROSS, 2004), sis- temas baseados em detecção de mal-uso irão apresentar um número muito baixo de falsos positivos, mas serão incapazes de detectar novos tipos de ata- ques, ou ataques ofuscados. Assim, esses sistemas geram um grande número de falsos negativos. Por outro lado, sistemas baseados em detecção de anoma- lias são capazes de detectar novos tipos de ataques, mas costumam gerar um grande número de falsos positivos. Isso deve-se principalmente ao fato que o uso legítimo de sistemas computacionais é dinâmico, modificando-se com o passar do tempo. Obviamente, tratar essas questões é uma grande dificuldade no projeto e desenvolvimento de um IDS.

3.7 Comentários Finais

U

SUÁRIOS de computadores tem-se deparado cada vez mais com proble- mas sérios de segurança em redes de computadores. Dessa maneira, tem crescido os esforços e estudos na área de Segurança Computacional, com vistas a atacar esses e outros problemas que impedem um uso adequado dos

recursos computacionais. Este capítulo teve o objetivo de apresentar por- tanto, os conceitos básicos na área de Segurança Computacional, bem como os principais tipos de riscos e ataques existentes nas redes de comunicação de dados.

O capítulo foi produzido com o objetivo de conscientizar o leitor dos pro- blemas envolvendo segurança computacional e a necessidade de busca de soluções para a área. Uma visão mais completa sobre o assunto pode ser encontrada em (NAKAMURA; GEUS,2002), (SCHNEIER,2001) e (CHESWICK; BELLOVIN; RUBIN, 2005). Uma introdução ao assunto em uma linguagem bem acessível ao usuário leigo é propiciada pela Cartilha de Segurança na Internet44, um livro produzido pelo CERT.br (Centro de Estudos, Resposta

e Tratamento de Incidentes de Segurança no Brasil). Além do livro, alguns vídeos sobre o assunto estão disponibilizados. Detalhes sobre algumas vul- nerabilidades em redes TCP/IP, bem como mecanismos de exploração dessas falhas podem ser verificadas em (MELO,2004). Em (NEY,2006), são apresen- tadas diversas técnicas para verificação de vulnerabilidades utilizando-se do Nmap. Técnicas clássicas para detecção de intrusos em redes de computado- res podem ser encontradas em (NORTHCUTT; NOVAK; MCLACHLAN,2001).

É importante esclarecer que este capítulo foi produzido principalmente a partir da experiência adquirida pelo autor em administração de laboratórios e uso de diversos sistemas operacionais. Essa experiência em administração de sistemas foi enriquecida pela leitura de diversos materiais, destacando- se, além dos textos citados: (NEMETH et al., 1995), (NEMETH et al., 2001), (NEMETH; SNYDER; HEIN, 2002),(STANFIELD; SMITH, 2001), (WIRZENIUS et al., 2002), (FRAMPTON, 1999), (MANN; MITCHELL, 2000), (ANONYMOUS,

2000),(KIRCH; DAWSON,2002), (BAUTTS; DAWSON; PURDY,2005), (HATCH; LEE; KURTZ,2002), (SCHNEIER, 1996) e (NIC BR SECURITY OFFICE, 2003). A essas referências devem ser acrescidos vários HOWTOs45 disponibilizados

pela The Linux Documentation Project46. Entre esses HOWTOs, destacam-se (FENZI,2004), (BURGISS, 2002a) e (BURGISS, 2002b).

44Cartilha de Segurança na Internet: http://cartilha.cert.br/.

45Um HOWTO é um pequeno guia que ensina um usuário a configurar um serviço ou fazer

uma dada tarefa.

Imunologia e Imunoinformática

(...) Mas, como a realidade pensada não é a dita mas a pensada, Assim a mesma dita realidade existe, não o ser pensada.

Assim tudo o que existe, simplesmente existe. O resto é uma espécie de sono que temos,

Uma velhice que nos acompanha desde a infância da doença.

Fernando Pessoa O peito, o corpo, é sempre uno, mas as almas que nele residem não são nem duas, nem cinco, mas incontáveis, o homem é um bulbo formado por cem folhas, um tecido urdido com muitos fios.

Herman Hesse, O Lobo da Estepe

4.1 Comentários Iniciais

E

STE trabalho tem por objetivo principal a utilização de algoritmos inspi- rados no funcionamento do sistema imune para aplicação em problemas de Segurança Computacional. Assim, este capítulo tem o propósito de apre- sentar conceitos básicos que auxiliem na compreensão da proposta do traba- lho de pesquisa e desenvolvimento. Dessa maneira, a Seção4.2 e a Seção 4.3

apresentam um conjunto mínimo de conceitos do sistema imune, com uma breve discussão sobre visões acerca do seu funcionamento.

Na parte final deste capítulo, na Seção 4.5, é apresentada a Imunoinfor- mática, uso de técnicas de Bioinformática em Imunologia. Na Seção 4.6 são apresentados conceitos básicos sobre sistemas complexos e autômatos celu- lares, conceitos esses fundamentais para compreensão da área de modelagem do sistema imune, apresentada na Seção 4.7. O objetivo inicial de apresentar esses conceitos é principalmente ampliar a visão do leitor sobre as possibi- lidades de relacionamento entre Informática e Biologia. A motivação maior, entretanto, é o fato que alguns pesquisadores de algoritmos imunoinspirados também trabalham com modelagem do sistema imune e uma visão mais ge- ral sobre o assunto irá permitir uma melhor compreensão da área e tipo de pesquisa utilizadas neste trabalho.

O foco de interesse desta pesquisa, entretanto, recai sobre a área de Sis- temas Imunes Artificiais, um tipo de algoritmo imunoinspirado, e que serão discutidos no Capítulo 5. Essa área possui vários pontos de contato com a Imunoinformática e consiste na aplicação de conceitos imunológicos na busca de solução de problemas de Engenharia. Optou-se neste texto por uma apre- sentação inicial dos conceitos de Imunoinformática antes de Sistemas Imunes Artificiais, uma vez que isso permite uma apresentação dos conceitos indo do sistema biológico ao simulacro in silico, o que de certa forma traduz o espírito do trabalho apresentado neste texto.