martes, 29 de enero de 2013

La importancia de las limpiezas completas luego de una intrusión importante


Recién miraba este artículo viejo y leo un comentario, la respuesta a "¿qué limpiar luego de una intrusión?":

"Clean installs on everything, new passwords, and don't trust anything executable that has been on the compromised machines anywhere near the time it was hacked."

Muchas veces no se comprende totalmente la importancia de una reinstalación total. El problema de fondo es que cualquier ejecutable o binario en cualquier OS puede ser troyanizado en cuestión de segundos, y no hace falta más que descargar unos pocos KB de herramientas accesorias  en la máquina atacada. De hecho, casi cualquier archivo ejecutable o no puede ser troyanizado (de maneras diversas).

Luego, si bien podemos escanear los hashes - porque tienes un HIDS en tus servers - críticos - verdad? -  de muchos binarios instalados en un sistema para ver si coinciden con el hash que deberían tener (si no coinciden, podrían estar troyanizados o alterados de algun modo), muchas partes de los sistemas utilizan datos que no son hasheados nunca. En Linux por ejemplo, los archivos $HOME/.bash_profile pueden tener instrucciones ejecutables, y algunos - tal vez unos 200 en un sistema con mucha actividad de usuarios - cambian automáticamente tan a menudo que revisarlos uno por uno luego de una intrusión se vuelve impracticable cuando hay muchos servers y poco personal (el escenario típico). De todos modos, la última captura de tu HIDS puede haber ocurrido hace días, y si la intrusión ocurre durante la ventana de tiempo en que se están modificando los datos, la tarea va a ser revisar todos y cada uno de los archivos que cambiaron. Rastrear los cambios en los binarios debería ser fácil (el manejador de actualizaciones del sistema operativo te puede informar de qué cosas fueron instaladas durante la ventana de cambio), rastrear los cambios en archivos que guardan sus datos en formatos "binarios", inclusive propietarios, es mucho más complicado (sino imposible).

Queda por lo tanto, buscar la alternativa lógica: aislar exactamente qué sistemas fueron accedidos durante una intrusión. El asegurar que un sistema no fue alcanzado por una intrusión suele ser una declaración de probabilidades, más que de certeza técnica absoluta. La realidad es que si un sistema está conectado a una red, tiene ciertos privilegios de comunicaciones (reglas en un firewall, excepciones en IDS y filtros capa 7, etc.), en alguno de eso privilegios hay algun protocolo que puede ser usado para montar un túnel entre dos sistemas, el ya hackeado y otro a atacar.

Salta a la luz que si se encuentra un sistema obviamente hackeado, ello no implica que haya sido el objetivo primario del ataque, sino - más probablemente - que tal vez solo sea el señuelo. El sistema realmente atacado tal vez fuera el lugar donde la mayor cantidad de medidas antiforense y de limpieza profunda fueron implementadas por los atacantes.

La realidad de los ataques, del hacking profesional, es elevar al máximo las posibilidades de no ser detectado, minimizando el footprint en los sistemas atacados, incluyendo: no bajar o bajar mínimas herramientas al sistema atacado, disminuir al mínimo el tráfico de red, usar protocolos encriptados al mínimo (que si no directamente auditados en capa 7, son logueados para análisis de tráfico en circunstancias sospechosas, etc.)

El reciente framework de ciberguerra, Red October, descubierto por Kasperky Labs (owned itself by Yevgeny at some point in 1997 :-), funcionaba así en cuanto a la extracción de datos, en un solo movimiento, bajaba los paquetes de explotación y extracción de datos en el sistema objetivo, extraía toda la información una (1) sola vez, y luego borraba todo rastro de esos binarios, y no intentaba volver a extraer esa información del sistema atacado. Sabemos que funcionó muy bien porque se tardó 5 años en detectar a Red October y de todos modos, el mecenas (actualicen su jerga de information security en foros apropiados), detrás de Red October ya no está más a la vista (aunque Eugene y los chicos le siguen la huella por la red todavía).

http://arstechnica.com/security/2013/01/red-october-espionage-platform-unplugged-hours-after-its-discovery/

El trabajo completo luego de limpiar los supuestos sistemas afectados - o mejor, de reinstalarlos por completo - es de todos modos colocar el sistema total bajo fuerte auditoría contínua (no sea que el atacante haya plantado y borrado luego troyanos/backdoors para que al restaurar backups consolidados, el sistema "limpiado" vuelva a estar hackeado), y probablemente tendrás que montar un nuevo rack con un par de decenas de equipos corriendo en paralelo a tu infraestructura, solamente para seguirle la pisada a tus anteriormente confiables sistemas y redes. Al menos por unos meses.

Así que lo mejor para intentar obtener un estado de "tabula rasa" en seguridad de vuelta es reinstalar cuantos más sistemas puedan ser reinstalados, en el menor tiempo posible, y luego "enganchar" todo a la infraestructura de control y auditoría contínua (y sentarse a ver cómo pasan los meses hasta llegar al threshold de las policies que van a declarar "limpios" a los sistemas y redes en algun momento).

No hay comentarios: