¿Qué es un punto de apoyo persistente?

Antes de Huntress, yo siempre asumí que el Threat Hunting se hacía así:

  • Reunir toda la visibilidad que pudieras costear
  • Asegurarte de que incluyera aprendizaje automático sofisticado, IA, análisis de comportamiento, [inserta la palabra de moda del momento aquí]
  • Encontrar personas inteligentes de seguridad para ajustar constantemente los motores, filtrar todo y sacar a la superficie lo importante

Pero toda solución que vi era costosa, poco práctica y, muchas veces, muy manual. Tenía que haber una mejor manera.

Un nuevo enfoque para el Threat Hunting 

Según la leyenda de Huntress, el concepto de cazar persistencia se cocinó durante el tiempo de nuestros fundadores en la NSA. Como operadores cibernéticos, entendían el papel crucial que jugaban los puntos de apoyo persistentes en la cadena de ataque. Los puntos de apoyo le permiten a los atacantes mantener acceso a sus objetivos, y sin embargo, muchas veces no reciben la atención que merecen por parte de los defensores.

La verdad es que la mayoría de los ataques no tendrían éxito si los defensores pudieran simplemente reiniciar para remediar el problema; los atacantes quieren que su malware siga ejecutándose, sobre todo si invirtieron incontables horas rediseñándolo para evadir las medidas defensivas.

Y eso no es todo. En la mayoría de los casos, los puntos de apoyo se establecen después de que el atacante ya ha evadido muchas herramientas preventivas distintas, como AV/NGAV, firewalls, filtrado de DNS e incluso, en algunos casos, soluciones EDR más avanzadas.

Entonces, si pudiéramos encontrar una forma escalable de cazar estos puntos de apoyo, ¿no podrían los defensores básicamente erradicar a estos atacantes? Así nació la idea de Huntress.

Huntress notes persistent foothold


Fragmento de una propuesta inicial de una solución de “caza de persistencia” por Kyle Hanslovan

¿Qué es un punto de apoyo persistente?

Un punto de apoyo persistente es simplemente un mecanismo que usa el atacante para volver a activar automáticamente algún malware (puede ser un stub o incluso malware completamente cargado) a pesar de posibles interrupciones, como reinicios o cierres de sesión del usuario.

En la mayoría de los casos, un punto de apoyo se implanta tan pronto como se evaden las defensas preventivas y se logra el acceso inicial. Es un indicador que demuestra que el atacante ya logró pasar tus defensas. Y lo interesante es que un punto de apoyo es algo muy concreto, casi tangible, que de hecho se puede examinar en la máquina, lo que significa que deberíamos poder cazarlo y detectarlo.

¿Qué quieres decir con acceso? ¿Alguien realmente inició sesión?

Normalmente pensamos en el “acceso” como un chico con sudadera sentado en un sótano oscuro que se conectó remotamente a tu computadora. Pero en este contexto, es incluso más simple que eso.

Es como si el atacante obtuviera una copia de la llave después de entrar a la fuerza, lo que le da la oportunidad de volver una vez que haya definido su plan. Tener acceso significa la capacidad de volver a ejecutar algún fragmento de código malicioso, quizás incluso uno que envía señales esperando más instrucciones.

Para llevar la definición de forma aún más literal, un punto de apoyo (según definiciones de Google, a la fecha de esta publicación) es una posición segura desde la cual se puede seguir avanzando.

Una vez que un atacante logra entrar al endpoint, el punto de apoyo básicamente le da tiempo mientras decide qué hacer a continuación. Luego, incluso si la víctima decide cerrar sesión o reiniciar la máquina, este punto de apoyo tiene la capacidad de “reaparecer” para que el atacante no tenga que empezar desde cero y volver a hacer phishing (además, ¿qué tan probable es que alguien abra ese mismo archivo adjunto dos veces?).

¿Cómo se ve un punto de apoyo persistente?

Tomemos un punto de apoyo que Huntress ya ha visto antes. Se ve más o menos así:

persistent foothold definition
persistent foothold

Para alguien que no es profesional de seguridad, solemos pensar en la ciberseguridad como archivos malos, correos electrónicos, o incluso servicios o procesos. Para Huntress, disfrutamos de hallazgos como este, que usan y abusan de partes del sistema operativo. Pero, ¿qué es exactamente?

Vamos a analizarlo un poco más:

Primero que nada, ¿qué estamos viendo? Estamos viendo una entrada dentro del Programador de tareas de Windows.

