Ransomware es un tipo de software malicioso que infecta su computadora y muestra mensajes que exigen el pago de dinero, generalmente en Bitcoin, para devolver su información.
En la mayoría de los casos, el pago del secuestro no asegura la devolución de la información.
Windows ha implementado un escudo de protección para evitar que este tipo de malware sea ejecutado en su computadora pero, desafortunadamente, siempre existirá la forma de saltar los controles.
En una corta pero interesante investigación junto con Camilo Galdos, encontramos como evadir esta protección implementada por Windows. El bypass se logró usando su propia librería.
La protección Anti-Ransomware de Windows permite seleccionar una carpeta para protegerla evitando que programas maliciosos modifiquen su contenido. Sin embargo, Microsoft pone en su “lista blanca” los productos de Microsoft para modificar la carpeta. Haciendo uso de la librería Microsoft.Office.Interop es posible saltar la protección anti-ransomware de Windows y cifrar el contenido de los archivos de cualquier carpeta aunque esté protegida.
Este ejercicio fué probado con dos marcas de antivirus en su versión comercial y no se detectó malware en el ejecutable.
¿Cómo es el Bypass?
Para la creación del ransomware se utilizó la librería de Microsoft, con el fin de usar las características
de una aplicación de Microsoft Office desde un proyecto;
se utilizó el ensamblado de interoperabilidad primario (PIA).
El PIA permite que el código administrado interactúe con el COM (Microsoft Component Object Model)
de una aplicación de Microsoft Office, esta biblioteca permite interactuar con documentos tales como:
Access, Documentos de texto, Excel, PowerPoint o Word sin solicitar permisos adicionales.
Se utiliza la librería para leer el archivo dentro del proyecto:
Para el cifrado del archivo se creó un objeto de cifrado simétrico configurado con un IV y Key
(datos utilizados para recuperar nuevamente el archivo):
Se cifra el contenido del archivo aplicando cualquier método:
Finalmente, se reemplaza el archivo:
Código fuente: https://github.com/4lexaG/EncryptMethod
Análisis del malware en línea
Se pudo validar que ninguna solución de AV detecta el patrón como ransomware:
¿Cómo minimizar el impacto?
Adquirir una solución de seguridad puede aumentar los niveles de seguridad en una organización
o empresa, sin embargo, existen otros puntos a tener en cuenta para reducir el riesgo de
un ataque de este tipo:
1. Nunca pague el rescate.
2. A nivel tecnológico agregue restricciones/controles adicionales dependiendo de la exposición. (Webfilter, IDS, etc...)
3. Capacite a los empleados o miembros de su organización en temas relacionados conciencia en seguridad.
4. Sé amigo de YARA. 😉
YARA es una herramienta destinada (pero no limitada a) ayudar a los investigadores de malware a identificar y clasificar muestras de malware.
Para escribir una regla YARA, en su forma más básica, la regla debe iniciar con la palabra rule, seguida del nombre y deberá contar con las siguientes sesiones:
Meta: información adicional de la regla.
Strings: cadenas de texto que pueden usadas en la condición.
*Condition: es una expresión booleana, pueden contener operadores lógicos u o regla como parte de sus condiciones.
En la siguiente imagen se muestra como debe quedar escrita una regla YARA:
Ejecución de reglas para la detección del malware:
YARA puede ser utilizada en los siguientes casos:
- Integración con la base de datos de reglas ClamAv.
- Integración con PEiD para verificar qué empaquetador se usó para compilar el ejecutable.
- Analizar archivos ejecutables portátiles (PE).
- Escaner de procesos.
Conclusiones
Es importante mencionar que este comportamiento en Windows, ya es conocido. Muchos LOLBINs
(Living Off The Land Binaries and Scripts) existen que demuestran como windows, en muchas ocasiones, le da privilegios extra a sus propios productos y luego esto permite a atacantes explotar ciertos recursos.
Las reglas de YARA, si se usan de manera efectiva, pueden ser una herramienta adicional en la lucha
contra el malware. En este caso se utilizó una regla básica enfocada principalmente en la identificación
de firmas de malware a través de la detección de cadenas predeterminadas dentro del ejecutable, pero
este tipo de detenciones se pueden evadir a medida que se crean variantes de malware. Las reglas avanzadas de YARA se centran en el comportamiento y las características del malware,
como el tamaño y el tipo de archivo. Si bien no es raro que cambien las cadenas dentro del malware,
es mucho más raro que lo haga su comportamiento principal.
Fuente:
https://yara.readthedocs.io/en/stable/
https://resources.infosecinstitute.com/yara-simple-effective-way-dissecting-malware/