El malware sin archivo y el uso de PowerShell.
El malware sin archivo (fileless malware), es capaz de infectar y causar daños sin dejar rastro. Su secreto, como su nombre indica, consiste en no grabar ningún tipo de archivo en el disco duro. Toda la acción la realiza “en el aire”, es decir, sobre la memoria. En el momento en el que el sistema se reinicie el virus desaparecerá, pero el daño ya estará hecho.
El fileless malware es un tipo de Advanced Volatile Threat o AVT, un tipo de código malicioso diseñado para no escribirse en el disco duro y trabajar desde la memoria. El malware sin archivos, los sistemas de protección tradicionales no son capaces de detectarlo. Esto hace que resulte mucho más difícil defenderse de ellos, ya que este tipo de infestaciones son mucho más resiliente y difíciles de controlar.
Para protegerse del Fileless Malware, el secreto está en el comportamiento. De tal suerte que monitorizar el sistema en busca de un comportamiento malicioso que alerte de procesos sospechosos es, probablemente, el método más efectivo.
Sucede que el gran vector de ataque para el malware sin archivo es PowerShell -la consola de sistema (CLI) de Windows-. PowerShell permite a los administradores de sistemas automatizar tareas de manera total sobre servidores y equipos, por lo cual, si los atacantes se hacen con su control, pueden llegar a adquirir muchos permisos en los sistemas de la empresa, incluyendo la posibilidad de introducir más malware impunemente.
PowerShell va más allá de Windows y también permite controlar determinadas aplicaciones como Microsoft Exchange, SQL Server o IIS. Con esas capacidades, el malware sin archivos suele utilizar PowerShell para introducir en la consola su código malicioso alojándose en la memoria RAM.
Una vez ejecutado el código dentro de PowerShell, se convierte en un vector de ataque lateral -trafico este/oeste- dentro de las redes corporativas, es decir, no hace una entrada externa -trafico norte/sur- sino, con una propagación desde el servidor principal.
La primera medida contra el malware sin archivo es muy sencilla, aunque puede no ser válida para todas las organizaciones y redes corporativas: se trata de deshabilitar el PowerShell en caso de que no sea necesario para administrar los sistemas. Para ello, los administradores deben estar usando otro tipo de herramientas para automatizar las tareas. No tener PowerShell habilitado será la mejor medida de prevención.
Si PowerShell no puede ser deshabilitado por su uso habitual por parte de los administradores, la segunda medida consiste en asegurarse que los equipos y la red corporativa de la organización cuenten con la versión más actualizada de PowerShell.
Otra medida consiste en dejar habilitadas solo determinadas características de PowerShell, como hace el modo de Constrained Language (lenguaje limitado). Esto puede evitar acciones potencialmente peligrosas, como las llamadas arbitrarias a APIs de Windows o la desactivación de ciertos macros, pero no evitará todos los tipos de ataques.
Microsoft ha implementado características cada vez más avanzadas de logueo en Powershell, como la grabación automática de los comandos, especialmente en acciones que resultaron ser un síntoma de ataques. Tener activado esta característica de grabación puede ayudar a las empresas en sus tareas forenses una vez se sospecha que se ha producido un ciberataque de malware sin archivo.