Anti-VM Technique with MSAcpi_ThermalZoneTemperature

Recientemente se ha dado a conocer un método de comprobación Anti-WM muy peculiar, aunque efectivo. La comprobación del parámetro de temperatura del Host. Para esto se utiliza WMI puntualmente la clase Win32_TemperatureProbe, el encabezado del objeto es el siguiente;

[Dynamic, Provider(“CIMWin32”), UUID(“{464FFABB-946F-11d2-AAE2-006008C78BC7}”), AMENDMENT]
class Win32_TemperatureProbe : CIM_TemperatureSensor
{

command: wmic /namespace:\\root\WMI path MSAcpi_ThermalZoneTemperature get CurrentTemperature

En los entornos virtuales este resultado va a diferir advirtiendo la imposibilidad de ejecutar la totalidad del comando.

Para conocer y leer todo el concepto puede acceder desde aquí la PoC y el código en PS lo podrán encontrar aquí

Estos comandos permiten ser ejecutado con técnicas combinadas de Ofuscación en Bas64 . (powershell ofuscados, inyectar las consultas WMI vía dll’s o LNK’s previa aperturas de conhost.exe o cmd.exe).

Existen excelente referencias de como utilizar estos modelos , en el blog de Mike F Robbins se pueden encontrar funciones simples en Base64. Adelantaremos en otras publicaciones ejemplos puntuales.

New Tool: amsiscan.py and how Windows 10 Plans to Stop Script-Based Attacks and How Well It Does It (AMSI)

El script amsiscan.py publicado por Didier Stevens utiliza la función “AmsiScanBuffer” de Microsoft en Windows 10, puntualmente para el scaneo de Malware en este tipo de entornos. El script lee las entradas estándar stdin y revuelve 5 posibles resultados.

AMSI_RESULT_CLEAN
AMSI_RESULT_NOT_DETECTED
AMSI_RESULT_BLOCKED_BY_ADMIN_START
AMSI_RESULT_BLOCKED_BY_ADMIN_END
AMSI_RESULT_DETECTED

This image has an empty alt attribute; its file name is 20190612-234302.png MD5: 47E50599E0CFAF1D27416E68394289A0
SHA256: 044E41D7F31D8333CB5295FD6E430933CA67F9AC37CD400D38189C96AE48544D

Tiene al menos 5 componentes de integración;

[+] Control de cuentas de usuario o UAC (elevación de la instalación de EXE, COM, MSI o ActiveX)

[+] PowerShell (scripts, uso interactivo y evaluación de código dinámico)

[+] Windows Script Host (wscript.exe y cscript.exe)

[+] JavaScript y VBScript

Para saber mas: Antimalware Scan Interface (AMSI)

En el 2016 ya se hablo de AMSI en Blackhat, por lo que compartimos un video sobre cuan efectivo es el trabajo de AMSI y la detección de amenazas.

Para ver el PDF de la Presentación blackhat USA 2016: “AMSI: cómo planea Windows 10 detener los ataques basados en scripts y qué tan bien lo hace”

Threat-actor-profile-TA542-banker-malware-distribution-service

Fuente: www.proofpoint.com

Investigadores de Proofpoint comienzan a dar detalles sobre un actor que llevan tiempo investigando denominado TA542, el dropper que se ocupó originalmente de la distribución fue Emotet, el alcance es amplio: América del Norte, América Central, América del Sur, Europa, Asia y Australia.

Originalmente las versiones iniciales de Emotet terminaban cometiendo fraude del tipo bancario, apuntando solo a bancos alemanes, austriacos y suizos, durante años, el malware fue catalogado de esa forma TYPE: BANKER.  Según la investigación las últimas versiones de Emotet entregan cargas útiles de terceros: Qbot, The Trick, IcedID y Gootkit. Por último, Emotet carga sus módulos para spam, robo de credenciales, recolección de correos electrónicos y difusión en redes locales.

Lo que se sabe de TA542, es que distribuye campañas de correo electrónico de gran volumen a distintas industrias. TA542 es actualmente uno de los actores más prolíficos en todo el panorama de amenazas.

Lee más sobre la evolución de EMOTET y la combinación con TA542 y todos los detalles respecto a cómo se planifican y coordinan sus campañas. https://www.proofpoint.com/us/threat-insight/post/threat-actor-profile-ta542-banker-malware-distribution-service

ta542

Recent MuddyWater-associated BlackWater campaign shows signs of new anti-detection techniques

Fuente: http://blog.talosintelligence.com/

Investigadores de Cisco Talos dan detalles sobre una campaña reciente llamada “BlackWater”, la misma tiene relación con un actor persistente llamado MuddyWater. Las recientes muestras asociadas desde abril 2019 dan a entender que los atacantes han agregado tres acciones a las operaciones habituales de esta familia, esto permite evadir con facilidad los controles de seguridad, esto sugiere que las tácticas, técnicas y procedimientos de MuddyWater han evolucionado para evadir las detecciones en el host y han reemplazado los nombres de variables para evitar las firmas Yara.

Los datos proporcionados en el siguiente enlace, https://blog.talosintelligence.com/2019/05/recent-muddywater-associated-blackwater.html , podrían permitir a los equipos de caza de amenazas, a identificar las actividades para dichas campañas. El código original del malware no ha sido modificado, el éxito de este cambio permite tener acceso a una puerta trasera mediante la ejecución de instrucciones Powershell.

PS_Watter1

Se pueden apreciar cambios significativos en su accionar inicial, desde secuencias de comandos en Visual Basic (VBA) ofuscadas, con esto se logra persistencia en las llaves de registro. Lo siguiente es instruir vía powershell haciendo el llamado a un servidor controlado por el atacante para extraer el componente FruityC2 

WMI_OBJECT

Conclusión

Además de los nuevos pasos contra la detección descritos en este informe, los actores de MuddyWater han realizado pequeñas modificaciones para evitar las firmas comunes basadas en el host y han reemplazado los nombres de variables para evitar las firmas Yara. Estos cambios fueron superficiales, ya que su base de código subyacente y la funcionalidad del implante se mantuvieron prácticamente sin cambios. Sin embargo, aunque estos cambios fueron mínimos, fueron lo suficientemente significativos como para evitar algunos mecanismos de detección. A pesar del informe del mes pasado sobre aspectos de la campaña MuddyWater, el grupo no se desanimó y continúa realizando operaciones. Basándonos en estas observaciones, así como en el historial de MuddyWater de apuntar a entidades con base en Turquía, evaluamos con una confianza moderada que esta campaña está asociada con el grupo de actores de amenazas MuddyWater.

APT37(REAPER) TTP’s

El siguiente articulo pretende evidenciar y detallar las TTP’s llevadas a cabo por el grupo de ciber-espionaje APT37 principal protagonista por utilizar 0-day de Adobe y Microsoft. (CVE-2018-0802. y CVE-2018-4878).

Detalles sobre las campañas dirigidas asociadas al grupo APT37 (Reaper) cuyo país de origen es Corea del Norte. Las actividades de este grupo han iniciado en noviembre en 2013, según los registros proporcionados por FireEye.

Detalles de Vulnerabilidades hasta ahora utilizadas:

CVE-2013-4979 EPS Viewer

CVE-2014-8439 Adobe AIR

CVE-2015-3105 Adobe Flash Player Drawing Fill Shader Memory Corruption

CVE-2015-2419 Internet Explorer JScript9.dll

CVE-2015-5119 Adobe Flash Player ByteArray

CVE-2015-5122 Adobe Flash opaqueBackground

CVE-2015-7645 Adobe Flash ‘IExternalizable.writeExternal’

CVE-2015-2545 Microsoft Office EPS File Exploit Works

CVE-2015-2387 Adobe Type Manager

CVE-2016-1019 Adobe Flash Payer “Internet Explorer/Edge and Flash Player”

CVE-2016-4117 Flash exploit inside a Microsoft Office document

CVE-2017-0199 Microsoft Office Word Malicious Hta Execution

CVE-2018-4878 Adobe Flash Player – No existen detalles técnicos hasta la fecha.

El solo hecho de explotar vulnerabilidades sobre productos de consumo masivo por nombrar algunas como ser word, excel, java o flash, sumado a la combinación de ingeniería social y ataques dirigidos, da como resultado un buen numero de infecciones positivas.

Por otro lado, es un buen ejercicio estudiar y dar seguimiento a las actividades de estos grupos, incluso es viable reconocer el tipo de familias de malware que utilizan y hacer un estudio de las amenazas que emplean, incluso es aceptable generar indicadores internos que nos permitan interpretar; patrones de trafico, tipo de comunicación con sus  C&C, tipos de files creados, modificados y vectores de ataque empleados.

Actualmente tanto para generar infecciones o para exfiltrar datos existen un sin fin de técnicas, mas o menos complejas, desde: utilizar servicios alojados en la nube o hosting con poco “control” sobre sus plataformas, sitios de confianza con mucha indexación por parte de Google. Eso complicaría bastante el monitoreo, debajo algunos ejemplos….

Cuadro-CVE
Imagen de FireEye – Detalles CVE – Cronograma

Objetivos:  Corea del Sur, Japón, Vietnam y Medio Oriente, apuntando a distintas industrias: Productos Químicos, Electrónica, Industria Aeroespacial, Salud, Automovilismo, Sector Financiero y Proveedores de Internet.

Tácticas de Infección:  Ingeniería Social adaptadas específicamente a los objetivos deseados, han comprometido páginas web estratégicas, por otro lado la distribución del malware es vía Torrent o clientes P2P alternativos y poco habituales.

Vulnerabilidades Explotadas:  Vulnerabilidades del tipo 0day (CVE-2018-0802/CVE-2018-4878) asociada con Adobe y Microsoft.

En los los años 2015/2016 entre mayo y julio es en donde mas se han explotado las fallas del tipo día 0. El exploit mas notable y reciente se dio a conocer por parte de FireEye el 2 de Febrero de 2018.

Infraestructura de comando & control:  Servidores con buena reputación comprometidos, plataformas de mensajería y proveedores de servicios cloud (Amazon, GoogleDrive, GoDaddy). Una charla muy recomendada a leer “Dynamic Callbacks for Persistence” de xtr4nge. (al final el video)

Malware:  Diversas muestras tanto para intrusión y exfiltración. Se han encontrado evidencias de malware destructivo inclusive. Dependiendo la estrategia de cada actor, o el ambiente en donde se ataque utilizaran las variantes que mas convenga. 

Malware-Use
Detalles de malware y linea de tiempo

CORALDEKC, DOGCALL, GELCAPSULE, HAPPYWORK, KARAE, MILKDROP, POORAIM, RICECURRY, RUHAPPY, SHUTTERSPEED, SLOWDRIFT, SOUNDWAVE, ZUMKONG, WINERACK.

Dado que la documentación corresponde a Fireeye y aún no esta finalizada, continuaremos en otro post con mas detalles, haciendo hincapié en el malware utilizado.

Tendremos la oportunidad de conocer sus conclusiones y daremos mas detalles de las descripciones de las amenazas arriba mencionadas.

Fuentes:
https://www2.fireeye.com/rs/848-DID-242/images/rpt_APT37.pdf
https://www.fireeye.com/blog/threat-research/2018/02/apt37-overlooked-north-korean-actor.html

https://www.fireeye.com/blog/threat-research/2018/02/attacks-leveraging-adobe-zero-day.html

https://www.researchgate.net/publication/239829710_Searching_for_Malware_in_BitTorrent

https://arxiv.org/ftp/arxiv/papers/1409/1409.8490.pdf 

AntiVirus, Heurística y algo más!

Desde un punto de vista meramente personal creo que continuaremos siempre existirá debate sobre los mismos pilares a la hora de hablar de malware o software malicioso; técnicas, metodologías y procedimientos, qué utiliza un software determinado para una plataforma o fin especifico. 

Un malware ingresa en ese tipo de categorías de software malicioso, adapta su comportamiento dependiendo el sistema en donde deba correr, demuestra su accionar e intenciones para su beneficio y lograr los cometidos programados. Estos mecanismos van desde, patrones de ejecuciones en ciertos horarios o idioma, elimina a la “competencia”, detecta software de análisis y no ejecuta sus actividades, también cifran unidades locales y/o USB para ejecutar su código, desde algún punto de la memoria, y vuelve al estado anterior borrando huellas. Y podríamos enumerar mas ejemplos, es lo “bonito” de este debate.

El punto a destacar es la evolución que se observa sobre estas practicas y el “aprendizaje” que tenemos, tanto en sistemas de protección como ser:  Software Anti Virus, Firewall, AntiPhishing, WAF, SIEM, Filtrado de Contenido/Web, Sistema de Detecciones de Amenazas Avanzadas.

Incluso en las técnicas que el analista debe llevar a cabo para poder estudiar las nuevas muestras, debe lidiar con trafico encriptado, comunicaciones con distintos dominios legítimos aun no denunciados, ejecuciones de sentencias y script’s que llaman a las APIS originales o bien software nativo del sistema. (cmd, powershell, vbs, dll, etc).

En el sitio https://www.exploit-db.com/https://cve.mitre.org/ podrán encontrar fuentes originales para su mejor lectura y compresión. Actualmente EXPLOIT DB aloja 38.500 exploits y CVE ORG 95.200

En las escritas siguientes pretenderán dar a conocer una visión general sobre el desarrollo de aplicaciones antivirus, heurística y motores de detección que pretenden proteger nuestro sistema, y poner las cosas mas complejas al código malicioso -aunque algunas de las técnicas que utilizan entre casas antivirus sean idénticas entre sí, y acarre errores durante el proceso de erradicar amenazas,  también comentaremos el tipo de estrategia que lleva a cabo el software malicioso para persistir y ocultarse dentro del sistema operacional infectado.

Hoy tomaremos como guía para este post, un análisis hecho por un estimado amigo, forma parte del staff de administradores del sitio www.indetectables.net , tiene gran conocimiento en el área. En conjunto acordamos utilizar su investigación para una de mis entradas, le he sumado contenido para tener contexto en base a sus detalles técnicos y comprendamos, espero sea del agrado de todos.

Interrogantes y especulaciones a tratar:

A) ¿ Los antivirus dan prestaciones de seguridad reales ante las amenazas existentes ? (persistencia en UEFI, BIOS, Certificados legítimos y firmados, ejecuciones anómalas relacionadas a procesos y funciones originales del sistema empleado.

B) ¿ Que mejoras efectivas han desarrollado las casas antivirus para prevenir y evitar ? (documentación de fuentes técnicas, reales y confiables sobre sus desarrollos, roadmap futuro disponible para la comunidad de clientes, white pappers sobre sus motores y bases de heurística, actividades de análisis, etc…).

