AvanzadoYARAinfostealersRedLineLummaDetection Engineering

YARA para Infostealers: Patrones de Exfiltración, C2 y Credential Theft

Reglas YARA para detectar las familias de infostealers más activas: RedLine, Lumma, Vidar, Raccoon, Rhadamanthys. Patrones de exfiltración, strings de C2, browser credential theft, y crypto wallet targeting.

MalwareIntel Research··17 min lectura
Serie: Detection Engineering — Parte 6

Los infostealers dominan el panorama de amenazas

Si tuvieras que elegir una sola categoria de malware para escribir reglas de deteccion en 2026, la respuesta seria infostealers. No por sofisticacion tecnica (la mayoria son sorprendentemente simples), sino por volumen e impacto. Segun datos de ANY.RUN, Group-IB y Recorded Future, los infostealers representan mas del 60% de las muestras de malware distribuidas activamente entre 2024 y 2026.

El motivo es economico. Un infostealer roba credenciales de navegadores, cookies de sesion, tokens de autenticacion y wallets de criptomonedas en segundos. Esas credenciales se empaquetan en "logs" que se venden en mercados como Russian Market, Genesis y 2easy. Los compradores son Initial Access Brokers (IABs) que revenden el acceso a grupos de ransomware. Un log de RedLine con credenciales VPN corporativas puede venderse por 10 a 500 dolares. Si ese acceso permite desplegar LockBit en una empresa, el rescate puede ser de millones.

Detectar infostealers con YARA no es solo una cuestion de identificar malware: es cortar la cadena de suministro del cibercrimen moderno.

El ecosistema infostealer: familias activas

Antes de escribir reglas, necesitas conocer el terreno. Estas son las familias mas relevantes a fecha de 2026:

FamiliaLenguajeModeloPrecio aprox.EstadoTecnicas clave
RedLineC# (.NET)MaaS150-200 USD/mesActivo (con disrupciones)Browser DBs, FTP clients, VPN configs, crypto wallets
Lumma (LummaC2)C/C++MaaS250-1000 USD/mesMuy activoObfuscacion avanzada, anti-sandbox, browser injection
VidarC++MaaS250 USD/mesActivoDead drop resolvers (Steam, Telegram), modular config
Raccoon (v2)C/C++MaaS200 USD/mesActivoLightweight, rapido, DLL sideloading
RhadamanthysC++MaaS250 USD/mesMuy activoAI-powered OCR, image recognition para seed phrases
AuroraGoMaaS250 USD/mesDecliveCross-platform, crypto focus
MarsC++ (fork Oski)MaaSGratis (leaked)DecliveFork de Oski, codigo fuente publico

Todos siguen el modelo Malware-as-a-Service (MaaS): un desarrollador mantiene el stealer, los afiliados pagan una suscripcion mensual y reciben un panel de administracion con builder para generar payloads personalizados.

Patrones compartidos: lo que todos los infostealers hacen igual

A pesar de estar escritos en lenguajes diferentes y por equipos distintos, los infostealers convergen en las mismas tecnicas. Esta convergencia es lo que hace posible escribir reglas YARA genericas que detecten familias nuevas.

Browser credential paths

Todos los infostealers buscan las mismas bases de datos SQLite:

# Chrome/Chromium
%LOCALAPPDATA%\Google\Chrome\User Data\Default\Login Data
%LOCALAPPDATA%\Google\Chrome\User Data\Default\Cookies
%LOCALAPPDATA%\Google\Chrome\User Data\Default\Web Data
%LOCALAPPDATA%\Google\Chrome\User Data\Local State

# Firefox
%APPDATA%\Mozilla\Firefox\Profiles\*.default-release\logins.json
%APPDATA%\Mozilla\Firefox\Profiles\*.default-release\cookies.sqlite
%APPDATA%\Mozilla\Firefox\Profiles\*.default-release\key4.db

# Edge
%LOCALAPPDATA%\Microsoft\Edge\User Data\Default\Login Data

# Opera / Brave / Vivaldi (misma estructura Chromium)

Crypto wallet paths y extension IDs

