Todos tenemos pensamientos que nos mantienen despiertos por la noche.
¿El ruido que hacía el carro terminará siendo una reparación costosa? ¿Cuándo me responderá la superestrella de YouTube John Hammond mi fanfiction publicado? ¿Y existen user agents en la telemetría de seguridad de Microsoft 365 que podamos usar para detectar un posible compromiso de correo empresarial (BEC)?
Fue esta última pregunta la que me mantuvo despierto a las 3 a. m. hace poco.
Si el comando curl deja un user agent único y evidente, ¿hay otras herramientas (maliciosas) que dejan un user agent único, en un contexto de Microsoft 365, que sean indicio de actividad malévola?
Ya hemos compartido antes algunas investigaciones de Microsoft 365, y en este blog exploraremos cómo llevamos una hipótesis de caza de amenazas de compromiso de correo empresarial (BEC) a través del proceso empírico, y produjimos no solo detecciones, sino que también identificamos y reportamos comportamiento malicioso a los miembros de nuestra comunidad. Este artículo recorre un ejercicio real de caza de amenazas de BEC, usando el análisis de user agents como tecnología de detección para identificar cuentas comprometidas en Microsoft 365
Los user agents como tecnología de detección de BEC
Los user agents pueden servir como una tecnología de detección valiosa al analizar la telemetría de autenticación en busca de señales de BEC. En el mundo de Microsoft 365, los user agents en sí mismos no son maliciosos. Un user agent es una cadena que tu dispositivo entrega a un sitio web cuando navegas por internet, diseñada para compartir cierta información sobre ti y tu dispositivo, lo que permite que el sitio web adapte el formato del contenido para servirte mejor.
Existen herramientas de línea de comandos, como Python y Curl, que usan un user agent que indica que es una herramienta de línea de comandos y su número de versión (por ejemplo, curl/7.54.1). Ahora bien, es trivial cambiar el user agent predeterminado en ambas herramientas para hacerse pasar por un user agent diferente, pero como alguien que observa a los atacantes implementar herramientas como Impacket sin cambiar los directorios codificados por defecto, puedo dar fe de que los atacantes a menudo no se desvían de la configuración predeterminada de sus herramientas de seguridad ofensiva.
Así surgió nuestra hipótesis: ¿podríamos identificar un compromiso de correo empresarial centrándonos en user agents anómalos?
En la caza: cómo detectar BEC en Office 365
Saber cómo detectar BEC en Office 365 empieza por entender cómo se ve la autenticación normal, y cómo no se ve. Instalado en más de 2 millones de endpoints, y monitoreando más de 50 mil cuentas de correo en 1.500 pequeñas empresas, el equipo del Huntress SOC tiene de sobra donde elegir cuando se trata de telemetría. Literalmente, piensa en lo que quieres encontrar, y al sumergirte en nuestro data lake lo encontrarás. Y, al igual que el arquero, para finalmente impulsar nuestras armas hacia adelante y enfrentar a nuestro objetivo adversario, primero debemos retroceder y prepararnos: ¿qué estamos tratando de lograr aquí?
Ya establecimos que los user agents son fáciles de cambiar. Además, detectar basándose solo en user agents es una tarea inútil debido a los falsos positivos o verdaderos negativos. Incluso el conjunto de herramientas de seguridad ofensiva más apreciado para Microsoft 365/Azure, AADInternals, no deja atrás user agents únicos y facilita el mínimo esfuerzo necesario para cambiar el user agent.
Lo que buscamos en toda la telemetría de Microsoft 365 de Huntress son inicios de sesión exitosos desde user agents menos comunes, como un indicador contextual de que algo malévolo está ocurriendo. Mediante el análisis de anomalías, filtramos los user agents comunes y analizamos los más raros hasta quedarnos con un user agent bastante interesante:
AZURECLI/2.47.0 (DEB) azsdk-python-azure-mgmt-resource/22.0.0 Python/3.10.10 (Linux-5.4.0-137-generic-x86_64-with-glibc2.31)
En nuestra telemetría de Huntress, filtramos esto con la siguiente búsqueda: user_agent.original.text: "Azsdk", e identificamos territorios bastante interesantes asociados con este user agent.
Yo también me autentico legítimamente en mi cuenta de correo desde la línea de comandos cuando estoy de vacaciones en Rusia o China…
Profundizando en la caza de amenazas de BEC
A partir de ahí, profundizamos en de qué herramienta provenía este user agent (no hay premio por adivinar que es un paquete de Python). El user agent proviene de la biblioteca de Python avalada por Microsoft que puedes encontrar aquí, y ha sido asociada con actividad maliciosa reportada por Alice Klimovitsky en mayo de 2023.
El user agent/biblioteca de Python no es maliciosa en sí misma. Más bien, la presencia de este user agent específico en la telemetría de Microsoft 365 amerita una investigación más a fondo. Entonces no te sorprenderá que el resto de la investigación se enfocara en determinar exactamente qué tan anómala y maliciosa fue una autenticación exitosa con el user agent: AZURECLI/2.47.0 (DEB) azsdk-python-azure-mgmt-resource (spoiler: bastante anómala, bastante maliciosa).
Al revisar nuestra telemetría, obtuvimos 85 coincidencias para este user agent en general, y la mayoría fueron intentos de inicio de sesión fallidos, con solo cuatro inicios de sesión exitosos con el user agent sospechoso.
Filtrando los intentos fallidos de inicio de sesión, nos quedan cuatro autenticaciones exitosas para cuatro cuentas de usuario, en todo junio de 2023. Suena bastante sospechoso, la verdad…
Establecimiento de la línea base del usuario
Para investigar este comportamiento, podemos correlacionar el patrón de autenticación del usuario: con qué frecuencia ha iniciado sesión desde este territorio del mundo, qué tan común es que se autentique con agentes de usuario poco comunes, tal vez sea un desarrollador probando algo. Para ahorrarte tiempo a ti y a mí, la evidencia confirmó que las cuatro fueron autenticaciones maliciosas y las cuatro ameritaron reportes críticos para los miembros de nuestra comunidad Huntress.
Por ejemplo, tomemos a nuestro amigo de "Ventas", quien se autenticó constantemente desde Bélgica solo para luego autenticarse de forma anómala con el agente de usuario Azsdk-python desde Corea.
O a nuestro querido amigo "Po", cuya autenticación con Azsdk-python estuvo asociada con una IPv4 pública indonesia con predilección por intentar iniciar sesión como una multitud de cuentas.
Esto también demuestra el beneficio de recopilar y almacenar telemetría cruda y navegable. Una vez que identificamos que estas IPv4 en particular son maliciosas, podemos entonces profundizar y empezar a ver qué más han estado haciendo, y si han tenido autenticaciones exitosas en otros lugares, todo gracias a que conservamos la telemetría.
Cómo reportamos el compromiso del correo electrónico empresarial en Microsoft 365
A partir de esta única caza de amenazas guiada por una hipótesis, emitimos varios reportes de verdaderos positivos para informar a los miembros de nuestra comunidad sobre el Compromiso del correo electrónico empresarial, junto con un conjunto de estrategias de remediación para expulsar al adversario, restaurar la confianza en la cuenta y prevenir futuros compromisos.
Y la comunidad recompensa nuestra investigación con interacción. A continuación, incluimos un testimonio del destinatario de uno de los reportes anteriores, que demuestra que Huntress MDR para Microsoft 365 rinde dividendos en seguridad cuando lo impulsan y contextualizan los guapos expertos del Huntress SOC.
Tecnología de detección potenciada por humanos
El ciclo de caza de amenazas de BEC debe cerrar la brecha entre los hallazgos manuales y la tecnología de detección automatizada, convirtiendo lo que los analistas descubren en detecciones escalables.
A continuación está lo que hasta ahora hemos propuesto internamente como detección, pero esto será curado y perfeccionado por los expertos del equipo dedicado de ingeniería de detección de Huntress, como Matt Anderson, Matthew Brennan, Kris Luzadre, y Greg Ake.
event.action: UserLoggedIn AND user_agent.original.text:"azsdk-python"
# Filter for successful authentications only
# And essentially wildcard for any user agent containing the above string
Con la detección creada, Sharon Martin, la ninja residente de Huntress, la llevó a producción y se activó de inmediato con la actividad que identificamos manualmente; eso es justo lo que llamamos un éxito. 🙂
Dejo que el lector decida la prioridad de esta detección. Los entornos varían en lo que consideran su línea base normal, y no me corresponde a mí decirte si esta debería ser una detección de alta o baja prioridad.
Recuerda, esta actividad por sí sola no es la señal para declarar una alerta roja. Más bien, como dijimos, este es un detector que impulsa una investigación más profunda; no es señal de algo abiertamente malicioso, pero sí de algo fuera de lugar y anómalo, donde te recomendamos filtrar según las líneas base históricas del usuario y ver si encaja con su patrón de autenticación más amplio. Y, para reiterar, los user agents son triviales de cambiar, pero cuando se trata de cambiar los valores predeterminados de una herramienta, los analistas de Huntress han observado que los adversarios simplemente... no lo hacen.
Prevención de BEC en Microsoft 365
Más allá de la tecnología de detección, prevenir el BEC en Microsoft 365 requiere controles de acceso sólidos y seguridad de identidad. La autenticación multifactor (MFA) y las políticas de acceso condicional complejas son tus aliadas. Sé que generan resistencia por parte de los usuarios, sé que son una molestia de administrar, pero, entre tú y yo, el compromiso de correo empresarial no va a desaparecer; la amenaza es grande y crece cada día. Además, otro secreto entre nosotros: si neutralizas una amenaza en el perímetro de tu correo, probablemente detengas al adversario en las primeras etapas de su campaña para infiltrarse en tu red; esto te ahorra dinero, tiempo y molestias a largo plazo.
Gracias al cloud, nunca ha sido fácil autogestionar tus propias alertas, detección y respuesta de seguridad. El cloud puede facilitar una visibilidad de seguridad increíble sobre los detalles más finos de las actividades de tus usuarios (quizás demasiada visibilidad, demasiado ruido).
No TIENES que tener al equipo del SOC de Huntress de tu lado; puedes simplemente estar atento a blogs como este y ROBAR tomar prestadas las mejores partes. Pero si este blog ha dejado algo claro, es que tenemos un equipo de personas a las que les encanta hacer esto, lo hacen bien, lo hacen rápido y te facilitan la vida a ti mientras se la complican a los cibercriminales. Innovamos constantemente y emboscamos a los adversarios donde intentan esconderse y, preocupantemente, todos encontramos esto increíblemente divertido.
Mira cómo Huntress detecta y detiene los ataques de BEC en Microsoft 365
Continúa con la parte tres: Thwarting Financial Fraud: Shutting Down Hackers in Microsoft 365
• • •
IoCs:
- 213.154.80[.]21
- 203.251.62[.]51
- 91.158.221[.]9
- 118.98.90[.]2
TTPs de ATT&CK:
- Acceso inicial, T1078.004, cuentas de cloud válidas
Detección:
- event.action: UserLoggedIn AND user_agent.original.text:"azsdk-python"