Introdução

O conceito de intrusão em sistemas de computadores diz respeito a atividades realizadas com o intuito de comprometer a integridade, disponibilidade ou confidencialidade dos dados do sistema. Integridade é um aspecto que diz que, se o sistema é seguro, a informação contida em um conjunto de dados não deve ser destruída nem corrompida, e desta forma, o sistema funciona corretamente; disponibilidade diz que, se o sistema é seguro, há garantia permanente de recursos ou de serviços sempre que estes forem requisitados por um usuário, e confidencialidade diz que as informações contidas nos dados só devem estar disponíveis para aqueles que realmente possuírem autorização para acessá-los.
Dadas essas definições, podemos exemplificar algumas violações a cada um desses princípios:se alguém obtém acesso não-autorizado a seu computador e modifica um relatório que você preparou, introduzindo dados incorretos com o objetivo de prejudicá-lo, esta é uma violação a integridade dos seus dados; se o seu provedor de serviços sofrer um ataque do tipo Denial of Service (DoS) impossibilitando que você acesse recursos como seu e-mail pessoal, esta é uma violação a diponibilidade dos serviços do provedor; se alguém obtiver acesso não-autorizado a seu computador e for capaz de ler as informações contidas num arquivo que você considera sigilosas (como dados bancários, declaração do Imposto de Renda, etc.) esta é uma violação a confidencialidade  dos seus dados.

Intrusões podem então ser de uma variedade de tipos: o primeiro caso é do usuário que rouba uma senha e portanto, possui meios para se fazer passar por uma pessoa com acesso e realizar o ataque (este usuário é chamado mascarado). Além disso, uma intrusão também pode ser caracterizada por um usuário legítimo que abusa de seus privilégios, por exemplo um funcionário de uma empresa agindo em benefício próprio ou de outra corporação, realizando, por exemplo, fraudes financeiras. Estes casos são denominados ataques internos e, em 2006, respondiam por 58% do número total de ataques de uma rede corporativa[9], de acordo com pesquisa realizada pelo CERT (Computer Emergency Response Team).Até mesmo pessoas amadoras conseguem encontrar na Internet scripts (ou até ferramentas que tornam isso possível com um clique apenas!) que exploram falhas de um software e assim realizam ataques. Logo, torna-se altamente necessário possuir um meio de descobrir quando uma intrusão estiver em andamento, para ser capaz de reagir antes que algum possível dano seja causado.

Um sistema de detecção de intrusão (SDI), de forma análoga aos sistemas que detectam invasões em domicílios, é, portanto, um sistema usado para determinar a ocorrência de atividades maliciosas em um ou mais computadores, podendo ser instalado em uma máquina ou em rede. Sendo primariamente um método de detecção, é sempre recomendado que os SDIs sejam utilizados paralelamente a outras ferramentas que fortifiquem a segurança do “perímetro” do sistema a ser defendido, como firewalls, anti-vírus, protocolos de autenticação, criptografia, etc.

Histórico[4]

O conceito básico para a criação dos SDIs surgiu em 1980, em um artigo publicado por James Anderson. Neste artigo, ele introduziu a idéia de que é importante verificar trilhas de dados, pois estas poderiam conter informações valiosas sobre o comportamento do usuário que estivesse operando o computador e, assim, rastrear usos indevidos.

Em 1984, após passar um ano trabalhando em um projeto que visava criar perfis de usuários baseados na análise de dados de mainframes do governo, a dra. Dorothy Denning ajudou a criar o primeiro modelo de detecção de intrusão, o IDES (Intrusion Detection Expert System). Este trabalho fez com que ela publicasse o artigo “An Intrusion Detection Model”, que revelava as informações necessárias para o desenvolvimento de SDIs comerciais.

O projeto Haystack, em 1988, produziu o primeiro SDI que visava analisar os dados coletados comparando-os com padrões conhecidos, que definiu a base da detecção por Análise de Assinaturas. Os desenvolvedores deste projeto fundaram a compania Haystack Labs e lançaram o Stalker, um robusto SDI baseado em estação com análise de assinaturas.

Já o conceito de detecção de intrusão em redes surgiu em 1990, com o Network Security Monitor(NSM), desenvolvido por Todd Heberlein. Na mesma época, as primeiras soluções comerciais de detecção de intrusão começaram a ser desenvolvidas, com a linha Stalker sendo a primeira a ser vendida. Em 1994 começou a ser vendido a primeira versão comercial de um SDI baseado em rede viável, o NetRanger, da WheelGroup, que foi posteriormente comprada pela Cisco.

Somente a partir de 1997, porém, que o mercado de SDIs começou a gerar retornos. Nesta época a ISS lançou o RealSecure e várias outras empresas surgiram, como a Centrax (uma fusão das equipes da Haystack e da SAIC).
De lá para cá, os SDIs se tornaram uma das ferramentas mais importantes na área de segurança automatizada, e estão entre as tecnologias mais vendidas.
 
Funcionamento


Em linhas gerais, um SDI realiza as seguintes tarefas: coletar dados em trânsito na rede (ou em uma máquina apenas, no caso de sistemas baseados em estação), gerando logs e posteriormente fazendo a análise desses logs em busca de sinais de possíveis ataques ou atividades consideradas anormais. Se um possível ataque é encontrado, o sistema gera um alerta que é comunicado ao(s) administrador(es) da rede, que foi previamente configurado. Esta é a ação-padrão tomada por todos os sistemas, mas existem alguns SDIs que podem, além disso, serem configurados para tomar algum tipo de atitude reativa, como reconfigurar um firewall ou opção de roteamento na rede, iniciar um aplicativo externo ou forçar o fim de uma conexão TCP, por exemplo.

Vamos retornar a analogia com os sistemas domiciliares que são usados contra ladrões. Da mesma forma que nestes sistemas, onde deve ser definido quais áreas da casa devem ser monitoradas e quem deve ser comunicado em caso de invasão , os SDIs também ser configurados pela forma como se deseja que o tráfego da rede seja "vigiado", especificando determinados fluxos ou processos internos, por exemplo. Além disso, deve ser configurado quem deverá ser notificado, que tipo de aviso/relatório essa pessoa deve receber, e como estes serão enviados.

Anterior | início | Próximo