Los wallets de criptomonedas son el segundo objetivo principal:

# Desktop wallets
%APPDATA%\Exodus\exodus.wallet
%APPDATA%\Electrum\wallets
%APPDATA%\Atomic\Local Storage\leveldb
%APPDATA%\Guarda\Local Storage\leveldb
%APPDATA%\Coinomi\Coinomi\wallets

# Browser extension IDs (Chrome)
nkbihfbeogaeaoehlefnkodbefgpgknn   → MetaMask
bfnaelmomeimhlpmgjnjophhpkkoljpa   → Phantom
hnfanknocfeofbddgcijnmhnfnkdnaad   → Coinbase Wallet
ibnejdfjmmkpcnlpebklmnkoeoihofec   → TronLink
fhbohimaelbohpjbbldcngcnapndodjp   → BNB Chain Wallet

Metodos de exfiltracion

La mayoria usa HTTP POST con User-Agent custom o con estructura de datos predecible. El payload tipico incluye: informacion del sistema (hostname, OS version, RAM, GPU), credenciales extraidas en formato texto o ZIP, screenshots del escritorio, y la lista de software instalado.

Regla 1: RedLine Stealer

RedLine es el infostealer mas documentado. Al estar escrito en C# (.NET), sus strings son facilmente identificables incluso en muestras parcialmente ofuscadas.

rule Infostealer_RedLine_Stealer
{
    meta:
        author      = "MalwareIntel Research"
        description = "Detecta RedLine Stealer por strings .NET, config C2 y patrones de recoleccion"
        family      = "RedLine"
        mitre       = "T1555.003, T1539, T1005, T1082"
        reference   = "https://malpedia.caad.fkie.fraunhofer.de/details/win.redline_stealer"
        date        = "2026-06-05"
        severity    = "critical"

    strings:
        // Namespace y clases .NET caracteristicas
        $ns1 = "RedLine.Client" ascii wide
        $ns2 = "RedLine.Models" ascii wide
        $ns3 = "RedLine.Logic.Credential" ascii wide

        // Strings de recoleccion de sistema
        $sys1 = "SystemHardware" ascii wide
        $sys2 = "InstalledBrowsers" ascii wide
        $sys3 = "InstalledSoftware" ascii wide
        $sys4 = "AvailableLanguages" ascii wide
        $sys5 = "ScannedWallets" ascii wide

        // Patrones de config C2
        $c2_1 = "Authorization" ascii wide
        $c2_2 = "SecoindLine" ascii wide   // typo intencional del developer
        $c2_3 = "TaskResolver" ascii wide

        // Acceso a credenciales de navegador
        $cred1 = "Login Data" ascii wide
        $cred2 = "\\Google\\Chrome\\User Data\\" ascii wide
        $cred3 = "logins.json" ascii wide
        $cred4 = "Web Data" ascii wide

        // Crypto wallet targeting
        $wallet1 = "exodus.wallet" ascii wide nocase
        $wallet2 = "Electrum\\wallets" ascii wide nocase
        $wallet3 = "Ethereum\\keystore" ascii wide nocase

    condition:
        uint16(0) == 0x5A4D and filesize < 5MB and
        (
            (2 of ($ns*)) or
            (3 of ($sys*) and 2 of ($cred*)) or
            ($c2_2 and 2 of ($sys*)) or
            (2 of ($ns*) and 1 of ($wallet*))
        )
}

Puntos clave de esta regla:

  • El string "SecoindLine" es un typo del desarrollador original de RedLine que se ha mantenido en todas las versiones. Es un indicador de alta confianza.
  • Los namespaces .NET (RedLine.Client, RedLine.Models) aparecen incluso en muestras con ofuscacion basica, porque muchos ofuscadores .NET no renombran namespaces de nivel superior.
  • La condicion combina multiples familias de strings con OR logico: basta con que coincidan los namespaces, O una combinacion de strings de sistema con credenciales, O el typo caracteristico.

Regla 2: Lumma Stealer (LummaC2)

Lumma es mas sofisticado que RedLine. Escrito en C/C++, usa ofuscacion de strings, anti-sandbox activo y tecnicas de evasion contra analisis dinamico. La deteccion requiere patrones mas sutiles.

