Mitigando ataques contra o php5-cgi
O pesquisador Kingcope publicou um exploit para explorar uma falha de manipulação de strings sem o caracter ‘=’ que possibilita a execução de código remoto, presente no arquivo sapi/cgi/cgi_main.c do PHP5 de sistemas Debian e Ubuntu usando o php5-cgi.
As seguintes versões do PHP estão vulneráveis:
PHP 5.3.10 PHP 5.3.8-1 PHP 5.3.6-13 PHP 5.3.3 PHP 5.2.17 PHP 5.2.11 PHP 5.2.6-3 PHP 5.2.6+lenny16 with Suhosin-Patch
Para verificar a versão instalada no seu servidor basta digitar o comando dpkg -l php5
alexos@debian:~$ dpkg -l php5 Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-==============-============-============-================================= ii php5 5.5.3+dfsg-1 all server-side, HTML-embedded script
Proteção
Os times de segurança das distribuições afetadas disponibilizaram informações sobre a vulnerabilidade e os pacotes corrigidos.
Como proteção extra criei uma regra para o Ossec HIDS que identifica e bloqueia as tentativas de ataque, basta adicionar as linhas abaixo no arquivo /var/ossec/rules/local_rules.xml.
<group name="web,appsec,attack"> <rule id="160001" level="6"> <if_sid>31100</if_sid> <url>/cgi-bin/php</url> <regex>"POST /cgi-bin/php</regex> <description>php5-cgi exploit (http://www.exploit-db.com/exploits/29290/).</description> </rule> </group>
Referências
Apache / PHP 5.x Remote Code Execution Exploit
CVE-2012-1823