close
Written by Michael Hidalgo
on April 14, 2020

Amedida que continuamos desarrollando CyberEasy, nuestro equipo de ingeniería agregó muchas características para habilitar, recopilar y analizar eventos de PowerShell y el registro de línea de comando completo, lo que nos brinda mucha visibilidad sobre el dispositivo final de una manera eficiente y poderosa.

                                                                PowerShell everywhere: De https://www.mememaker.net/meme/powershell-128318

Publicaciones recientes sugieren que ha habido un aumento en el número de ataques que dependen de PowerShell para su ejecución. Hay algunas buenas razones para eso:

  • PowerShell está habilitado de forma predeterminada en Windows
  • Ampliamente distribuido y utilizado por Sysadmins
  • No mucha gente ve a PowerShell desde un punto de vista defensivo.
  • Los ataques de PowerShell parecen tener un grado de ofuscación de muy bajo nivel, eso podría deberse a que los actores de amenazas saben que no hay demasiadas herramientas defensivas enfocadas en detectar ataques de PowerShell.
  • Uso de nuevas técnicas, como los llamados 'ataques sin archivo', donde no se crea un archivo en el disco.

Sin embargo, este tipo de ataque también plantea una gran debilidad. Como lo explicó Justin Henderson en su charla “Detecting Modern PowerShell Attacks with SIEM”, los atacantes deben enviar sus ataques a través de la línea de comando.

Si nuestras capacidades de detección están haciendo el trabajo y usted tiene el registro de la línea de comandos completo, entonces es probable que pueda detectar este comportamiento. Con CyberEasy, podemos recopilar y analizar la cadena de línea de comandos completa, lo que ayuda a las organizaciones a detectar esta técnica.

¿Por qué se necesita registros de PowerShell ?

Mientras más visibilidad tengan nuestras herramientas de detección sobre PowerShell, mejor será la tasa de detección que se puede implementar. En 2016, la gente de FireEye publicó un excelente artículo que describe qué es PowerShell Logging y cómo debe activarse.

Como se describe en el artículo, PowerShell 2.0 no proporciona un buen mecanismo para registrar la actividad del atacante, pero esta característica se ha mejorado en Powershell v 5.0.

He extraído algunas de las características clave de las diferentes formas de registro de PowerShell, esas ideas clave son una abstracción de la charla de Henderson mencionada anteriormente. Mi letra puede ser difícil de decodificar, pero espero que dé una idea, en cualquier caso, puede volver a la presentación mencionada anteriormente.

 

Solo los registros (logs) no es suficiente

Microsoft y el equipo de PowerShell han hecho un gran trabajo en el registro de los scripts de PowerShell, también proporcionan un registro de advertencia en caso de que el análisis del script revele actividades sospechosas.

Desafortunadamente, este análisis puede conducir a falsos positivos y falsos negativos. Como puede ver en mi Twitter hace unos días, estaba investigando sobre Emotet Malware y su modus operandus en una estación de trabajo comprometida.

Si hubiera estado prestando atención, me habría dado cuenta de que PowerShell estaba iniciando sesión en Base64 en el argumento de la línea de comandos, que es fácil de decodificar, sin embargo, no marcó el script como una advertencia, a pesar de que tiene un nivel muy bajo de ofuscación.

 

Twitter https://twitter.com/michael_hidalgo/status/1247996257517387776

 

Este bloque de script de PowerShell fue ejecutado por una macro cuando se abrió un documento de Microsoft Word. Si observa el código, utiliza algunas técnicas de ofuscación, como la combinación de mayúsculas y minúsculas y el uso de nombres de variables deshonestas.

Lo que está claro es que la secuencia de comandos está descargando un archivo, arrastrándolo hacia arriba en la ruta de trabajo del perfil del usuario y justo después de iniciar la aplicación si la longitud de su contenido es igual a 23931.

 

Mucho espacio para la detección

Este caso de uso es un gran candidato para la detección de Machine Learning; las búsquedas tradicionales de cadenas o strings no parecen ser lo correcto debido al dominio de combinaciones posibles que podría ser bastante grande. Sin embargo, una herramienta puede comenzar haciendo detecciones atómicas, por ejemplo, identificando cuándo está ocurriendo una descarga de un archivo seguido de la ejecución de ese archivo.

En nuestro equipo, estamos aplicando varios mecanismos de detección, incluidos los basados en Machine Learning para reducir la tasa de falsos positivos.

Mientras asistía a la presentación de SANS, podemos extraer algunas detecciones potenciales que se pueden implementar para detectar tales comportamientos.

 

PowerShell detections: An abstraction from SANS video https://www.youtube.com/watch?v=96pX6DmT81U

Notas finales

PowerShell es impresionante y realmente muy poderoso; los actores de amenazas lo saben y, al analizar el malware, podemos ver que diferentes campañas lo están utilizando.

Si analizamos la técnica PowerShell de MITRE ATT&CK Technique T1086, entendemos que esta técnica está siendo utilizada por muchos actores de amenazas, incluida la conocida Amenaza Persistente Avanzada (APT por sus siglas en Inglés).

El registro de PowerShell es una característica clave que se agregó en la versión 5 de PowerShell; permite a los defensores tener una visibilidad completa de cada comando que se ejecuta en el punto final y aumentar sus capacidades de detección para identificar ataques sofisticados al principio de la cadena de asesinatos cibernéticos.

Sin embargo, confiar en las capacidades y características integradas del registro de PowerShell no es suficiente; incluso cuando Microsoft está haciendo un gran trabajo para detectar programas de script sospechosos, está lejos de ser perfecto.

Para que estas detecciones sean efectivas, nosotros, los defensores, debemos pensar fuera de la caja (como siempre), pero esta vez aprovechando las capacidades de detección múltiple, como Reglas de Yara, Aprendizaje Automático, Expresiones Regulares, Patrones, y Análisis y perfilamiento del comportamiento. 

CyberEasy va un paso adelante y nos permite definir comportamientos y perfiles a partir de la ejecución de la línea de comandos y puede extrapolarse a los scripts de PowerShell que se ejecutan en el dispositivo final.

Let Us Know What You Thought about this Post.

Put your Comment Below.

You may also like:

Cybersecurity Awareness

New Challenges for Managed Services Provider

Over the last number of years, several surveys across the MSP community have revealed various challenges - some more pre...

Cybersecurity Awareness Cybersecurity Fundamentals

¿Cómo mejorar la visibilidad de la Ciberseguridad de su organización?

El 25% de las empresas en América Latina no cuentan con antivirus y el 40% de las empresas sufrió una infección con malw...

Cybersecurity Awareness Vulnerability Threat Hunting PowerShell

The need for PowerShell logging and further analysis.

As we continue to develop CyberEasy, our engineering team added a lot of features for enabling, collecting and analyzing...