rule Infostealer_Lumma_Stealer
{
    meta:
        author      = "MalwareIntel Research"
        description = "Detecta Lumma/LummaC2 Stealer por API patterns, strings ofuscadas y config"
        family      = "Lumma"
        mitre       = "T1555.003, T1539, T1497.001, T1027"
        reference   = "https://malpedia.caad.fkie.fraunhofer.de/details/win.lumma"
        date        = "2026-06-05"
        severity    = "critical"

    strings:
        // Strings de identificacion (parcialmente ofuscadas en variantes)
        $id1 = "LummaC" ascii wide
        $id2 = "lumma" ascii wide nocase
        $id3 = "/c2sock" ascii wide
        $id4 = "/c2conf" ascii wide

        // API calls para anti-analysis
        $anti1 = "NtQueryInformationProcess" ascii
        $anti2 = "IsDebuggerPresent" ascii
        $anti3 = "CheckRemoteDebuggerPresent" ascii
        $anti4 = "GetTickCount64" ascii
        $anti5 = "QueryPerformanceCounter" ascii

        // Patrones de acceso a browser (Chromium internals)
        $chrome1 = "encrypted_key" ascii wide
        $chrome2 = "os_crypt" ascii wide
        $chrome3 = "Local State" ascii wide
        $chrome4 = "DPAPI" ascii wide

        // Strings de exfiltracion
        $exfil1 = "Content-Disposition: form-data" ascii
        $exfil2 = "multipart/form-data" ascii
        $exfil3 = "screenshot.png" ascii wide
        $exfil4 = "passwords.txt" ascii wide

        // Config pattern (URL paths del panel)
        $panel1 = "/api/collect" ascii wide
        $panel2 = "/api/gate" ascii wide

        // Hex patterns: secuencia XOR comun en Lumma para deofuscacion
        $xor_loop = { 8A ?? 30 ?? 4? FF C? 3B ?? 7? }

    condition:
        uint16(0) == 0x5A4D and filesize < 3MB and
        (
            (1 of ($id*) and 2 of ($anti*) and 2 of ($chrome*)) or
            (3 of ($anti*) and 2 of ($chrome*) and 1 of ($exfil*)) or
            (1 of ($panel*) and 2 of ($chrome*) and $xor_loop) or
            (1 of ($id*) and 1 of ($exfil*) and $xor_loop)
        )
}

Por que funciona esta regla:

  • Lumma usa consistentemente las APIs NtQueryInformationProcess e IsDebuggerPresent para detectar sandboxes. Combinadas con acceso a bases de datos de Chrome, son un indicador fuerte.
  • El patron hexadecimal $xor_loop captura el bucle XOR que Lumma usa para deofuscar strings en runtime. Es un patron de bytes que se mantiene estable entre versiones.
  • Los paths /api/collect y /api/gate son endpoints del panel C2 de Lumma que aparecen embebidos en el binario.

Regla 3: Robo generico de credenciales de navegador

Esta regla no apunta a una familia especifica. Detecta cualquier ejecutable que contenga multiples paths de bases de datos de navegadores. Es la regla con mayor cobertura del conjunto.

