Técnicas de evasão de IDS - Diego Macêdo
Uma vez que você, como um pentester, está tentando testar a segurança de um sistema, você deve ser capaz de contornar esses dispositivos de proteção, se possível ou pelo menos saber como tentar fazê-lo. Veremos os vários mecanismos disponíveis, como eles funcionam e com quais dispositivos eles são projetados para lidar.
Negação de Serviço vs. IDS
Outro mecanismo para contornar um IDS é atacar o IDS diretamente ou explorar uma fraqueza no sistema através de um ataque DoS. Um ataque DoS ou DDoS sobrecarrega ou desativa um alvo de forma a torná-lo temporariamente ou permanentemente indisponível. Através do consumo de recursos vitais do sistema, o desempenho geral do alvo é afetado adversamente, tornando-o menos capaz – ou completamente incapaz – de responder ao tráfego legítimo ou pelo menos não funcionar ao máximo de sua capacidade.
Se segmentarmos um IDS com um ataque DoS, algo interessante acontece: As funções do IDS ficam irregulares ou não. Para entender isso, pense no que um IDS está fazendo e em quantos recursos precisa para fazer seu trabalho. Um IDS está sniffando o tráfego e comparando com as regras, o que leva uma quantidade considerável de recursos para executar. Se esses recursos podem ser consumidos por outro evento, ele pode ter o efeito de alterar o comportamento do IDS. Usando métodos de enumeração e hacking do sistema é possível para um invasor identificar quais recursos estão sob carga ou são vitais para o bom funcionamento do IDS. Uma vez que esses recursos são identificados, o atacante pode entupir ou consumir os recursos para fazer o IDS não funcionar corretamente ou se tornar ocupado com tráfego inútil.
Ataques como o ping de morte, teardrop, SYN flood, Smurf e Fraggle podem ser usados ??para realizar um DoS contra um NIDS.
Um ataque de inserção (insertion) é um método eficaz de desafiar a detecção por um IDS. Na prática, o ataque de inserção depende do conhecimento de como o sistema funciona e como ele reagirá aos pacotes na rede. Essencialmente, o ataque de inserção se baseia no fato de que um IDS pode aceitar pacotes que o destinatário real de fato aceitaria de outra forma. Se um IDS aceitar um pacote que o sistema final rejeitou, então ele pode ser enganado em acreditar que o sistema final aceitou o pacote também. Um invasor pode aproveitar esta situação enviando pacotes para um sistema final que o IDS aceita. Devido à forma como um IDS funciona, sniffando todo o tráfego e comparando-o com o conhecimento que possui para detectar ataques, ele aceitará todo o tráfego. Uma vez que aceitará todos os pacotes que outros sistemas não aceitarão, é possível derrotá-lo e conseguir um ataque passando pelo IDS.
Na prática, um ataque de inserção é eficaz contra IDSs que usam análise de assinatura para identificar atividade maliciosa.
Outra maneira de realizar este ataque é alterar o cabeçalho de um pacote. Ajustando valores como TTL, sinalizadores, tamanho ou outras informações que pode fazer o pacote ser rejeitado pelo sistema final, mas não pelo IDS.
Porque um IDS confia em ser capaz de observar ou ler informações, o processo de obscurecer ou ofuscar código (obfuscating) pode ser uma técnica de evasão eficaz. Esta técnica depende da manipulação de informações de tal forma que o IDS não pode compreendê-lo, mas o destino pode. Você pode fazer isso através da manipulação manual do código ou através do uso de um obfuscator. Um exemplo que foi bem sucedido contra IDSs mais antigos é o uso de Unicode. Ao alterar o código padrão, como solicitações HTTP e respostas aos seus equivalentes Unicode, você pode produzir código que o servidor da Web entende, mas o IDS não.
Pretende encobrir as suas atividades de scanning colocando entradas nos registos dos firewalls? Fácil – basta usar o Nmap para fazer com que os firewalls acreditem que a varredura vem de diferentes locais. Nmap tem a capacidade (através da opção -D) para gerar decoys, o que significa que a detecção do sistema de scanning real torna-se muito mais difícil:
Nmap -D RND: 10 <target ip> (Gera um número aleatório de decoys)
Lembre-se da história da sua infância do menino que gritou lobo? O garoto na história gritava lobo tantas vezes como uma piada que quando o lobo estava realmente atacando seu rebanho, ninguém acreditava nele e seu rebanho foi comido. A moral da história é que os mentirosos são recompensados ??com a descrença de outros, mesmo quando eles dizem a verdade. Como isso se aplica à nossa discussão IDS? Essencialmente da mesma forma que o garoto na história: Um atacante pode atingir o IDS com um ataque real, fazendo com que ele reaja à atividade e avise o proprietário do sistema. Se feito repetidamente, o proprietário do sistema verá arquivos de log cheios de informações que dizem que um ataque está acontecendo, mas nenhuma outra evidência sugere o mesmo. Eventualmente, o proprietário do sistema pode começar a ignorar esses avisos, ou o que eles percebem ser falsos positivos, e tornar-se mais relaxado em suas observações. Assim, um atacante pode atacar seu alvo real à vista.
O tipo de técnica de evasão conhecida como session splicing é uma técnica de evasão de IDS que explora o fato de que alguns tipos de IDSs não remontam ou reconstruem sessões antes de analisar o tráfego. Além disso, é possível enganar alguns sistemas fragmentando pacotes ou manipulando a transmissão de pacotes de tal forma que o IDS não pode analisá-los e, em vez disso, os encaminha para o host de destino.
A manipulação da fragmentação de um pacote pode ser um método eficaz de evadir um IDS. Um exemplo seria ajustar os fragmentos de modo que quando eles são remontados eles se sobrepõem, causando problemas para o IDS, o que novamente pode resultar em fragmentos sendo encaminhados para o alvo pretendido.
Diversão com as flags
O Transmission Control Protocol (TCP) usa sinalizadores em pacotes para descrever o status do pacote. O conhecimento dessas flags pode trazer benefícios como técnicas de evasão para IDSs.
RST é um dos muitos sinalizadores utilizados para finalizar comunicações bidireccionais entre nós da extremidade. Além desses sinalizadores, checksums são usados ??para verificar a integridade do pacote para garantir que o que foi recebido é o que foi enviado originalmente. Um invasor pode usar a alteração dessa soma de verificação para fazer com que o IDS não processe o pacote. O que acontece com alguns IDSs é que após o recebimento de uma soma de verificação inválida, o processamento pára e o tráfego passa sem impedimento pelo IDS sem elevar um alerta.
A flag URG é usada para marcar dados como sendo de natureza urgente. Pacotes marcados com o bit URG são processados ??imediatamente "saltando" para a frente da "fila" à frente de outros pacotes. Alguns IDSs não levam em conta esses dados anteriores e deixam passar sem impedimentos, deixando um ataque potencialmente passar sem obstáculos.
Alguns IDSs não podem processar o tráfego criptografado e, portanto, deixam passar. De todas as técnicas de evasão, a criptografia é uma das mais eficazes.