C) ¿Que lleva a determinar si un programa es legítimo o contiene código malicioso ? (¿comparten sus bases de heurística entre sí?, ¿Las metodologías de revisión de código son las correctas? ¿A qué tipo de pruebas son sometidos los AV?, ¿Si reporta uno, reportamos todos?)

Métodos que emplean:

Firmas o “cadena de búsqueda” Como su nombre indica, consiste en identificar un offset que tenga registrado en una base de datos de detecciones. Las firmas funcionan de forma similar a las del PEiD admitiendo comodines y varios operadores.

Según la documentación del ClamAV, que al ser un antivirus de código fuente abierto es el único que da algo de información al respecto, las firmas también pueden ser hashes MD5 del ejecutable o de una sección específica dentro de él.

offset-firmas                               Las firmas comúnmente son cadenas dentro del archivo.

Decisión Heurística y evaluaciones retrospectivas:

Definición del acto de “encontrar o descubrir” en el caso aplicado a los antivirus, contienen una base de reglas y compara el contenido del binario para determinar si lo que está analizando es un potencial código malicioso. El motor consulta a esa base con los patrones de malware predefinidos y asigna un porcentaje cuando existe un parecido con otra muestra.

Las determinaciones las ejecuta en base a 3 lógicas: Firmas genéricas, Desensamblado y Desempaquetamiento. (wikipedia)

