Search Results for: yara

YaraRET (I): Carving con Radare2 y Yara

Durante la gestión de casos forenses, hay veces que nos encontramos en un callejón sin salida, donde tras la detección de un indicador de compromiso de carácter crítico, nos toca abordar un análisis con evidencias poco sólidas.

Es por ello, que decidí llevar a cabo el desarrollo de una herramienta de carving que se basara en la detección con reglas Yara. Dicha herramienta también debía de manejar archivos en raw y ser capaz de llevar a cabo una gran variedad de opciones sobre estos datos de manera flexible, por lo que decidí utilizar Radare2.

De esta combinación nació YaraRET, una herramienta de carving de ficheros desarrollada en Go, cuya versión estable está disponible en el repositorio de YaraRules: https://github.com/Yara-Rules/YaraRET

La versión de desarrollo puede ser encontrada en el siguiente repositorio: https://github.com/wolfvan/YaraRET

Así pues, durante el siguiente artículo se va a exponer la resolución de un caso forense ficticio con YaraRET, el cual está basado en la combinación de varios casos que me he ido encontrando desde hace unos cuantos meses. [Read more…]

Módulo Radare2 para Yara

Desde el equipo de YaraRules Project nos gustaría presentaros un nuevo módulo que hemos desarrollado que permite utilizar la información que nos provee radare2 para crear firmas de Yara.

Ya hemos hablado en este blog de Yara (potente herramienta open-source para búsqueda de patrones en binarios) que además, nos permite ampliar sus funcionalidades a través del uso de módulos, bien usando los ya oficialmente distribuidos (PE, ELF, Cuckoo, Math, etc), bien diseñando nuestros propios módulos (como explica muy bien aquí la documentación de Yara).

Por otro lado, todos los que conocemos radare2 sabemos que es un framework de reversing muy versátil, open-source, y que entre otras muchas funcionalidades, nos permite obtener mucha información de un binario y además soporta tantos tipos de formatos de ficheros (ELF, Java Class, Mach-O, COFF, Gameboy, Nintendo Switch bins, SNES roms, WASM, Compiled LUA, PCAP files, etc.), que resulta difícil encontrar otra herramienta de estas características que lo haga.
[Read more…]

Yara Rules Strings: estudio estadístico

Como todos los usuarios de Yara saben, las firmas de esta herramienta están basadas en “strings”; que son básicamente descripciones de familias de malware basadas en patrones. Es posible encontrarnos con firmas sencillas como por ejemplo:

rule LIGHTDART_APT1
{
    meta:
        author = "AlienVault Labs"
        info = "CommentCrew-threat-apt1"
        
    strings:
        $s1 = "ret.log" wide ascii
        $s2 = "Microsoft Internet Explorer 6.0" wide ascii
        $s3 = "szURL Fail" wide ascii
        $s4 = "szURL Successfully" wide ascii
        $s5 = "%s&sdate=%04ld-%02ld-%02ld" wide ascii

    condition:
        all of them
}

O firmas más complejas en las que se usan wild-cards, expresiones regulares, operadores especiales o cualquier otra de las funcionalidades que se pueden usar en Yara y que se pueden consultar en la documentación.
[Read more…]

Howto: Cómo escribir reglas de Yara en Koodous

La entrada de hoy, una traducción de este post con algunos elementos extra, va a cargo de Antonio Sanchez, un analista de seguridad (y autor del post en inglés) que forma parte de Hispasec y del proyecto Koodous, basado en inteligencia colectiva para proteger tu Android y dirigido tanto a usuarios finales como a investigadores de seguridad. Esperemos que les resulte interesante.

 

En esta entrada del blog nos gustaría enseñar cómo escribir reglas Yara en Koodous. Koodous tiene una forma un poco especial de funcionar con los APKs y la intención de este artículo es dejarla clara, además de explicar la estructura básica de una regla Yara. Nótese que el objetivo de este post no es cómo analizar malware para Android, sino cómo crear reglas Yara en Koodous, así que suponemos que el usuario tiene nociones de análisis y será capaz de extraer las cualidades que definan una aplicación.

Todas las intrucciones que se van a utilizar en esta entrada han sido probadas en sistemas Linux, aunque son fácilmente extrapolables a Windows y MacOs.

¿Qué debes conocer de Yara?

Yara es “The pattern matching swiss knife for malware researchers (and everyone else)” según su autor, Víctor M. Álvarez de VirusTotal. Este software es libre y gratis, bajo licencia Apache 2.0 y cualquiera puede colaborar a mejorar el proyecto. En Security Art Work ya os hemos hablado de esta herramienta y sus utilidades en diferentes artículos anteriores.

