Gestión de incidentes práctica. Actuaciones ante malware (II)

Una de las metodologías más usadas para la gestión de incidentes es la metodología publicada por ENISA (European Union Agency for Network and Information Security), que se va usar como guía para la resolución del incidente.

Después de una primera aproximación a este ejercicio mediante el primer artículo de la serie, continuamos con la gestión del incidente.

Este artículo está propuesto a modo de ejercicio, así que se pueden ir siguiendo los diferentes pasos. También se va a mantener un timeline que refleja el tiempo que llevó cada uno de los pasos, teniendo en cuenta que no es el primer incidente de este tipo que se gestiona, por lo que el equipo de respuesta ante incidentes está formado y en plena forma.

En los incidentes de seguridad son muy importantes los tiempos de resolución y los tiempos que se emplean en las diferentes fases. El incidente está enfocado a un doc con Macros maliciosas de los cuales últimamente se están dando multitud de oleadas, ya que es una manera fácil y sencilla de saltarse las protecciones de los antivirus.

Este incidente está basado en un caso real que se detectó en el SOC de S2 Grupo hace unos días.

Desde el enlace https://www.securityartwork.es/wp-content/uploads/2015/03/Virus_cuidado.zip, comprimido con la contraseña “Infected”, se pueden obtener los especímenes de malware a analizar. EL MALWARE DEL ENLACE ES REAL Y ES UTILIZADO ACTIVAMENTE EN INTERNET, NO ES UN FICHERO INOFENSIVO CREADO AD-HOC COMO PRUEBA DE CONCEPTO, por lo que es responsabilidad del lector garantizar la seguridad de su propio equipo y su red si decide abrir cualquiera de los ficheros que contiene. No descargue el fichero comprimido si no sabe lo que está haciendo. Security Art Work publica la muestra con fines educativos, pero no se responsabiliza del mal uso accidental o intencionado que pueda hacerse del malware. Insistimos: si no sabe muy bien lo que está haciendo, NO DESCARGUE EL FICHERO. Los experimentos con gaseosa.

Vamos allá. Empezamos con la gestión.

1. Fase 1 – Incident report – 10:27 del 8 de Abril de 2015: El sistema de correlación de eventos avisa de que se ha detectado un envío masivo de ficheros .doc a multitud de cuentas de la empresa. Además el documento ha disparado la siguiente regla YARA:

rule OfficeMacrosWinintelDLL
{
	meta:
		Autor = "Manuel Bermudez"
		date = "08-01-2015"
		description = "Fichero office con macros sospechosa"
		link = "https://www.securityartwork.es/"
	strings:
		$VBA1 = "VBA6"
		$VBA2 = "VBA7"
		$str1 = "wininet.dll" nocase
		$str2 = "InternetOpenUrl" nocase
		$str3 = "InternetReadFile" nocase
		$str4 = "InternetOpen" nocase
 		$str5 = "InternetCloseHandle" nocase
	condition:
		1 of ($VBA*) and 2 of ($str*)
}

Disponemos de los siguientes datos del fichero en cuestión:

Nombre: (Payment) 04.07.15.doc
SHA256: 8008a15c8321807da9c1ed31db3c00e10dd9d2b84ea15e6d285f35b95eb7c882

2. Fase 2 – Registration – 10:32 del 8 de Abril de 2015: Registramos el incidente, para lo que normalmente siempre se dispone de una herramienta de ticketing que permite hacer el seguimiento de los incidentes. Damos de alta el incidente siendo lo más descriptivos posible, como por ejemplo:

Número Evento: XXXX
Descripción: Recibido doc con posibles Macros maliciosas
__________________________________________________________________

Descripción detallada: Se han recibido multitud de correos con un mismo fichero adjunto que podría ejecutar una macro maliciosa que presumiblemente se descargara algún recurso.
Nombre: (Payment) 04.07.15.doc
SHA256: 8008a15c8321807da9c1ed31db3c00e10dd9d2b84ea15e6d285f35b95eb7c882
MD5: 05a94cd1e361bdee1c9c780036a7c956
SHA1: 8e813356b36ebcf50334794dce4d6e66a1a18b7c

