Módulo 12 — cryptominer
Modulo 12 - Criptominero (Cryptominer)
Sección titulada «Modulo 12 - Criptominero (Cryptominer)»1. Definicion Teorica y Contexto Historico
Sección titulada «1. Definicion Teorica y Contexto Historico»Un criptominero (o cryptojacker) es un tipo de malware que secuestra los recursos computacionales de un sistema victima para minar criptomonedas sin el consentimiento del propietario. A diferencia del ransomware, que busca un rescate directo, el criptominero genera ganancias continuas para el atacante mientras permanezca oculto.
Algoritmo de minado: Proof of Work (PoW)
Sección titulada «Algoritmo de minado: Proof of Work (PoW)»El minado de criptomonedas como Bitcoin y Monero se basa en el algoritmo Proof of Work (PoW), que requiere que el minero encuentre un valor (nonce) tal que el hash SHA-256 del bloque sea menor que un umbral de dificultad. Esto significa que el hash debe comenzar con un numero determinado de ceros. El proceso es intensivo en CPU/GPU porque implica calcular millones de hashes por segundo hasta encontrar uno valido.
Contexto historico y ataques notorios
Sección titulada «Contexto historico y ataques notorios»| Ano | Nombre | Descripcion |
|---|---|---|
| 2017 | Coinhive | Servicio JavaScript que minaba Monero en el navegador de visitantes. Infecto mas de 30,000 sitios web, incluyendo The Pirate Bay. Cerrado en 2019. |
| 2018 | CreativeFan | Minero que se propagaba via exploits de EternalBlue, comprometiendo servidores Windows desactualizados. |
| 2019 | Lemon Duck | Minero de Python que explotaba Redis y Docker, propagandose via CVE-2020-14882. Minaba Monero usando CPU del servidor. |
| 2020 | PowerGhost | Minero fileless que se ejecuta en memoria, propagandose via EternalBlue (MS17-010) e instalando persistencia como servicio. |
| 2021 | 8220 Gang | Grupo de actores maliciosos que针对 vulnerabilities en Oracle WebLogic y Apache para instalar mineros. |
| 2023 | Kinsing | Minero que explotaba vulnerabilidades en contenedores Docker y servidores Linux para minar Monero. |
Por que es peligroso
Sección titulada «Por que es peligroso»- Disponibilidad: El minero consume CPU/GPU al 100%, degradando el rendimiento del sistema y causando disponibilidad de servicio.
- Ocultamiento: Los mineros modernos utilizan tecnicas de ofuscacion, nomenclatura de procesos legitimos y persistencia avanzada para evitar la deteccion.
- Escalabilidad: Un solo minero comprometido puede propagarse a otros sistemas de la red, convirtiendose en un botnet de minado.
2. Mecanismo de Funcionamiento Tecnologico (Flujo Logico)
Sección titulada «2. Mecanismo de Funcionamiento Tecnologico (Flujo Logico)»-
Infeccion inicial: El minero se instala en el sistema via phishing, exploits, dependencias comprometidas o drive-by downloads.
-
Conexion al pool: El malware establece conexion con un pool de minado (servidor que coordina el trabajo entre mineros) usando el protocolo Stratum sobre TCP.
-
Recepcion de trabajo: El pool envia al minero un bloque de trabajo que incluye la transaccion coinbase, el merkle root y el umbral de dificultad.
-
Calculo de hashes: El minero calcula hashes SHA-256 (o RandomX para Monero) iterando sobre diferentes valores de nonce hasta encontrar uno que cumpla la dificultad requerida.
-
Envio de resultado: Cuando encuentra un hash valido, lo envia al pool como prueba de trabajo. El pool verifica y otorga una fraccion de recompensa.
-
Persistencia: El minero se auto-ejecuta al inicio del sistema via cron, systemd, WMI o modificaciones al registro.
-
Evasion: Utiliza nombres de proceso similares a procesos del sistema (svchost, csrss), ofuscacion de codigo, y ejecucion en memoria para evadir antivirus.
3. Alineacion con la Triada CIA
Sección titulada «3. Alineacion con la Triada CIA»-
Pilar Afectado: Disponibilidad (Availability)
-
Justificacion Tecnica: El criptominero consume recursos computacionales (CPU, GPU, memoria, ancho de banda) al maximo nivel, dejando insuficientes recursos para las operaciones normales del sistema. Esto resulta en degradacion de rendimiento, tiempos de respuesta elevados, y en casos criticos, caida completa de servicios criticos. La disponibilidad se ve comprometida porque el sistema no puede prestar el servicio para el cual fue disenido, ya que sus recursos estan siendo utilizados por la actividad minera maliciosa.
4. Mitigacion bajo la Norma de Controles CIS
Sección titulada «4. Mitigacion bajo la Norma de Controles CIS»-
CIS Control 8: Auditoria de Cuentas (Audit Log Management)
-
Justificacion: Los registros de auditoria permiten detectar patrones de consumo anormal de recursos, procesos sospechosos y conexiones a pools de minado. Un sistema de gestion de logs debe capturar eventos de sistema, cambios en procesos y actividad de red para que un equipo de seguridad pueda identificar indicadores de compromiso (IOCs) de cryptojacking.
-
Implementacion Practica en Laboratorio: El script
monitoreo_de_recursos_cpu.pyimplementa auditoria de 6 vectores: (1) monitoreo de uso de CPU via/proc/loadavg, (2) busqueda de archivos de configuracion de minero, (3) deteccion de codigo de minado inyectado en scripts, (4) escaneo de archivos temporales sospechosos en/tmp, (5) revision de procesos activos contra una lista de mineros conocidos (xmrig, minerd, cpuminer, etc.), y (6) analisis de conexiones de red en puertos tipicos de minado (3333, 4444, 5555, 8888, 9999).
Cuándo aplicar esta defensa
Sección titulada «Cuándo aplicar esta defensa»- Uso de CPU anormalmente alto sostenido: Cuando el monitoreo de recursos reporta un consumo de CPU superior al 90% durante períodos prolongados sin una carga de trabajo legítima asociada, activar la inspección de procesos y conexiones de red.
- Procesos con nombres similares a mineros conocidos: La detección de
procesos como
xmrig,minerd,cpuminer, o variantes con nombres ofuscados (ej:xmr-stak,kthreaddi) activa la investigación forense inmediata. - Conexiones a puertos de minado: Tráfico de salida hacia los puertos típicos de pools de minado (3333, 4444, 5555, 8888, 9999) es un IOC fuerte de cryptojacking que requiere respuesta inmediata.
- Archivos de configuración de minero: La presencia de archivos JSON con
campos como
pool,wallet,algo,threadsen directorios temporales o del usuario es un indicador directo de actividad minera maliciosa.
Por qué funciona esta defensa
Sección titulada «Por qué funciona esta defensa»- Múltiples vectores de detección: La auditoría de 6 vectores simultáneos (CPU, archivos de config, código inyectado, procesos, conexiones, archivos temporales) asegura que la detección no dependa de un solo indicador, reduciendo la probabilidad de falsos negativos.
- Correlación de artefactos: Un criptominero genera múltiples artefactos simultáneos (alto consumo CPU + conexión a puerto de minado + archivos de configuración). La correlación de estos indicadores proporciona una señal más fuerte que cualquiera de ellos individualmente.
- Principio de least privilege aplicado a monitoreo: Al auditar recursos, procesos y red simultáneamente, se implementa un modelo de defensa que cubre las tres dimensiones principales donde un minero puede ser detectado, haciendo que la evasión requiera comprometer los tres vectores a la vez.
Ejercicios prácticos de defensa
Sección titulada «Ejercicios prácticos de defensa»- Análisis de artefactos: Ejecuta
cryptominer.pyy observa las métricas de hashrate generadas. Luego ejecutamonitoreo_de_recursos_cpu.pyy verifica cuáles de las 6 verificaciones detectan los artefactos de la simulación. Compara los resultados con lo que verías en un sistema real. - Escaneo de configuración: Inspecciona el archivo de configuración JSON generado por la simulación. Identifica los campos que revelarían la dirección del pool y la wallet del atacante. En un entorno real, estos datos se usarían para atribuir el ataque y bloquear las IPs del pool.
- Prueba de limpieza: Ejecuta
monitoreo_de_recursos_cpu.py --cleany verifica que se eliminan todos los artefactos (configuración JSON, logs, scripts temporales). Luego ejecuta la verificación de procesos para confirmar que no queda ningún proceso sospechoso activo.
5. Detalles de la Simulacion Educativa (Python)
Sección titulada «5. Detalles de la Simulacion Educativa (Python)»-
Que hace
cryptominer.py: El script simula el comportamiento completo de un criptominero sin generar danio. Copia archivos del laboratorio a./directorio_pruebas/y luego ejecuta un algoritmo de minado que calcula hashes SHA-256 sobre datos aleatorios. Muestra metricas en tiempo real: hashrate (hashes/segundo), dificultad (numero de ceros requeridos), nonce, porcentaje de CPU, y bloques encontrados. Genera artefactos de prueba: un archivo de configuracion JSON con datos ficticios del pool/wallet, un log de estadisticas de minado, y un script temporal que simula actividad sospechosa. Todo el proceso es reversble con--clean. -
Que hace
monitoreo_de_recursos_cpu.py: Implementa un escaneo de deteccion de 6 verificaciones: (1) analisis de uso de CPU via/proc/loadavg, (2) busqueda de archivos de configuracion de minero en el directorio de artefactos, (3) verificacion de integridad descript.pybuscando patrones de codigo de minado inyectado, (4) escaneo de archivos temporales en/tmpcon patrones de minero, (5) inspeccion de procesos activos contra la lista de mineros conocidos, y (6) analisis de conexiones de red en puertos tipicos de minado. Incluye funcion de limpieza completa con--clean.
flowchart TD A[Infeccion via phishing/exploit] --> B[Conexion al pool de minado] B --> C[Recibe trabajo del pool] C --> D[Calcula hashes SHA-256] D --> E{Hash < dificultad?} E -->|No| D E -->|Si| F[Envia resultado al pool] F --> G[Recibe recompensa] G --> C A --> H[Oculta proceso con nombre falso] A --> I[Consumo maximo de CPU/GPU] I --> J[Degradacion del sistema] I --> K[Fans acelerados, calor excesivo] style A fill:#e74c3c,color:#fff style I fill:#e67e22,color:#fff style J fill:#e74c3c,color:#fff