Un fallo de hace 17 años en el Kernel de Windows puede impedir la detección de malware

Hoy en día, las aplicaciones y, sobre todo, los sistemas operativos, son tan complejos que es prácticamente que sean 100% seguros y que entre los millones de líneas de código no se encuentre un error que pueda causar problemas. Algunos de los fallos pueden ser simplemente molestos y causar bloqueos, pero otros, las conocidas vulnerabilidades, pueden ser mucho más peligrosas y hacer, por ejemplo, ejecutar código en la memoria del equipo o, como acaban de descubrir en el Kernel de Windows, evitar que los antivirus puedan detectar malware haciéndolo pasar como «software fiable».
Hace algunas horas se daba a conocer un fallo de seguridad en PsSetLoadImageNotifyRoutine, una rutina incluida en el Kernel de Windows que, si se explota correctamente, puede evitar que un antivirus, que utilice esta rutina, sea capaz de detectar un malware, permitiendo que este se ejecute en el sistema sin problemas.
Este mecanismo fue introducido para permitir a los desarrolladores de controladores notificar al sistema de los nuevos controladores instalados en el equipo, dándoles así el máximo nivel de privilegios y evitando problemas. Como mediante esta técnica se tiene acceso a absolutamente todo el sistema, incluso a la memoria virtual y a las imágenes PE, muchos antivirus hacen uso de este mecanismo para detectar operaciones maliciosas y conseguir privilegios en los sistemas, sin embargo, este mecanismo también puede ser utilizado por piratas informáticos para ocultar malware.
PsSetLoadImageNotifyRoutine funciona a muy bajo nivel en el sistema operativo, y se suele utilizar para identificar cuándo el código se carga tanto en el Kernel como en el espacio de memoria del usuario. Por ello, si un pirata informático consigue explotar este fallo de seguridad puede hacer pasar un malware como un «proceso legítimo» y engañar así a los antivirus.
Para Microsoft no es un fallo de seguridad, y no tiene intenciones de arreglarlo
Parafraseando la conocida expresión «it’s not a bug, it’s a feature», los expertos de seguridad que han encontrado este fallo potencialmente peligroso y se lo han reportado a Microsoft para que la compañía lo solucione se han encontrado con que los responsables de MSRC (Microsoft Security Response Center) han afirmado que no se trata de un fallo de seguridad.
Como hemos dicho, este fallo de seguridad lleva presente desde Windows 2000 y, según parece seguirá entre nosotros aún más tiempo, ya que Microsoft no tiene intención de solucionar este problema. Todas las versiones de Windows, desde la 2000 hasta el nuevo Windows 10, son vulnerables, tal como ha demostrado el experto de seguridad.
Si queremos conocer al detalle cómo funciona este mecanismo para entender los peligros del mismo, os recomendamos leer el siguiente artículo donde se explica cómo funciona PsSetLoadImageNotifyRoutine, para qué sirve y cómo se puede utilizar para poner en peligro cualquier versión de Windows.
Por suerte, de momento no hay constancia de que ningún pirata informático esté utilizando esta técnica para ocultar su malware, aunque todo es cuestión de tiempo, especialmente ahora que se ha dado a conocer la vulnerabilidad.
¿Qué opinas de este fallo de seguridad? ¿Crees que, aunque no haya constancia de uso, Microsoft debería solucionarlo?