rule Infostealer_Generic_Browser_Credential_Theft
{
    meta:
        author      = "MalwareIntel Research"
        description = "Detecta acceso a bases de datos de credenciales de multiples navegadores"
        mitre       = "T1555.003, T1539"
        date        = "2026-06-05"
        severity    = "high"

    strings:
        // Chrome / Chromium
        $chrome_login    = "Login Data" ascii wide
        $chrome_cookies  = "\\Cookies" ascii wide
        $chrome_webdata  = "Web Data" ascii wide
        $chrome_state    = "Local State" ascii wide
        $chrome_path     = "\\Google\\Chrome\\User Data" ascii wide

        // Firefox
        $ff_logins  = "logins.json" ascii wide
        $ff_cookies = "cookies.sqlite" ascii wide
        $ff_key     = "key4.db" ascii wide
        $ff_path    = "\\Mozilla\\Firefox\\Profiles" ascii wide

        // Edge
        $edge_path  = "\\Microsoft\\Edge\\User Data" ascii wide

        // Opera
        $opera_path = "\\Opera Software\\Opera Stable" ascii wide

        // Brave
        $brave_path = "\\BraveSoftware\\Brave-Browser\\User Data" ascii wide

        // SQLite markers (para confirmar que parsea las DBs)
        $sqlite1 = "SQLite format 3" ascii
        $sqlite2 = "sqlite3_open" ascii
        $sqlite3 = "sqlite3_prepare" ascii

        // Crypto descifrado DPAPI
        $dpapi1 = "CryptUnprotectData" ascii
        $dpapi2 = "BCryptDecrypt" ascii

    condition:
        uint16(0) == 0x5A4D and filesize < 10MB and
        (
            // Al menos 3 navegadores distintos
            (
                (1 of ($chrome*)) and
                (1 of ($ff*)) and
                (1 of ($edge_path, $opera_path, $brave_path))
            ) and
            // Y evidencia de que realmente parsea SQLite o descifra
            (1 of ($sqlite*) or 1 of ($dpapi*))
        )
}

Nota sobre falsos positivos: un gestor de contrasenas legitimo (como el migrador de Chrome) podria coincidir. La combinacion de 3+ navegadores distintos con funciones SQLite o DPAPI reduce enormemente los FP. Si necesitas mayor precision, anade la condicion not pe.signatures[0].issuer contains "Google" usando el modulo PE.

Regla 4: Targeting de wallets crypto

Los infostealers dedican codigo especifico a localizar y exfiltrar wallets de criptomonedas. Esta regla detecta la presencia de multiples extension IDs de wallets en un binario.

rule Infostealer_Crypto_Wallet_Targeting
{
    meta:
        author      = "MalwareIntel Research"
        description = "Detecta binarios que targetean multiples wallets de criptomonedas"
        mitre       = "T1005, T1552.001"
        date        = "2026-06-05"
        severity    = "high"

    strings:
        // Chrome extension IDs de wallets populares
        $ext_metamask    = "nkbihfbeogaeaoehlefnkodbefgpgknn" ascii wide nocase
        $ext_phantom     = "bfnaelmomeimhlpmgjnjophhpkkoljpa" ascii wide nocase
        $ext_coinbase    = "hnfanknocfeofbddgcijnmhnfnkdnaad" ascii wide nocase
        $ext_tronlink    = "ibnejdfjmmkpcnlpebklmnkoeoihofec" ascii wide nocase
        $ext_bnb         = "fhbohimaelbohpjbbldcngcnapndodjp" ascii wide nocase
        $ext_ronin       = "fnjhmkhhmkbjkkabndcnnogagogbneec" ascii wide nocase
        $ext_keplr       = "dmkamcknogkgcdfhhbddcghachkejeap" ascii wide nocase
        $ext_solflare    = "bhhhlbepdkbapadjdcodefkfkfmmfpfd" ascii wide nocase
        $ext_tokenpocket = "mfgccjchihfkkindfppnaooecgfneiii" ascii wide nocase
        $ext_trust       = "egjidjbpglichdcondbcbdnbeeppgdph" ascii wide nocase

        // Desktop wallet paths
        $path_exodus     = "exodus.wallet" ascii wide nocase
        $path_electrum   = "Electrum\\wallets" ascii wide nocase
        $path_atomic     = "Atomic\\Local Storage" ascii wide nocase
        $path_guarda     = "Guarda\\Local Storage" ascii wide nocase
        $path_coinomi    = "Coinomi\\Coinomi\\wallets" ascii wide nocase
        $path_jaxx       = "com.liberty.jaxx" ascii wide nocase
        $path_wasabi     = "WalletWasabi\\Client" ascii wide nocase
        $path_ledger     = "Ledger Live" ascii wide nocase

        // Seed phrase / mnemonic keywords
        $seed1 = "mnemonic" ascii wide nocase
        $seed2 = "seed_phrase" ascii wide nocase
        $seed3 = "recovery phrase" ascii wide nocase
        $seed4 = "wallet.dat" ascii wide nocase

    condition:
        uint16(0) == 0x5A4D and filesize < 10MB and
        (
            (3 of ($ext_*)) or
            (3 of ($path_*)) or
            (2 of ($ext_*) and 2 of ($path_*)) or
            (2 of ($ext_*) and 1 of ($seed*)) or
            (2 of ($path_*) and 1 of ($seed*))
        )
}