3. Fase 3 – Triage: es un término médico que proviene del francés. Básicamente se trata de determinar qué necesitamos para diagnosticar y resolver el incidente, así como tratar de determinar el posible impacto.

4. Fase 4 – Incident Resolution – 10:35 del 8 de Abril de 2015. Esta es la fase más larga y se describe como un ciclo básico compuesto por 5 pasos, como se ve en la imagen. Esta una de las fases más importante y es necesario ser lo más eficientes posibles para proponer soluciones iniciales, dado que cuanto antes se implementen las soluciones menos equipos se infectaran.

4.a. Data Analysis – 10:40 del 8 de Abril de 2015: Se procede a analizar el documento. Por la información de la que se dispone, se trata de un doc con macros. Existen varias maneras de proceder, como por ejemplo analizarlo con las oletools u oledump. Sin embargo, teniendo en cuenta que el tiempo apremia, lo mas eficiente es copiarlo directamente a la máquina virtual y ejecutarlo, debido a que cada vez las macros están más ofuscadas o bien tienen contraseña, así que una manera que casi con total seguridad va funcionar es ejecutarla en la máquina virtual, que recordemos que no está conectada a internet (ésta está simulada).

Esto es lo se ve al abrir el fichero “(Payment) 04.07.15.doc”:

Al ejecutar las Macros observamos cómo en el DNSchef del equipo anfitrión nos muestra que se ha realizado una petición:

La consola en la que se ha puesto el puerto 80 a escuchar también nos da más datos:

Con esta información ya podemos poner en marcha acciones de contención, así que pasamos a la siguiente fase sin olvidar de documentar con todos los datos nuevos que hemos obtenido.

4.b. Resolution research – 10:50 del 8 de Abril de 2015. La idea de esta “subfase” es básicamente buscar una solución, que en este caso es evidente: bloquear el dominio para impedir que los usuarios que ejecuten las macros se infecten, así como implementar reglas de detección para localizar posibles equipos infectados.

4.c. Action proposed – 10:52 del 8 de Abril de 2015. Se solicita al departamento que corresponda el filtrado del dominio “www.droopy999.w.interia.pl” para que los usuarios no puedan navegar por el. Este proceso normalmente se realiza en el proxy de navegación o en firewall. También se solicita que se implementen las siguientes reglas en el IDS (casi todos los IDS/IPS del mercado suelen aceptar reglas con sintaxis de snort):

alert udp any any -> any 53 (msg:"S2-Malware Doc con Macro Maliciosa"; 
content:"www|09|droopy999|01|w|07|interia|02|pl" ; classtype:trojan-activity; sid:XXXXXX; rev:1;)

alert tcp any any -> any $HTTP_PORTS (msg:"S2-Malware Doc con Macro Maliciosa"; 
content:"www.droopy999.w.interia.pl" ; classtype:trojan-activity; sid:XXXXX; rev:1;)

Es muy importante seguir documentando la incidencia, haciendo especial hincapié en las hora de solicitud de las diferentes acciones.

4.d. Action Performed. En este punto debemos realizar la acción, ya sea realizando las solicitudes pertinentes podemos o aplicando los filtros si es un aspecto que entra dentro de nuestras competencias. En este punto se puede pasar a la siguiente fase.

4.e. Eradication and Recovery – 10:57 del 8 de Abril de 2015: en este paso buscamos información para saber cuántos usuarios han ejecutado las macros. Para esto necesitaremos los logs de navegación, en los que buscaremos equipos que hayan accedido a “http://www.droopy999.w.interia.pl/11/004.exe”.

La recomendación suele ser formatear dichos ordenadores si el departamento de soporte correspondiente dispone de un protocolo para hacerlo, también podemos comprobar si el antivirus lo detecta y erradica. Si no es así, la mayoría de empresas de antivirus te permite enviarle ejemplares para añadirlas en su fichero de firmas. Para ello debemos descargarnos el fichero “004.exe” y hacérselo llegar, aunque la experiencia nos dice que, en la mayor parte de los casos, es mucho más rápido y efectivo formatear los equipos infectados.