[Read more…]

Detección de código malicioso con YARA (II)

En el post anterior (Detección de código malicioso con YARA (I)) os explicamos la funcionalidad de YARA y cómo crear reglas básicas para detectar malware especifico. En este post vamos a usar YARA con Volatility sobre un volcado de memoria RAM para la detección de un Troyano bancario ‘Zeus’. Para los que no sepáis que es Volatily, es una herramienta de código abierto para el análisis de la memoria RAM. Es compatible con el análisis para Linux, Windows, Mac y sistemas Android.

Para el propósito de demostrar la funcionalidad de Volatility con Yara hemos obtenido un volcado de memoria que esta infectado por uno de los troyanos bancarios mas conocidos, ‘Zeus’.

Actualmente Zeus es muy “difícil” de detectar incluso con antivirus y otros softwares de seguridad, ya que usa algunas técnicas de ofuscación. Se considera que esta es la razón principal por la cual se ha convertido en una de las mayores botnets de Internet.

[Read more…]

Yara para la Gestión de Incidentes: un caso práctico

Yara es una iniciativa que cada vez va consiguiendo un mayor uso en el ámbito de la gestión de incidentes, en especial este último año. Este proyecto ha sido ampliamente comentado en artículos de este y otros blogs.

En esta ocasión voy a mostrar un ejemplo práctico del uso de yara para la gestión de incidentes provocados por ransomware. Estos últimos meses ha habido un aumento de actividad de este tipo de malware que, a pesar de las numerosas advertencias realizadas por aquellos que nos dedicamos a la seguridad y la gestión de incidentes, sigue teniendo un impacto bastante grande. Afortunadamente, los últimos incidentes de ransomware en los que he participado, el compromiso únicamente ha afectado a un usuario en cada caso, lo que ha permitido centrarnos más en el alcance de los archivos cifrados que en la identificación de posibles equipos comprometidos.

Identificación de extensión

Uno de los primeros casos en los que tuvimos que participar fue un incidente con CTB-Locker. En esta ocasión, un usuario reporta un mensaje que le aparece en su escritorio informando que sus archivos han sido cifrados y se solicita un rescate para su recuperación. Una vez contenido parte del incidente desconectándolo de la red e identificando que es el único equipo afectado (no vamos a extendernos en este punto) pasamos a determinar qué archivos han sido cifrados y cuáles pueden recuperarse (nunca recomendamos pagar por su rescate).

[Read more…]

Detección de código malicioso con YARA (I)

¿Qué es YARA y para qué sirve?

YARA es una herramienta de código abierto para la identificación de malware la cual utiliza una gran variedad de técnicas. Su principal característica es su flexibilidad. Además, es de gran ayuda en situaciones de respuesta a incidentes, en las cuales tanto las herramientas como el tiempo, suelen ser limitados.

En este post vamos a crear un par de reglas para detectar payloads específicos de Metasploit y de Veil-evasion.

Escribir reglas para YARA es bastante sencillo. Aunque YARA ofrece multitud de opciones para crear reglas, solo hay que entender unos conceptos básicos para empezar. Observemos el siguiente ejemplo.

Regla YARA de ejemplo

[Read more…]

Regla Yara para CVE 2013 2729

Antonio Sanz en sus artículos “PDF deconstruído al aroma de shellcode”, hace un análisis empleando la utilidad peepdf de un PDF que explota la vulnerabilidad “CVE 2013-2729”.

A partir de estos artículos, se me ocurrió la idea de generar una regla de YARA para detectar estos PDF maliciosos.

Para ponernos en situación, recordemos que la vulnerabilidad CVE 2013-2729 explota un fallo de Adobe Reader X que no valida bien los datos de imágenes BMP incrustadas en el documento. Mediante este fallo se puede ejecutar código malicioso debido a que provoca un heap overflow.

La siguiente regla de yara nos permite localizar los ficheros que explotan dicha vulnerabilidad:

rule shellcode_cve_2013_2729
{
meta:
        author = "Manuel"
        company = "S2 Grupo"
        date = "2014-12-17"
        description = "PDF con shellcode CVE 2013_2729"
        link1 = "http://www.binamuse.com/papers/XFABMPReport.pdf"
        link2 = "https://github.com/feliam/CVE-2013-2729/blob/master/XFABMPExploit.py"
        link3 = "https://github.com/feliam/CVE-2013-2729/blob/master/E10.1.4.pdf "
        link4 = "https://www.securityartwork.es/2014/09/30/pdf-deconstruido-al-
                 aroma-de-shellcode-i/"
        md5test =  "eb9228f17568704676385428d3bbefff"
strings:
        $xfa1 = "XFA 1 0 R"
        $xfa2 = "XFA 2 0 R"
        $xfa3 = "XFA 3 0 R"
        $s0 = "AcroForm 2 0 R"
        $s1 = "/Filter [/Fl"
condition:
        1 of ($xfa*) and all of ($s*)
}