Cobertura: esta regla detecta la mayoria de infostealers conocidos porque el targeting de wallets es casi universal en la categoria. Familias como Rhadamanthys, que incluyen OCR para leer seed phrases de imagenes, tambien coinciden por los extension IDs y paths.

Regla 5: Patrones de exfiltracion

Los infostealers exfiltran datos con patrones HTTP reconocibles. El payload tipico viaja como POST multipart con campos predecibles.

rule Infostealer_Exfiltration_Patterns
{
    meta:
        author      = "MalwareIntel Research"
        description = "Detecta patrones de exfiltracion HTTP comunes en infostealers"
        mitre       = "T1041, T1071.001, T1567"
        date        = "2026-06-05"
        severity    = "high"

    strings:
        // HTTP POST multipart (exfiltracion de logs)
        $http1 = "Content-Disposition: form-data" ascii
        $http2 = "multipart/form-data; boundary=" ascii
        $http3 = "Content-Type: application/x-zip" ascii
        $http4 = "Content-Type: application/octet-stream" ascii

        // Nombres de campos tipicos en el POST
        $field1 = "hwid=" ascii wide
        $field2 = "build=" ascii wide
        $field3 = "token=" ascii wide
        $field4 = "country=" ascii wide
        $field5 = "passwords=" ascii wide
        $field6 = "cookies=" ascii wide
        $field7 = "wallets=" ascii wide
        $field8 = "screenshot=" ascii wide

        // User-Agent strings custom comunes
        $ua1 = "Mozilla/5.0 (Macintosh" ascii  // UA fake comun en stealers Windows
        $ua2 = "BrowserPass" ascii wide
        $ua3 = "StealerBot" ascii wide

        // Estructura de log (formato de salida)
        $log1 = "\\Passwords\\" ascii wide
        $log2 = "\\Cookies\\" ascii wide
        $log3 = "\\Autofills\\" ascii wide
        $log4 = "\\CreditCards\\" ascii wide
        $log5 = "\\Wallets\\" ascii wide
        $log6 = "System.txt" ascii wide
        $log7 = "Screenshot.png" ascii wide

    condition:
        uint16(0) == 0x5A4D and filesize < 10MB and
        (
            (1 of ($http*) and 3 of ($field*)) or
            (1 of ($http*) and 3 of ($log*)) or
            (4 of ($field*) and 2 of ($log*)) or
            (1 of ($ua2, $ua3) and 2 of ($field*))
        )
}

Regla 6: Infostealer generico por comportamiento

Esta regla combina senales debiles de las categorias anteriores para detectar infostealers que no coinciden con ninguna familia conocida. Es la red de seguridad.