Aunque puede parecer que ya estamos en disposición de finalizar la alerta, aún nos queda hacer otra pasada sobre la fase 4 Incident Resolution, ya que al tener el virus es posible detectar si existen equipos infectados. En el siguiente post analizaremos el fichero “004.exe” y procederemos al cierre del incidente.

La línea de tiempo es aproximada, pero este virus se detectó el 8 de Abril de 2015 por la mañana y la detección en virustotal en ese momento era de 1/57. En menos de media hora se pudo analizar el documento y proponer una solución, siempre documentando cada una de las fases.

Evasión de WAFs

WAF (Web Application Firewall) es un elemento de protección frente a ataques que se encarga de analizar el tráfico web dirigido a los distintos portales que pueda disponer una organización. Este tipo de firewalls se diferencia del resto en que procesa el tráfico HTTP(s) a nivel de la capa 7 de la pila OSI y por lo tanto permite capacitarlo de reglas de detección directamente sobre las tecnologías con las que estén diseñados y desarrollados los sitios web. Además, podemos diferenciar este tipo de dispositivos de lo que denominamos un IPS por las características de identificación de patrones anómalos.

Normalmente pueden operar en 3 modos:

  • Modo negativo, o basado en listas negras.
  • Modo positivo, o basado en listas blancas.
  • Modo mixto, empleando una combinación de los modos negativo y positivo.

Si se emplea el modo negativo exclusivamente, éste puede provocar una cantidad mayor de falsos positivos, además de sufrir un retardo mayor en el tiempo de procesamiento y en definitiva menor protección. En el lado positivo, tiene un menor tiempo de implementación.

[Read more…]

Gestión de incidentes práctica. Actuaciones ante malware (I). Laboratorio.

En esta serie de tres artículos se va a proponer un ejercicio de gestión de un incidente, concretamente un incidente relacionado con Malware. Se aplicará una de las metodologías de resolución de incidentes más extendida, y se analizaran las diferentes acciones que se deben tomar para gestionar un incidente relacionado con un malware. En este caso vamos a trabajar en un incidente relacionado con malware real, por lo que se necesitara un laboratorio para poder analizar el espécimen.

Además de una Cuckoo sandbox, que podéis ver como se instala en este otro artículo, vamos a necesitar una serie de herramientas:

Un equipo anfitrión, en este caso se trata de un Linux, con el siguiente software:

Equipo huésped Windows XP:

[Read more…]

Denegación de servicio a un PLC Omron con comandos legítimos en FINS

Hace poco leí un artículo en el blog de Shodan titulado “Why control systems are on the Internet” escrito por John Matherly (fundador de Shodan), en el que comentaba un párrafo de la documentación oficial de Omron donde se explica porqué la conexión a internet de los PLCs de esta marca es completamente segura.

Su robusta teoría se basa (o se basaba, desconozco si han cambiado su punto de vista) en que sus PLCs no tenían un sistema operativo basado en Windows ni se comunicaban a través de un puerto conocido con un protocolo estándar de Ethernet, lo que los haría invisibles a los malvados ojos de los atacantes.

Según esta curiosa pero extendida manera de concebir la seguridad, sería extremadamente extraño que, por ejemplo, alguien se descargara la especificación oficial del protocolo FINS (protocolo industrial de Omron) de la página web oficial e intentara comunicarse con un PLC.

Para ponernos en contexto, la manera legítima de configurar y trabajar con los componentes industriales de la marca Omron es con el software de esta marca CX-One, que comprende distinto software como el CX-Programmer, diseñado para la configuración y programación de los PLCs.

Aunque estos PLCs pueden disponer de diferentes módulos de comunicación como Ethernet, están diseñados con la idea de que bajo cualquier problema que surja, siempre sea posible una conexión en serie de manera física.

[Read more…]

Hardware Hacking, Row Hammer y Light Eater

En la actualidad, en el mundo de la seguridad recibimos continuamente anuncios de vulnerabilidades de software y sus correspondientes actualizaciones de seguridad. Prácticamente no pasa un solo día en el que no aparezca una nueva vulnerabilidad. La gran mayoría de estas vulnerabilidades aprovechan fallos en la implementación del software para obtener por ejemplo ejecutar código, elevar privilegios, superar mecanismos de validación, obtener información, etc.

