Otimizando a detecção de ataques de SQLi com evasão do Ossec HIDS

SQL injection é uma das vulnerabilidades mais difundidas e exploradas em aplicações Web, não é muito difícil encontrar esta falha em diversos CMSs, plugins e códigos de sites espalhados pela internet.

 

Ferramentas de proteção como WAFs e IDS/IPS possuem regras que alertam ou bloqueiam este tipo de ataque, porém existem diversas técnicas evasivas que permitem o concretização do ataque como:

 

  • White Space Manipulation;
  • URL encoding;
  • Unicode/UTF-8;
  • Hex Encoding;
  • char() function;
  • Comment Exploitation;
  • Concatenation, etc.

O SQLmap, uma das melhores ferramentas para este tipo de ataque, possui um pool de scripts de evasão ( tamper ) bastante interessante.

 

Aproveitei o laboratório da apresentação que farei no Flisol para melhorar a detecção destes ataques e acabei criando algumas regras que otimizaram o tempo de identificação e o bloqueio. As regras atuais conseguem identificar o ataque, porém o delay entre a identificação e o bloqueio é um pouco alto, usando mais de um tamper e outras opções como o aumento do intervalo das requisições por exemplo piora ainda mais detecção.

 

Estas novas regras foram aprovadas pelo upstream do Ossec HIDS estando disponíveis no repositório do projeto e serão publicadas no novo release que está na versão alfa.

 

Quem estiver interessado em utilizar ou testar apenas adicione as linhas abaixo no arquivo /var/ossec/rules/local_rules.xml.

 

<group name=”attack,sqlinjection,”>

   <rule id=”160001″ level=”6″>

     <if_sid>31100</if_sid>

<url>=%27|select%2B|insert%2B|%2Bfrom%2B|%2Bwhere%2B|%2Bunion%2B</url>

     <description>SQL injection attempt.</description>

   </rule>

   <rule id=”160002″ level=”6″>

     <if_sid>31100</if_sid>

<url>%EF%BC%87|%EF%BC%87|%EF%BC%87|%2531|%u0053%u0045</url>

    <description>SQL injection attempt.</description>

   </rule>

</group>

Sugestões e melhorias serão sempre bem vindas! =P

Author: alexos

Comments

Comments are closed.