Detectar malware ofuscado en PHP
Blog sobre seguridad informática. Con temas como: Auditoria, Test penetración, Malware, Informática Forense, Antivirus, SCADA, DDoS, SQL injection, OSINT…
PHP-malware-finder(PMF) hace todo lo posible para detectar código ofuscado, así como archivos que utilizan funciones de PHP que se utilizan a menudo en malwares/webshells.
También sirve detecta la siguiente lista de codificadores, ofuscadores y webshells:
- Best PHP Obfuscator
- Carbylamine
- Cipher Design
- Cyklodev
- Joes Web Tools Obfuscator
- P.A.S
- PHP Jiami
- Php Obfuscator Encode
- SpinObf
- Weevely3
- atomiku
- cobra obfuscator
- phpencode
- tennc
- web-malware-collection
- webtoolsvn
- novahot
- nano
La detección se realiza rastreando el sistema de archivos y probando archivos contra un conjunto de reglas de YARA. Sí, es así de simple.
Antes, para cada llamada, PMF usaba todas sus reglas para verificar si el archivo escaneado contenía algún código que coincidiera con una de estas reglas. En ese momento, la herramienta solo funcionaba para aplicaciones PHP, por lo que usar un solo archivo de reglas no era un problema. Sin embargo, agregar un nuevo idioma en el mismo archivo significa que PMF tiene que leer, para cada acción, las reglas que no se aplican a la aplicación de destino … lo que implica una pérdida de tiempo y recursos.
Es por eso que PMF contiene 3 archivos de reglas:
- El archivo «común» reúne todas las reglas universales que permiten reconocer el código malévolo, sea cual sea la tecnología utilizada por la aplicación. Contiene, por ejemplo, una regla para detectar URLS que se utilizan para enviar hashes en sitios web de fuerza bruta.
- El archivo PHP solo contiene reglas que son específicas de PHP.
- El archivo ASP solo contiene reglas que son específicas de ASP.
Los usuarios de PMF pueden elegir qué archivo usar, de acuerdo con su aplicación, y optimizar el uso de la herramienta al verificar solo las reglas que se les aplican.
En lugar de utilizar un enfoque basado en hash , PMF intenta en la medida de lo posible utilizar patrones semánticos, para detectar cosas como variable “$_GET”
se decodifica dos veces, se descomprime y luego pasa a alguna función peligrosa como «system
«
Caracteristicas principales de PMF:
- No utiliza una sola regla por muestra , ya que solo se preocupa por encontrar patrones maliciosos, no webshells específicos
- Tiene un completo testuite , para evitar regresiones.
- Su sistema de lista blanca no depende de nombres de archivo
- No se basa en el cálculo de entropía (lenta)
- Utiliza un análisis estático de estilo ghetto, en lugar de depender de hashes de archivos
- Gracias al análisis pseudoestático mencionado anteriormente, funciona (especialmente) bien en archivos ofuscados
Más información y descarga de PMF:
https://github.com/jvoisin/php-malware-finder
La entrada Detectar malware ofuscado en PHP se publicó primero en GURÚ DE LA INFORMÁTICA.
Fuente: El Gurú de la informática : Detectar malware ofuscado en PHP