Es obvio que en el mundo de la seguridad la atención se centra las potenciales vulnerabilidades en el software, y no falta razón. No obstante, el problema radica en la creencia firme de que los dispositivos hardware que ejecutan el mismo son perfecta y completamente seguros. Nada más alejado de la realidad; el hardware está formado por multitud de bloques de circuitos interconectados que interactúan de una forma muy compleja, y es fundamental que se tenga en cuenta la seguridad en el diseño y ensamblado de los componentes.

Dentro de la cadena de fabricación de, por ejemplo, la placa base de un ordenador personal cualquiera, se emplean distintos chipset de distintos fabricantes y características, como la BIOS, los controladores de memoria, los chipset de bridge, controladores ATA, etc. Y qué decir de cuando a esa misma placa conectamos distintos dispositivos, todos ellos con sus propios componentes. Es fácil hacerse una idea de la complejidad que puede alcanzar un sistema aparentemente convencional. Por lo que, para poder “controlar” la seguridad a este nivel se deberían llevar medidas de control y verificación hasta los propios fabricantes de los dispositivos o los que los ensamblen equipos.

[Read more…]

Un arma muy poderosa de ciberataque: conocimiento IT + conocimiento industrial

Cada vez son más frecuentes los ciberataques producidos por equipos multidisciplinares en los cuales sus integrantes disponen de conocimientos IT y conocimientos del funcionamiento del sistema industrial al cual pretenden atentar. Esto se ha convertido en un arma muy poderosa, ya que los atacantes no solo son capaces de acceder al sistema de control industrial, sino que pueden identificar qué parte del proceso industrial es crítica y delicada y que saboteando su sistema de control, pueden producir graves daños que afecten tanto a la producción de la planta como a la propia instalación.

Todos recordamos el caso del malware Stuxnet que en 2010 atacó una instalación industrial dañando más de 3000 centrifugadoras en Irán. Recientemente, según un informe de la oficina federal alemana para la seguridad de la información, una planta de acero sufrió un ciberataque a sus sistemas de control industrial ocasionando graves daños. Según un informe anual publicado por la oficina federal alemana para la seguridad de la información, conocida como BSI (Bundesamt für Sicherheit in der Informationstechnik), existe evidencia de un ataque cibernético dirigido a los sistemas de control en una acería alemana que resultaron en daños “masivos” a un alto horno.

El informe BSI describe las destrezas técnicas de los atacantes como “muy avanzadas“. Tenían “know-how avanzado no sólo de la seguridad IT convencional, sino también el conocimiento técnico detallado de los sistemas de control industrial y procesos de producción de la planta“. Diferentes sistemas internos y componentes industriales fueron comprometidos. El informe describe el ataque a la acería, pero no identifica a la empresa afectada ni revela cuando se produjo el ataque.

La planta fue atacada combinando un ataque “spear phishing” y la ingeniería social para acceder a la red de oficinas de la institución. A partir de ahí, el ataque continuó su camino a través de la red de producción causando un gran daño en un alto horno.

[Read more…]

Exploit Kit Analyzer

En la entrada de hoy quiero dar a conocer una herramienta que he probado recientemente cuyo objetivo es analizar Exploit Kits: Exploit Kit Analyzer – EKAnalyzer, que ha desarrollado Jose Ramón Palanco (fundador de Drainware) y que me parece bastante útil para la gestión de incidentes de seguridad en tiempo real.

EKAnalyzer es una herramienta que realiza las mismas peticiones HTTP registradas en una captura de tráfico (en formato pcap), para comprobar si en el momento de la ejecución se sirven artefactos maliciosos (como Exploit Kits). No es una herramienta para análisis forense, es decir, puede que un pcap en un instante determinado dé como positivo (malicioso) pero por ejemplo, una hora después, si el Exploit Kit ha sido desmantelado, dará como resultado negativo.

Para la identificación de exploits, EKAnalyzer realiza todas las peticiones varias veces, usando diferentes User-Agents en cada iteración y además realiza una copia de todos los ficheros descargados en cada análisis. Actualmente se integra con diferentes herramientas/utilidades como:

  • Filemagic.
  • Virustotal API.
  • Yara.
  • Análisis de ficheros swf.
  • Clamav.