Para comprobar la efectividad de la heurística y su método pro-activo de detección, el motor de actualizaciones se detiene por un lapso de tiempo (de 1 a 3 meses), logran acumular distintas muestras sin registrar, nuevos elementos aparecerán y de esa forma al ser analizados se pueden comprobar si es efectivo el diagnostico. Al no existir registros previos de ese elemento solo cuenta con su heurística para determinar si es malicioso o no.

Debajo les compartiré artículos verdaderamente interesantes sobre heurística aplicada al software antivirus.

Un analista humano de malware también desarrolla las mismas actividades a la hora de examinar un elemento, ejecuta y toma acción en base a los comportamientos encontrados de las actividades sospechosas dentro de un archivo (en el caso que actué, o bien estimula su ejecución, llevándolo al entorno para el cual fue desarrollado). Este patrón es programable y se puede aplicar, del siguiente modo;

1) Firmas genéticas. Cuando se desarrolla malware hay casos en los que se reutiliza código de otras versiones para hacer software nuevo. Eso hace que existan semejanzas entre ambos haciendo posible crear una firma genérica que los detecte.  Las detecciones por este método se suelen mostrar como “una variante de” en los resultados de los antivirus.

2) Análisis estático (o pasivo). Se analiza el archivo sin ejecutarlo buscando señales que indiquen si es malicioso. En este caso se usan varias estrategias que van desde desensamblar para ver que hace en su inicio, revisar la tabla de importaciones buscando el uso de apis sospechosas y analizar si el archivo está comprimido por algún packer para intentar descomprimirlo y analizarlo.