“El servicio Programador de tareas te permite realizar tareas automatizadas en una computadora elegida. Con este servicio, puedes programar cualquier programa para que se ejecute en un momento conveniente para ti o cuando ocurra un evento específico.”

Para quienes usan Linux/Unix, es algo parecido a un cron job. Es una forma de indicarle a la máquina que ejecute algo automáticamente —un script o un programa— en cierto momento sin que tengas que intervenir y hacerlo tú mismo.

Piensa en todas las cosas que puedes hacer con esto. Por ejemplo: cada día laboral a las 9 a. m., abrir automáticamente el correo y Slack. Incluso podrías llegar tan lejos como aquellas personas que, según se rumora, encontraron formas de automatizar su trabajo para poder sentarse a jugar videojuegos (aunque, hay que admitirlo, la mayoría de estas personas en realidad usan cron).

¡Y eso es exactamente! Los atacantes son perezosos, igual que el tipo que automatizó su trabajo. Un atacante quiere saber: ¿cómo puede recuperar su “acceso” a la máquina sin tener que empezar de nuevo en caso de un reinicio? Aquí es donde entran los puntos de apoyo persistentes.

Existen muchísimos mecanismos —llamados autoruns— dentro de un sistema operativo que pueden explotarse para crear persistencia. Cualquier cosa que genere un disparador automático para ejecutar código puede usarse para crear un punto de apoyo, ya sea un elemento de inicio, una clave de ejecución o incluso una tarea programada.

¿Qué hace un punto de apoyo persistente?

Volvamos al ejemplo anterior.

La acción que se activa no es enviar un correo ni abrir un programa. En cambio, es ejecutar malware. ¿Ves la pestaña “Acciones”? Está ejecutando un ejecutable (que resulta ser mshta.exe renombrado) que llama a VBScript, el cual a su vez ejecuta PowerShell. 🚩¡Alerta de sospecha!

what is a persistent foothold

(Descubre qué hace en realidad este malware tan ingenioso en la Parte Uno y la Parte Dos de nuestra serie de blog Hiding in Plain Sight)

Dando un paso atrás, lo que tenemos que recordar es esto:

“El malware puede esconderse, pero debe ejecutarse” - Alissa Torres

La persistencia le da al malware la capacidad de ejecutarse… y ejecutarse una y otra vez, incluso en caso de una interrupción como un reinicio de la máquina o el cierre de sesión del usuario. No hay necesidad de recuperar ese acceso inicial a través de un nuevo correo de phishing, un nuevo intento de fuerza bruta, o encontrar una nueva vulnerabilidad explotable.

¿Dónde entra en juego el Threat Hunting?

La razón por la que es tan importante incluir analistas humanos del SOC al cazar puntos de apoyo es simplemente porque estos puntos de apoyo explotan partes centrales del sistema operativo. Los autoruns que pueden crear persistencia —como claves de ejecución, bandejas del sistema, eventos WMI— son necesarios para que la máquina siga funcionando y puedas seguir haciendo tu trabajo. Pero también es el lugar perfecto para que un atacante se esconda.

Como defensor, ¿cómo separas el grano de la paja? ¿Cómo sacas a la superficie los autoruns que son explotaciones ocultas de un atacante sin tocar los autoruns legítimos?

La clave aquí es evitar desactivar o eliminar incorrectamente autoruns legítimos que necesitan el sistema operativo y las aplicaciones; hacer esto demasiado o con mucha frecuencia puede, de hecho, perjudicar mucho más de lo que ayuda.

Entrenar a una máquina o a un sistema para diferenciar entre ambos es mucho más fácil decirlo que hacerlo. Y si la máquina se equivoca, existe el riesgo de romper estos elementos centrales necesarios para que la máquina funcione. Se necesitan humanos en esta cacería: pueden aprender rápido y son extremadamente buenos para distinguir lo correcto de lo incorrecto.

“Los cazadores de ciberamenazas […] deben desplegarse en estas redes para buscar los controles de acceso ocultos y persistentes. Estos profesionales de la seguridad de la información buscan activamente, aíslan y eliminan código malicioso avanzado que evade las salvaguardas automatizadas.”
-
Thomas Bossert, Former US Homeland Security Advisor

Si quieres aprender más sobre el Threat Hunting impulsado por humanos y cómo funciona, consulta esta publicación de blog.

¿Quieres aprender más sobre la persistencia? Descarga nuestro eBook.

Campaign_Persistence_BlogCTA_Redux_V2_F1

También te podría interesar