La puesta en marcha es muy sencilla siguiendo los pasos que se indican el fichero de instalación. Tras levantar el servicio llegamos a una interfaz Web muy sencilla (la cual le he prometido a Palanco mejorar y ponerle algo de colorines que está muy sosaina :) a la que poder subir el pcap a analizar:

Para probar un ejemplo de funcionamiento, en el laboratorio dispongo de una serie de pcaps preparados que realizan peticiones contra Exploit Kits que actualmente están activos. A continuación un ejemplo de uno de esos pcaps que como vemos contiene ciertas peticiones hacia algunos recursos de www.drainware.com:

Si subimos uno de estos pcap a EKAnalyzer lo que veremos será lo siguiente de forma secuencial:

Una vez el análisis ha concluido podemos ver los detalles del mismo para cada uno de los User-Agents. Destacar que el User-Agent que aparece en negrita es el original del pcap. Podemos ver unas capturas a continuación:

Como vemos, esta herramienta nos puede ayudar bastante agilizando algunos procesos de comprobación que normalmente se llevan a cabo en la gestión de un incidente de seguridad, reduciendo un trabajo que podría llevarnos horas a unos poco minutos. Nos ahorramos el coste de tener que abrir cada pcap, obtener las URL, mirar las cabeceras, replicar peticiones con diferentes User-Agents, analizar las respuestas, etc., que habitualmente se suele hacer de forma manual.

EKAnalyzer está bajo licencia GNU AGPL y disponible para su descarga y contribución en GitHub.

Tratando con bichos (I)

Casi diariamente nos topamos con notificaciones de phishing que llegan a la oficina, algunas llegan con un adjunto, generalmente en formato pdf o en algún formato de la suite Office (doc,xls,ppt ) y sus derivados. Este caso despertó mi interés y decidí investigar un poco más allá de la simple detección y bloqueo de URLs o adjuntos.
Esta vez el correo electrónico llegaba escrito en inglés, y diciendo algo sobre un recibo no devuelto, que amablemente nos remitían para que lo pudiéramos abonar.

El email en cuestión era éste:

origen: 	billing@logmein.com
asunto: 	Automatic payment failed - Credit Card rejected
adjunto: 	invoice_723961.doc

Dear customer,
 
Your subscription for LogMeIn Central Plus service will end within 72 hours.
You are receiving this notification because the automatic payment has failed.(Credit card: declined)
For more information, please find the payment invoice attached to this letter.
Payment must be submitted before 21/02/2015, in order to avoid delays and service interruptions.

Thank you for using LogMeIn
Copyright © 2003-2015 LogMeIn, Inc. All rights reserved.

[Read more…]

Conferencia final del Proyecto CYSM

La semana pasada tuve la oportunidad de participar, junto con mi compañero Sergio Zamarripa, en la conferencia final del proyecto CYSM. La jornada se desarrolló en un muy buen clima de colaboración donde pudimos compartir resultados, experiencias y opiniones sobre la seguridad en los puertos, los procesos logísticos y la cadena de suministro en general, tanto desde un punto de vista de la seguridad física como de la ciberseguridad. Nos gustaría dedicar la presente entrada para hablaros del citado proyecto y trasladaros algunas conclusiones, notas y comentarios sobre el evento.


¿Qué es el proyecto CYSM?

CYSM (Collaborative Cyber/Physical Security Management System) es un proyecto europeo cuyo objetivo principal es la mejora de la seguridad de la cadena de suministro a través del análisis de los riesgos físicos y relativos a la seguridad de la información. Para lograr este objetivo se ha trabajado en tres líneas principalmente:

[Read more…]

Mi primer amor. Mi primera vez…

(N.d.E.: Con esta entrada nos despedimos hasta el próximo martes. Pasen ustedes unas muy felices vacaciones, los que las tengan, y un ambiente tranquilo en el trabajo, los que no :)

Mi primer amor fue McGiver. Esa habilidad para escapar de los peligros con chicles, clips y un mechero, ese pelazo de rebelde… Vamos, todo un hacker en potencia… Una pena que fuese como 30 años mayor que yo, pero bueno.

