Los sistemas modernos de reputación de seguridad, como el servicio de reputación de Elastic, aumentan significativamente la eficacia en la detección de amenazas con un bajo nivel de falsos positivos. Sin embargo, como cualquier otro sistema, no son infalibles. En este artículo se analizan las vulnerabilidades de Windows Smart App Control (SAC) y SmartScreen, métodos para eludirlos y formas de mejorar la seguridad.
Conclusiones principales
- Vulnerabilidades de Smart App Control y SmartScreen: problemas en su arquitectura permiten a atacantes acceder al sistema sin advertencias de seguridad.
- Fallo en el manejo de archivos LNK: permite eludir los sistemas de protección mencionados.
- Necesidad de medidas adicionales de seguridad: comprender las limitaciones de estas funciones del sistema operativo e implementar mecanismos de defensa complementarios.
Contexto de SmartScreen y SAC
Microsoft SmartScreen apareció por primera vez en Windows 8 y trabaja con archivos marcados con "Mark of the Web" (MotW) que el usuario abre. Con el lanzamiento de Windows 11, Microsoft presentó Smart App Control (SAC), que bloquea aplicaciones maliciosas y no confiables verificándolas mediante el servicio en la nube de Microsoft. Si una aplicación es desconocida, solo se permite su ejecución si tiene una firma digital válida. Al activarse, SAC reemplaza y desactiva SmartScreen.
Malware firmado
Una de las formas de eludir SAC es utilizar una firma digital para malware. Atacantes, como el grupo SolarMarker, a menudo emplean certificados de validación extendida (EV), que requieren prueba de identidad y suelen almacenarse en tokens hardware. No obstante, los atacantes encuentran maneras de hacerse pasar por empresas legítimas para obtener dichos certificados. Las autoridades de certificación (CA) deben tomar medidas adicionales para prevenir este tipo de fraude.
Secuestro de reputación
Este método recuerda investigaciones sobre la confianza mal dirigida en sistemas de control de aplicaciones y controladores vulnerables. El secuestro de reputación consiste en buscar y usar aplicaciones con buena reputación para eludir el sistema. Por ejemplo, hosts de scripts como Lua, Node.js y AutoHotkey pueden emplearse para ejecutar código arbitrario y malware en memoria.
Los ejemplos muestran la elusión de SAC usando herramientas como JamPlus y AutoHotkey, demostrando cómo atacantes pueden aprovechar aplicaciones conocidas para ejecutar código malicioso sin generar advertencias.
Creación de reputación
Los atacantes pueden introducir binarios controlados por ellos que, con el tiempo, adquieren una buena reputación y siguen siendo útiles para ataques. Por ejemplo, nuevos hosts de scripts o aplicaciones vulnerables pueden integrarse en el sistema y, si se ocultan con cuidado, obtener una valoración positiva. En uno de los ejemplos, un archivo obtuvo una buena reputación aproximadamente 2 horas después de su ejecución, lo que demuestra la vulnerabilidad de SAC ante este enfoque.
Falsificación de reputación
Este método implica alterar un archivo sin cambiar su reputación. SAC puede usar no solo hashes estándar de archivos, sino también hashing difuso o modelos de aprendizaje automático. En algunos casos es posible modificar segmentos de código manteniendo la reputación previa del archivo. El artículo muestra un ejemplo de un binario que contiene shellcode para ejecutar la calculadora y que elude con éxito a SAC.
Evasión de archivos LNK
Al descargar un archivo, el navegador crea un archivo asociado "Zone.Identifier" en un flujo de datos alternativo, marcando el archivo como potencialmente peligroso. SmartScreen solo escanea archivos con esta etiqueta, y SAC bloquea ciertos tipos de archivos si están marcados. La elusión de MotW puede conducir a la evasión de estos sistemas de protección. La investigación describe un fallo que permite eludir MotW al modificar rutas o la estructura interna de archivos LNK.
El ejemplo muestra cómo un archivo LNK con una ruta incorrecta permite evadir MotW y lanzar PowerShell, evitando todas las comprobaciones de seguridad.
Métodos de detección
Detectar ataques de secuestro de reputación y evasiones mediante archivos LNK puede ser complicado. Una manera es catalogar y bloquear aplicaciones conocidas que se usan en estos ataques. También se pueden desarrollar firmas basadas en comportamiento para identificar aplicaciones sospechosas, como Lua o Node.js.
Ejemplo de lógica de detección:
process where process.parent.name == "explorer.exe" and process.hash.sha256 in ( "ba35b8b4346b79b8bb4f97360025cb6befaf501b03149a3b5fef8f07bdf265c7", // AutoHotKey "4e213bd0a127f1bb24c4c0d971c2727097b04eed9c6e62a57110d168ccc3ba10" // JamPlus )
Otro enfoque es monitorizar los archivos descargados, especialmente los que han sido modificados o creados recientemente, y analizar sus hashes.
from logs-* | where host.os.type == "windows" and event.category == "process" and event.action == "start" and process.parent.name == "explorer.exe" and (process.executable like "*Downloads*" or process.executable like "*Temp*") and process.hash.sha256 is not null | eval process.name = replace(process.name, " (1).", ".") | stats hosts = count_distinct(agent.id) by process.name, process.hash.sha256 | where hosts == 1
Para la detección de evasiones con LNK se puede rastrear la sobrescritura de archivos LNK por el proceso explorer.exe, especialmente en la carpeta de descargas o cuando existe la marca MotW.
file where event.action == "overwrite" and file.extension : "lnk" and
process.name : "explorer.exe" and process.thread.Ext.call_stack_summary : "ntdll.dll|*|windows.storage.dll|shell32.dll|*" and
(
file.path : ("?:Users*Downloads*.lnk", "?:Users*AppDataLocalTemp*.lnk") or
file.Ext.windows.zone_identifier == 3
)
Conclusión
Los sistemas de reputación son una herramienta poderosa para bloquear malware masivo. Sin embargo, tienen vulnerabilidades que los atacantes pueden explotar. Los equipos de seguridad deben analizar detenidamente los archivos descargados y no confiar únicamente en las funciones de seguridad integradas del sistema operativo. Solo un enfoque de defensa en profundidad puede proporcionar una protección fiable frente a las amenazas cibernéticas actuales.