Para ejecutar la regla, utilizaremos la siguiente instrucción:

yara <fichero regla> -s <fichero pdf>

Esperamos que esta regla os sirva de ayuda para detectar y analizar estos hermosos PDFs con regalo que seguro que recibís estas navidades.

YARA 101

¿Qué es YARA?

Cuando se habla de detección de malware existen principalmente tres maneras de determinar si un fichero es dañino o no: firmas, heurística y string signatures.

La más extendida en los sistemas de detección antivirus es la detección en base a firmas, es decir, en base al resultado de calcular el HASH de un fichero, pasarlo por una base de datos de firmas y comprobar si este fichero ha sido detectado anteriormente como malware. Este tipo de firma es inútil para la detección de malware no conocido y para evadirlo basta con recompilar el código en un sistema diferente o cambiarle un solo bit.

Para tratar de parar estos métodos de evasión se utiliza el método heurístico. Este método se basa en el comportamiento del ejecutable y, de acuerdo a las acciones que realiza dentro del sistema, se decide si el fichero es malicioso o no. El principal problema de este método es que puede generar una gran cantidad de falsos positivos ya que muchos programas realizan acciones lícitas que pueden hacer saltar las alertas.

Por último, queda el método que atañe a este artículo, string signatures. Este método se basa en otro tipo de firmas diferente al comentado anteriormente. En lugar de usar firmas tipo HASH, utiliza cadenas de texto o binarias que identifican inequívocamente a un malware. De esta forma aunque se modifique el fichero, si este sigue conteniendo esas cadenas que conforman una firma, los analistas seguirán siendo capaces de detectar y clasificar ese malware.

[Read more…]

Wish List del hunter y la madurez del SOC/TH

En el contexto actual de la ciberseguridad se enfrentan dos bandos claramente diferenciados:

Por un lado, la industria del cibercrimen, que se ha consolidado como una de las principales fuerzas económicas a nivel global, ocupando uno de los primeros puestos en la economía mundial. Con ingresos que superan a muchas industrias legales, su objetivo principal es obtener beneficios económicos a través de ataques que van desde el robo de información y extorsión hasta la interrupción de servicios esenciales, ejecutados con un alto grado de habilidad técnica. Esto la convierte en una amenaza cada vez más y peligrosa sofisticada para gobiernos, empresas y ciudadanos.

Por otro lado, las organizaciones legales, que están obligadas a implementar diversas estrategias de ciberseguridad para reducir el impacto de posibles incidentes, cumplir con los mínimos en prevención y neutralización de amenazas, además de cumplir con normativas y estándares. Algunas de estas estrategias incluyen: evaluaciones de madurez (maturity assessment), herramientas de prevención, centros de operaciones de seguridad (SOC), herramientas de detección y respuesta en endpoints (EDR), evaluaciones de riesgos (risk assessment), simulacros, prevención de pérdida de datos (data loss prevention), entre otros.

Sin embargo, para considerarse verdaderamente maduras en ciberseguridad, las organizaciones deben ir más allá de lo básico y desarrollar estrategias avanzadas y alineadas con las tácticas del cibercrimen, dado que los adversarios no se limitan a técnicas convencionales. Por ejemplo, aparte de contar con herramientas de prevención, también es necesario conocer que un thread hijacking manipula el registro RIP/EIP del CPU para ejecutar su shellcode, o que las capacidades de Nobelium tienden a operar en memoria y menos en disco. De lo contrario, estaríamos abordando el problema de manera superficial.

El desafío radica en que muchas de estas organizaciones enfrentan limitaciones significativas, ya sea por presupuestos restringidos o por la falta de personal capacitado para enfrentar adversarios sofisticados. La detección de estas técnicas requiere un equipo especializado y proactivo, capaz no solo de identificar ataques avanzados, sino también de ofrecer una visión detallada del estado de la arquitectura de seguridad de la organización, superando el modelo reactivo o convencional de detección.

Por esta razón, el objetivo de este artículo es ayudar a estos equipos a identificar su madurez real en términos de capacidades de detección y neutralización, complejidad técnica y costes asociados. Para lograrlo, se presentan dos estrategias de detección distintas:

[Read more…]