No, ahora en serio. Mi primer amor de verdad fue un Pentium 100 Mhz que por aquella época pesaba más que yo y que era la pera limonera, más que nada porque era solo mío y por fin podía hacer maldades aprender desde casa y no tener que ir a hacerlas aprender al ordenador de la Biblioteca del pueblo, un Amstrad PC1512 si no recuerdo mal, que hacía mucho ruido por cierto.

El caso es que el otro día, desde @securityartwork os propusimos que nos contaseis cual había sido vuestro primer PC con el hashtag #miprimeramor, y nos quedamos gratamente sorprendidos de ver cómo la mayoría lo recordaba con muchísimo detalle y cariño.

@JoanEMarti nos contaba que su primer PC fue un Bondwell 38, CPU 8088@4,7Mhz, 640k RAM, 1 disquetera 5,25″ sin HD, MS-DOS y BASIC. @EnderXenocida recordaba su Fujitsu / Secoinsa FM-7 con monitor de fósforo verde.

@The_Great_Mega confesaba que su primer amor fue un Sinclair ZX Spectrum (como @jestrada1978)+ 48K, y su primer PC un IBM PS/1 – 286 10 MHz – 1 MiB RAM. @jesusgallego69 iba un poco más allá, y nos compartía una foto de su Sinclair ZX Spectrum 48K el cual lleva operativo más de 30 años, y lo que le queda, nos comentaba Jesús:

Alex perdió la cabeza por un Spectrum, con el que “programó una carta de ajuste para un canal de TV que montó en su finca” (que friki) y @lawwait descubrió el amor con un 486 DX33 4MB RAM 250MB HD. Julian Vilas nos contaba lo “bien que se lo pasó“ (y todos sabemos lo que eso significa) con su Amstrad CPC 6128plus. @DarkSh4m4n por su parte nos comentaba que él era de Amstrad CPC 6128, de disco y monitor fósforo verde con el pack de ‘juegacos’ de Dinámics, que aún conserva.

@_stmartin también tenía otro igual y tuiteó:

@ITmorsant confesó su amor por un Amstrad CPC464 64k ,unidad de cassette con monitor de fósforo verde incluyendo el juego Game Over. @daviddelgadogc también nos comentó que era de Amstrad y tuvo un PC1512 para posteriormente dar paso a un Pentium MMX 233MHZ. Otro Pentium MMX pero de 200 MHz, 256 Mb de RAM, 3 Gb de disco duro y por supuesto con Windows 95 tenía como primer amor Nian506.

@LionSwansec también comenzó (después de ahorrar la paga durante más de un año, lo que tiene su mérito) con otro Pentium, éste 90 con 16 Mb de RAM y 850 Mb de HD. @BlackDrgI2P por otro lado nos contaba literalmente : “Amstrand pc 1512 #miprimeramor un pedazo 8086, con solo una disquetera de 5’4”. Siguiendo con los Pentium, @karl0z rememoraba su Pentium 200Mhz MMX con un “increíble” disco de 2GB. Wow. Quién te ha visto y quién te ve :)

@murgiland seguro que se emocionó recordando su IBM 80386 2MB RAM DOS6.22 ISA-SVGA Monochrome Display 40MB HDD Win3.1 WordPerfect5.1 DriveSpace TurboC, ahí es nada. @callerom recordaba su Spectravideo SVI-328, Screen 0. Para @AGrimaltos el primero fue un Spectrum z80, pero el amor surgió realmente con un Amstrad128 con la cinta de casette al lado y el monitor verde…

@freemagnum nos habló de un Hyundai Pc XT con 640 kb de RAM, HD de 30 mb. y disquetera de 5 1/4. Luego le puso un módem de 2400 baudios. @ctomasio nos hablaba de sus comienzos con un PC de 4.5 Mhz con dos disqueteras y 640 de RAM, procesador 8088 y @dsecuma su Ciryx P200 heredado :) (¿de su hermano mayor, quizá?). Por último, Javier nos tuiteaba su Dragon 32, y nuestro amigo @albert0r nos mencionaba su Sony HitBit HB-75P,un bonito MSX 32Kb de RAM.

Cómo veis, el primer amor no se olvida nunca ;) ¿Nos contáis el vuestro?

Pasadlo genial estos días :)