rule Infostealer_Generic_Behavioral
{
    meta:
        author      = "MalwareIntel Research"
        description = "Deteccion generica de infostealer por combinacion de multiples indicadores debiles"
        mitre       = "T1555.003, T1539, T1005, T1082, T1041"
        date        = "2026-06-05"
        severity    = "medium"

    strings:
        // Indicadores de recoleccion de sistema
        $recon1 = "SELECT * FROM Win32_Processor" ascii wide nocase
        $recon2 = "SELECT * FROM Win32_VideoController" ascii wide nocase
        $recon3 = "SELECT * FROM Win32_OperatingSystem" ascii wide nocase
        $recon4 = "GetForegroundWindow" ascii
        $recon5 = "GetClipboardData" ascii
        $recon6 = "keybd_event" ascii

        // Acceso a credenciales (cualquier navegador)
        $cred1 = "Login Data" ascii wide
        $cred2 = "logins.json" ascii wide
        $cred3 = "CryptUnprotectData" ascii
        $cred4 = "vaultcli.dll" ascii wide
        $cred5 = "credentials" ascii wide nocase

        // Persistencia o descarga
        $persist1 = "\\Run\\" ascii wide
        $persist2 = "schtasks" ascii wide nocase
        $persist3 = "startup" ascii wide nocase

        // Exfiltracion
        $exfil1 = "POST " ascii
        $exfil2 = "Content-Type:" ascii
        $exfil3 = "InternetOpenA" ascii
        $exfil4 = "HttpSendRequestA" ascii
        $exfil5 = "WinHttpOpen" ascii

        // Archivado (empaqueta antes de exfiltrar)
        $archive1 = "ZipArchive" ascii wide
        $archive2 = "CreateZipFile" ascii wide
        $archive3 = "GZipStream" ascii wide

    condition:
        uint16(0) == 0x5A4D and filesize < 15MB and
        (
            // Combinacion: recoleccion + credenciales + exfiltracion
            (2 of ($recon*) and 2 of ($cred*) and 2 of ($exfil*)) or
            // Combinacion: credenciales + archivado + exfiltracion
            (2 of ($cred*) and 1 of ($archive*) and 2 of ($exfil*)) or
            // Combinacion: recoleccion + credenciales + archivado
            (2 of ($recon*) and 2 of ($cred*) and 1 of ($archive*))
        )
}

Ajuste de umbrales: la regla pide 2 strings de cada categoria para minimizar falsos positivos. Si la usas en un entorno de hunting donde aceptas mas ruido, puedes bajar a 1 de cada categoria. En un entorno de produccion (EDR, email gateway), mantener 2 es lo recomendable.

Complementar con Sigma: deteccion en logs

Las reglas YARA detectan el binario. Las reglas Sigma detectan el comportamiento en ejecucion. Son complementarias: YARA en el perimetro (email, proxy, EDR), Sigma en el SIEM.

Sigma: acceso a bases de datos de navegador

title: Suspicious Access to Browser Credential Databases
id: e5c2b1a3-7d4f-4e8a-9b3c-1a2d5e6f7890
status: experimental
description: Detecta procesos no-browser accediendo a Login Data o Cookies de Chrome/Edge
logsource:
    category: file_access
    product: windows
detection:
    selection:
        TargetFilename|contains:
            - '\\Login Data'
            - '\\Cookies'
            - '\\Web Data'
            - '\\Local State'
        TargetFilename|contains:
            - '\\Google\\Chrome\\'
            - '\\Microsoft\\Edge\\'
            - '\\BraveSoftware\\'
    filter:
        Image|endswith:
            - '\\chrome.exe'
            - '\\msedge.exe'
            - '\\brave.exe'
            - '\\opera.exe'
            - '\\vivaldi.exe'
    condition: selection and not filter
level: high
tags:
    - attack.credential_access
    - attack.t1555.003

Sigma: exfiltracion HTTP sospechosa con datos de sistema

title: Potential Infostealer HTTP Exfiltration
id: f7a3b2c4-8e5d-4f9a-0c1b-2d3e4f5a6b7c
status: experimental
description: Detecta HTTP POST a destinos no categorizados con User-Agent inusual
logsource:
    category: proxy
    product: any
detection:
    selection:
        cs-method: POST
        sc-bytes|gt: 50000
    filter_known:
        cs-host|endswith:
            - '.microsoft.com'
            - '.google.com'
            - '.mozilla.org'
            - '.apple.com'
    filter_ua:
        cs(User-Agent)|contains:
            - 'Chrome/'
            - 'Firefox/'
            - 'Edge/'
    suspicious_ua:
        cs(User-Agent)|re: '^Mozilla/5\.0 \(Macintosh.*$'
    condition: selection and not filter_known and (not filter_ua or suspicious_ua)
level: medium
tags:
    - attack.exfiltration
    - attack.t1041

La regla Sigma de proxy busca POSTs grandes a destinos desconocidos. El filtro de User-Agent es clave: muchos infostealers para Windows usan un User-Agent que dice "Macintosh" porque los builders copian strings de listas publicas sin verificar coherencia.

Hunting workflow con YARA

