Cómo detectar malware ofuscado en un servidor
Hemos explicado qué es el malware ofuscado y ahora vamos a hablar de qué podemos hacer para detectarlo en un servidor. Ya sabemos que la seguridad es un factor fundamental y es algo que debemos cuidar a todos los niveles.
Como hemos indicado los métodos tradicionales, como puede ser un antivirus, no siempre son eficaces para encontrar este tipo de problemas. El código fuente en muchas ocasiones no es detectado como una amenaza real y eso supone una reducción de las detecciones.
Una opción son las técnicas de detección basadas en firmas de archivo. Lo que hace es rastrear el sistema de archivos que utilizan funciones de PHP que suelen ser utilizadas en malware. De esta forma podemos detectar listas de ofuscadores que puedan comprometer la seguridad.
También está la opción de la función hash, que fue creada como una mejora. Surgió ya que encontrar coincidencias exactas entre la recopilación de código limpio de malware y los archivos requiere muchos recursos. Por eso se creó una solución similar, pero más rápida. Con la función hash podríamos dar una cadena o un archivo y generará una cadena de longitud fija. Cada vez que el código sea el mismo, generará el mismo hash a partir de ese código. Las técnicas de hashing más conocidas son MD5 y SHAx.
Pero claro, el problema es que los piratas informáticos se dieron cuenta de que es bastante fácil encontrar las puertas traseras con estos métodos de detección. Es suficiente cambiar 1 byte, por ejemplo, agregar un espacio y el hash será completamente diferente para que las herramientas anti-malware no lo reconozcan.
Otra alternativa es la coincidencia de patrones. Esta técnica se basa en crear algunas cadenas e intentar hacer coincidirlas en el archivo. Sin embargo es fácil toparse con falsos positivos.
Para solucionar todos estos problemas es donde entra en juego BitNinja Server Security. Experimentó mucho con este tema y desarrolló un nuevo método de detección diferente a cualquier otra solución. Este nuevo método se basa en la estructura del código fuente. Cuando confiamos en la estructura del malware, podemos esperar una tasa muy baja de falsos positivos porque la estructura de un malware no puede ser la misma que la estructura de un archivo legítimo. De lo contrario, los códigos válidos podrían utilizarse con fines malicioso.
Básicamente lo que hace la técnica de BitNinja es detectar si el método de ofuscación se utilizó en un archivo. El siguiente paso se basa en el comportamiento al ejecutar el código en una sandbox. Podéis ver más información relacionada con BitNinja.