3) Análisis activo (pro activa). Este sería el método más moderno y el más interesante. En su arsenal usa hooks a las principales apis usadas para el malware, también técnicas de emulación y sandbox. Con esas herramientas logra saber si un archivo es malicioso mientras el mismo está siendo ejecutado.

runPE

Técnicas conocidas para evitar estos métodos

Existen técnicas para saltar estos métodos de detección y conseguir ser “indetectable”, algunas son muy conocidas en el ambiente. A modo de introducción vamos a enumerar algunas de estas;

Anteriormente solo bastaba abrir un editor hexadecimal e ir modificando bytes del contenido, en el pasado todo ese archivo .exe era un md5 completo, y al cambiar esos valores también modificaban el dicho hash, bastante simple por aquel entonces. (Muy resumidamente).

Como veremos más adelante, el utilizar apis de windows también “complica la lectura de los motores AV, incluso también podríamos ser detectados fácilmente usándolas, depende que estrategia que se quiera seguir para el desarrollo. (Ejemplo: URLDownloadToFileA utilizada por Droppers).

La teoría indica que deberíamos de llamar a otras funciones para “ofuscar o camuflar” las llamadas que ejecuta la dll, binario, macro, etc, ese tipo de peticiones en lo posible debieran estar cifradas, utilizando algoritmos como ser: Caesar o XOR, si se lee la documentación acorde, explica que las funciones alternativas a utilizar serian: LoadLibrary() y GetProcAddress().

