IDS orientados a comportamentos suspeitos



Os IDS atuais estão baseados em assinaturas de ataques conhecidos, que exploram vulnerabilidades já públicas e cuja forma de ataque já é conhecida. Muitas vezes porém, o ataque a uma rede não passa por uma vulnerabilidade inerente a um produto, mas sim a política de senhas, configurações equivocadas ou mesmo vulnerabilidades em produtos que ainda não foram cadastradas no IDS ou em software de antivírus. São estes os ataques mais perigosos, pois iludem a estrutura de detecção do ambiente trazendo uma falsa sensação de normalidade.

Um sistema de IDS também pode trabalhar procurando padrões de comportamento ao invés de assinaturas de ataques. Em uma rede com usuários de necessidades semelhantes o tráfego de rede tende a ser semelhante para todas as estações. No caso de servidores, é ainda mais fácil definir o que pode ser caracterizado não apenas como tráfego de rede normal, mas também como comportamento normal.

Fazendo uma análise rápida, poderíamos imaginar que os eventos abaixo não são comuns em uma rede corporativa, salvo as exceções onde as ferramentas mencionadas fazem parte do negócio da empresa ou do perfil dos usuários da rede analisada:

- Utilização de ICMP com destino a mais de 2 hosts por dia
- Acesso de upload constante e volumoso via http e HTTPS
- Inversão de proporção da quantidade de dados enviados em Upload/Download
- Tentativas de acesso SMB a compartilhamentos administrativos
- Acessos fora do horário de trabalho comum
- Conexões originadas de servidores Web, SMTP relay, POP, etc.
- Presença de comandos de sistema operacional em URLs, e-mails ou arquivos .doc, .xls, etc.
- Acesso remoto a registro de servidores Windows (administração remota da plataforma MS costuma utilizar de tal artifício) a partir de estações não autorizadas


Todos os itens acima podem existir em uma rede comum, porém na maioria das vezes são sinais de que algo diferente do normal está acontecendo. Dependendo do comportamento, pode ser considerado normal para determinada máquina e anormal para outra. Para que possam ser usados como base de uma ferramenta IDS, devem ser calibrados e aplicados aos hosts adequados. Um processo muitas vezes lento e trabalhoso, mas com uma vantagem sobre o sistema de assinaturas utilizado atualmente: A necessidade de atualização é menor. Como o que está sendo monitorado é o comportamento, e não os meios de ataque, pode-se identificar comportamento malicioso independentemente da vulnerabilidade explorada.

Assim como os IDS atuais, um IDS orientado a comportamento suspeito também pode trabalhar em configurações de rede e de host. Na configuração de rede, ataques através de ferramentas não autorizadas e tentativas de obtenção de informações de hosts vizinhos são mais fáceis de serem identificados. Já na configuração baseada em host, ataques provenientes de meios criptografados ou autorizados, além de tentativas de modificação não autorizada e instalação de rootkits podem ser mais facilmente detectados.

Alguns sistemas atuais já trazem em seu banco de assinaturas alguns casos genéricos, orientados à ação ao invés do meio. As regras do IDS de código aberto Snort, por exemplo, já incluem casos interessantes que podem ilustrar esse princípio. Abaixo estão alguns destes casos:

· Retorno de acessos HTTP onde há a string “Volume Serial Number”. Essa string está presente em todo o retorno do comando “dir”, fazendo com que qualquer ataque via HTTP no qual o atacante tenha conseguido executar tal comando seja detectado.
· Presença da string “uid=0(root)” no retorno de qualquer servidor da rede. É extremamente comum o atacante executar o comando “whoamiem servidores Unix atacados para verificar se foi possível obter o nível de acesso de administrador.
· Acesso Netbios a compartilhamentos administrativos (C$, D$, ADMIN$).
· Fragmentos de shellcode para plataformas específicas. Dessa maneira é possível identificar ataques de buffer overflow sem que haja a necessidade de se conhecer a vulnerabilidade em si.
· Uso
da stored procedure xp_cmd_shell em servidor SQL Server. Essa procedure é uma maneira de se executar comandos no sistema operacional do servidor SQL Server, muito usada em ataques de SQL Code Injection, onde o atacante aproveita a falta de verificação na entrada das aplicações para enviar código SQL para o servidor.


Tais assinaturas fazem com que mais de um tipo de ataque sejam detectados pela mesma assinatura. Independente da vulnerabilidade encontrada pelo atacante, muitas ações são comuns em casos de ataque e são parte quase que indispensáveis de um ataque bem sucedido. Ao se conhecer as principais estratégias de ataque e mapeando-as em strings que sempre são utilizadas e não fazem parte do uso comum dos sistemas podemos criar uma séria de regras e assinaturas que tem a enorme vantagem de funcionar para diversos tipos de ataques, com menos necessidade de atualização de ataques.

A grande diferença para as assinaturas convencionais, no entanto, está no fato de que é necessário estudar o ambiente no qual o IDS será implementado para que seja possível identificar quais ações são inerentes da administração e uso comum e quais são exceções que muito provavelmente caracterizam ataques. O custo maior de implementação, porém, é compensado pela maior eficácia da estratégia e maior peridiocidade na atualização das regras.


A real intenção de regras como as descritas acima é identificar as situações nas quais o atacante quer chegar, e não os métodos utilizados. Vulnerabilidades são descobertas todos os dias, porém o objetivo final dos ataques que as exploram são quase sempre os mesmos. Sistemas de detecção de intrusos tem sido criticados por gerar um grande overhead para a equipe de segurança. O alto número de assinaturas, que acabam gerando elevados níveis de falsos positivos no sistemas, tendem a fazer com que os alertas do IDS sejam desprezados pela administração e acabem sendo ignorados justamente no momento mais importante, quando o ataque é real e funcional. A movimentação de usuários não autorizados dentro da rede, como em ataques através de estações, que utilizam como portas de entrada ferramentas como o MS Outlook ou MS Office, ou mesmo de procedência interna, podem ser facilmente detectados. O comportamento e o tipo de informação acessada por determinados grupos de usuários tendem a ser constantes, facilitando a identificação dos ataques.

As advertências quanto ao papel do IDS em uma solução de segurança são válidas independentemente do tipo de abordagem utilizada para a identificação de ataques. Não é interessante confiar toda a segurança na identificação de ataques, pois a resposta pode não vir a tempo de evitar danos. Agregar uma estrutura de IDS a uma solução de segurança, quando existe a monitoração constante dos alertas gerados gerando ações corretivas é de fundamental importância para que seja possível trabalhar com um nível de risco aceitável na estrutura interna. Como é comum em situações de gerenciamento de risco, o trabalho para levar o risco do ambiente para níveis muito baixos é extremamente custoso e sujeito a falhas. Torna-se então uma boa alternativa aceitar níveis de risco maiores para reduzir os custos na manutenção e operação dos ambientes, apoiando-se no IDS orientado a comportamento suspeito para lidar com o risco residual.