Tener reglas escritas es solo el principio. Hay que ponerlas a trabajar.

VirusTotal Retrohunt

Si tienes acceso a VirusTotal Enterprise, Retrohunt permite ejecutar tus reglas YARA contra el corpus historico de muestras (petabytes de binarios). El flujo:

  1. Sube las 6 reglas a VT Retrohunt
  2. Ejecuta el hunt (tarda entre 2 y 24 horas dependiendo de la cola)
  3. Revisa los resultados: filtra por first_submission_date para encontrar muestras recientes
  4. Para cada match, revisa el behavior report en VT para confirmar que es un infostealer
  5. Extrae IOCs nuevos (C2 IPs, dominios, hashes) y alimenta tu plataforma de inteligencia

LOKI Scanner (offline, gratis)

LOKI de Florian Roth es un scanner YARA gratuito para endpoints. Ideal para threat hunting interno:

# Escanear un directorio sospechoso
python loki.py -p C:\Users\ --intense

# Escanear con tus reglas custom
python loki.py -p C:\Temp -s /path/to/custom-rules/

# Escanear solo ejecutables
python loki.py -p C:\ProgramData --noindicator --dontwait

Coloca las reglas de este articulo en el directorio signature-base/yara/ de LOKI y tendras deteccion de infostealers en cualquier endpoint sin necesidad de EDR.

CAPE Sandbox

CAPE (fork de Cuckoo) ejecuta muestras en sandbox y aplica reglas YARA automaticamente. El flujo:

  1. Sube la muestra sospechosa a CAPE
  2. CAPE ejecuta el binario en una VM instrumentada
  3. Tus reglas YARA se aplican contra el binario en disco y contra la memoria del proceso
  4. Las reglas de exfiltracion detectan los HTTP POSTs hacia el C2
  5. El reporte incluye el trafico de red completo, los archivos accedidos y las APIs llamadas

La combinacion de YARA estatico (en disco) con YARA en memoria (runtime) es especialmente efectiva contra infostealers que deofuscan strings en memoria.

Mapeo MITRE ATT&CK

Las reglas de este articulo cubren las siguientes tecnicas, que son el nucleo operativo de cualquier infostealer:

TecnicaNombreReglas que la detectan
T1555.003Credentials from Web BrowsersReglas 1, 2, 3, 6
T1539Steal Web Session CookieReglas 1, 2, 3
T1005Data from Local SystemReglas 1, 4, 6
T1552.001Credentials in FilesRegla 4
T1082System Information DiscoveryReglas 1, 6
T1041Exfiltration Over C2 ChannelReglas 5, 6
T1071.001Web Protocols (C2)Regla 5
T1497.001System Checks (Anti-Sandbox)Regla 2
T1027Obfuscated Files or InformationRegla 2

Recursos y referencias

Reglas YARA comunitarias:

Analisis tecnicos de infostealers:

  • ANY.RUN Malware Trends Tracker: estadisticas en tiempo real de familias activas
  • Sekoia TDR: informes periodicos sobre Lumma, RedLine y el ecosistema MaaS
  • Group-IB Hi-Tech Crime Trends: informe anual con datos de mercados underground

Herramientas:

  • LOKI: scanner YARA para endpoints (gratis, open source)
  • CAPE Sandbox: sandbox de analisis con soporte YARA nativo
  • yarGen: generador automatico de reglas YARA a partir de muestras
  • YARA Editor (VSCode): extension con syntax highlighting y linting

Fuentes de IOCs de infostealers:

Las 6 reglas de este articulo son un punto de partida. La deteccion real de infostealers requiere mantenerlas actualizadas conforme las familias evolucionan, combinarlas con reglas Sigma para el componente comportamental, y validarlas periodicamente contra muestras reales de MalwareBazaar y CAPE.

Preguntas frecuentes

Artículos relacionados

Este contenido tiene fines exclusivamente educativos y de investigación en ciberseguridad defensiva. No se proporcionan binarios maliciosos ni payloads ejecutables. El uso indebido de esta información es responsabilidad exclusiva del usuario. Leer disclaimer completo.