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 “whoami”
· 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
· Uso
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.