El proceso continúa su ejecución cargándose en memoria y las instrucciones que tiene originalmente la función URLDownloaderToFile, pero sin quedar escritas en “texto plano” dentro del binario. El equipo de FluProject explica la teoría/practica simple en documentación de su proyecto. (data 2013).

Una herramienta bastante útil para buscar estos patrones sobre la memoria ram, es volatility (memory forencis framework – http://www.volatilityfoundation.org/ ), por lo que es viable que en algún string del análisis se vea expresada la intención de conexión o bien algún proceso previo de índole sospechosa. Por ejemplo: Procesos con nombres parecidos a los del sistema  operativo “rundll123.exe” arrancando desde el directorio del usuario. (%LocalAppData%\Temp %WinDir%\TEMP\)

FirmasLa forma más rápida es ir encontrando las firmas rompiendo el ejecutable y analizando si es detectado, para ello se usa herramientas como el AVFucker o el DSplit para ir arrinconando las firmas. Luego se termina usando las técnicas de RIT y XOR para que la firma quede rota sin que el ejecutable deje de ser funcional. Esta metodología de trabajo tiene casi una década.

offset-tool

Heurística y documentación:

Por la naturaleza de las estrategias usadas en la heurística, lo más práctico para saltarlas es tener en cuenta que busca cada una a la hora de la concepción del malware cuando se lo está programando.

La documentación de la CIA liberada por WikiLeaks habla al respecto. Entre los documentos filtrados hay uno muy interesante llamado “Development Tradecraft DOs and DON’Ts”, de los que voy a copiar algunos puntos interesantes:

  • DO NOT decrypt or de-obfuscate all string data or configuration data immediately upon execution.
  • DO strip all debug symbol information, manifests(MSVC artifact), build paths, developer usernames from the final build of a binary.
  • DO NOT explicitly import/call functions that is not consistent with a tool’s overt functionality (i.e. WriteProcessMemory, VirtualAlloc, CreateRemoteThread, etc – for binary that is supposed to be a notepad replacement).
  • DO make all reasonable efforts to minimize binary file size for all binaries that will be uploaded to a remote target (without the use of packers or compression). Ideal binary file sizes should be under 150KB for a fully featured tool.
  • DO NOT write plain-text collection data to disk.
  • DO NOT assume a “free” PSP product is the same as a “retail” copy. Test on all SKUs where possible.
  • DO test PSPs with live (or recently live) internet connection where possible.
  • NOTE: This can be a risk vs gain balance that requires careful consideration and should not be haphazardly done with in-development software. It is well known that PSP/AV products with a live internet connection can and do upload samples software based varying criteria.

También hay varias listas de comportamientos que son detectados:

  • Decryption loop detected
  • Reads the cryptographic machine GUID
  • Contacts random domain names
  • Reads the windows installation date
  • Drops executable files
  • Found potential IP address in binary memory
  • Modifies proxy settings
  • Installs hooks/patches the running process
  • Injects into explorer
  • Injects into remote process
  • Queries process information
  • Sets the process error mode to suppress error box
  • Unusual entropy
  • Possibly checks for the presence of antivirus engine
  • Monitors specific registry key for changes
  • Contains ability to elevate privileges
  • Modifies software policy settings
  • Reads the system/video BIOS version
  • Endpoint in PE header is within an uncommon section
  • Creates guarded memory regions
  • Spawns a lot of processes
  • Tries to sleep for a long time
  • Unusual sections
  • Contains ability to start/interact device drivers

    Fiabilidad más allá de lo técnico

    Una vez que se entiende cómo funcionan los medios usados para la detección y qué técnicas se emplean para saltarlos surge una pregunta interesante. ¿Es realmente fiable cómo hacen las firmas? ¿Constituye realmente un antivirus una solución completa de seguridad?

    macAfee

Creación de firmas:

Viendo la imagen anterior, es interesante observar como antivirus diferentes cometieron el mismo error. Esto nos hace suponer que podría existir el caso en que una nueva firma sea copiada entre motores lo que significaría que también pueden copiar los errores.

En febrero de 2010, para probar si esto realmente estaba sucediendo, Kaspersky creó veinte ficheros inocentes y marcaron diez de ellos como detecciones en sus motores. Luego de estos hubo 20 muestras a VirusTotal y esperaron.

En ese momento se activó el mecanismo que tiene VirusTotal donde las muestras detectadas fueron enviadas a todos los motores de la página para su análisis.

Al poco tiempo, varios motores detectaban también las muestras y confirmó dos cosas; que se sospechaban desde hace tiempo; que realmente existía la copia de firmas y que se estaba creando una tendencia de aumentar los falsos positivos por el mal uso de VirusTotal.

Los antivirus como vector de ataque:

No hay ninguna duda que realmente el peor escenario sería usar una solución de seguridad para lograr encontrar un vector de ataque. Para encontrar la forma más rápida basta con mirar los CVE al respecto.

searchresultav

Viendo los resultados se puede observar que fallas como denegación de servicio, elevación de privilegios y de ejecución de código remoto son posibles haciendo que la probabilidad de ataques, más allá de un malware, como vector en si es posible.

Conclusión

Los antivirus por si solos no deben ser tomados como una única medida de seguridad, inclusive muchas veces su elección pasa netamente por un tema monetario dejando lo técnico y la seguridad en un segundo plano.

Dada la constante búsqueda de nuevos métodos para evitarlos e inclusive para explotarlos es recomendado en ambientes corporativos complementar la seguridad con diferentes capas, ya sean, por ejemplo, filtrados de red y e-mails más agresivos y políticas elaboradas de Active Directory. Esto da lugar a que puedan existir inclusive ciertas medidas de contingencia en caso de que se logre una infección por parte de malware.

Hasta la próxima !

Referencias:

Que es la Heurística ? (2010)

Análisis proactivo de Amenazas (2013)

Analisis heuristico detectando malware desconocido

Antivirus detección proactiva de Malware (2014)

Técnicas de evasión Parte 1 (2013)

Técnicas de evasión Flu Project (2013)

Sistema de ofuscacion de malware para el evasion e NIDS (2013 España)

Detecciones Heuristicas Kaspersky Lab

WikiLeaks (2017). Vault 7: CIA Hacking Tools Revealed.

Security by default (03/02/2010). Kaspersky monta revuelo en la industria del malware

Security and the Net (10/11/2008). AVG virus scanner removes critical Windows file

Open security (18/02/2009). Bitdefender y GData identifican por error un componente de Windows.

Qore (30/07/2014). REPORTE: los antivirus tienen severas fallas de seguridad.

Ensilo (07/12/2015). You’re so predictable: the AV vulnerability that bypasses mitigations.

The conversation (29/06/2016). As more vulnerabilities are discovered. Is it time to uninstall antivirus software?

Ataques Dirigidos – APT’s – Códigos Maliciosos III (Tool NeoKanji)

En nuestras primeras entradas hemos hecho un repaso de historia y el significado de las APT’s. Como articulo final me pareció acorde dar un cierre con una herramienta, la misma pretende utilizar de forma inteligente los datos que son proporcionados producto de la recolección de distintos tipos de muestras.

El objetivo de este ejercicio es poder cruzar y relacionar los datos proporcionados por el malware. De esa forma podremos tener lectura sobre como se están utilizando, y que parecido pueden llegar a tener.

En concreto, reconocer acciones determinadas o patrones, sus, dll’s fecha de compilación, nombre de la muestra, y Relacionarlas. (usaremos bastante este termino.)

Antes de iniciar con los detalles de usabilidad de la herramienta, es acorde dar una breve explicación de lo que necesitaremos para llevar a cabo nuestro análisis.

Que es NeoKanji?

Esta Tool utiliza distintos complementos para ayudarnos a la visualizacion y correlacionar datos , en este caso amenazas y campañas de distintos APT’s y examples.

Nos ayudaría a poder cruzar sus propiedades y graficarlas (md5,sha256, macros, strings, name malware, file_type, etc). Los datos deben estar escritos en Cypher y formato JSON para luego ser cargados en la herramienta.

Que necesitamos para utilizar NeoKanji?

Docker. https://docs.docker.com/engine/installation/

NEO4J.  https://neo4j.com/docs/operations-manual/current/installation/linux/debian/

Python (y bibliotecas pyneo2)

Referencias

https://www.ekoparty.org/charla.php?id=759 Presentación de la herramienta EKOparty // Luciano Martins y Ruth Esmeralda Barbacil

https://www.welivesecurity.com/la-es/2017/09/28/rastrear-grupos-de-apt/

https://github.com/codexgigassys/neokanji (Instrucciones de Instalación y configuración.)

Que es Neoj4?

Es una base que relaciona datos en formato gráficos, a su vez entre nodos, sus propiedades y los relaciona entre ellos. (node labels,relationship types,property keys).

Escriba en Java y se integra con varios lenguajes; Python, Ruby, .Net, PHP, se monta en un servidor Jetty. Podrás modelar datos y presentarlo en distintas vistas. (Graph, Rows, Text, Code).

https://www.adictosaltrabajo.com/tutoriales/neo4j-first-steps/ (Instructivo en español)

https://neo4j.com/ (Sitio Oficial)

https://neo4j.com/ developer/cypher-query-language/ (Optimizan el consultas)

https://github.com/neo4j/neo4j

Antes de iniciar con algunos ejemplos prácticos del uso es recomendable que lean previamente alguna guía para comprender como se programan las estructuras de los nodos y gráficos (lenguaje cypher). Entendiendo la estructura y usando “CREATE” podrán escribir un breve ejemplo para posteriormente utilizar “MATCH” y traer los datos de interés.

Dentro del entorno de navegación también vamos a notar que nos permite utilizar los comandos muy parecidos a SQL, o bien ir seleccionando dependiendo el interés que tengamos en relacionar los valores.

Por otra parte recuerden leer la documentación que les corresponda al sistema operativo que estén utilizando. Por nuestro lado vamos a presentar los ejemplos con Kali Linux.

Para levantar nuestro NEO4j vamos a tipear en la terminal el siguiente comando:

docker run \
    --publish = 7474: 7474 --publish = 7687: 7687 \
    --volume = $ HOME / neo4j / data: / data \
    --volume = $ HOME / neo4j / logs: / logs \
    neo4j: 3.0

1

Si todo nos va bien, la consola nos confirma la conexión remota vía http://0.0.0.0:7474/ 

2

El primer inicio de sesión se hace con las credenciales por default que proporciona la herramienta, posteriormente se validaran con la password que han modificado. En caso de tener inconvenientes para acceder luego del primer inicio, favor de recurrir a la documentación siguiente: http://zacharywolffs.ghost.io/2015/04/08/changing-password-in-neo4j-v2-20/ (existen 2 o 3 variantes para restablecer la contraseña)

Es importante mencionar que antes de interactuar con NeoKanji, deben modificar el archivo config.py de lo contrario no podrán generar el input con los JSON de interés.

Afortunadamente para los ansiosos –como en mi caso- que quieren ver resultados rápidamente, tenemos algunos JSON de muestra que nos proporcionan a modo de test.

Estos archivos JSON hacen referencia a 2 tipos de campañas APT (28y29) Gracias a Ruth @33root por responder rápidamente a nuestro pedido sobre este punto.

Deben utilizar el siguiente comando para la subida :

python neokanji.py -i < carpeta de entrada >

Obtendrán la siguiente respuesta:

3

Y ahora? Vamos a mostrar algunos ejemplos que hemos ejecutado solo a modo de tener una lectura bastante simple sobre el uso de NeoKanji.

En el siguiente menú podrán ir volcando sus gráficos, tipeando el “MACH” y “RETURN” o bien pinchando en cada tipo de dato que uno quiera traer:

4

Podran notar que se dividen los valores que hemos explicado anteriormente:

Node / Relationship Types / Property Keys 

En mi caso seleccioné: Malware File_Type y hash_name ;

MATCH p=()-[r:has_name]->() RETURN p LIMIT 25

5

Es importante mencionar que los gráficos van tomando forma a medida que vayamos desplegando sus propiedades, recuerden que la idea es relacionar “datos con sus datos”. Entonces…

6

Si expandimos valores, de un nodo podremos ver sus propiedades, como ser; fecha compilación, file_name, file_type, signature…etc

7

Esto tendrá sentido dependiendo el tipo de interés que tengamos sobre la búsqueda. Notaran que a medida que van relacionando y viendo como se comporta el gráfico podrán obtener una mejor experiencia. Aquí solo estamos viendo imágenes, es conveniente que tengan su propia visión.

8

9

Acá vemos como las distintas muestras, cuales tienen relación una con otra, por los valores que hemos comentado anteriormente. Se puede volver complejo e interesante a la vez.

10

Seguiremos atentos la evolución de NeoKanji y veremos con que nos vuelven a sorprender. Solo agradecer a sus creadores@clucianomartins y @33root

Hasta la próxima!