Nuevo Documento Técnico: Variantes de BPFDoor Se Ocultan a Simple Vista
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
Laboratorios Rapid7 identificaron siete nuevas variantes de BPFDoor que abusan de Filtros de Paquetes de Berkeley a nivel de kernel para mantener el acceso de puerta trasera sigiloso en entornos de telecomunicaciones. Las nuevas familias, httpShell e icmpShell, utilizan tunelización ICMP y HTTP sin estado con formatos de paquetes «mágicos» y campos IP ocultos para establecer comando y control con un mínimo de huella observable. El informe explica cómo los implantes buscan permanecer casi invisibles a través de la suplantación de procesos, limpieza de descriptores de archivos, modificación de marcas temporales y comunicaciones ICMP cifradas.
Investigación
Los investigadores analizaron casi 300 muestras y extrajeron nuevos rasgos de bytecode BPF, nuevos marcadores de «byte mágico» y nombres de procesos específicos de variante como hpasmlited y cmathreshd. La validación en laboratorio en Docker reprodujo la tunelización PTY impulsada por ICMP, el intercambio de cargas útil cifradas RC4 y un comportamiento de enrutamiento donde una bandera -1 devuelve el tráfico a la dirección de origen del paquete. El equipo también descubrió infraestructura de soporte, incluidos dominios que se hacen pasar por servicios NTP sobre SSL utilizados para mezclar tráfico de preparación y control.
Mitigación
Priorizar la telemetría que expone el abuso adyacente al kernel: monitorear la creación de sockets AF_PACKET, detectar la anexión de filtros BPF y buscar anomalías de protocolo vinculadas a estas variantes, incluyendo la secuencia ICMP 1234 y un código ICMP inválido 1. Alertar sobre demonios sospechosos con rutas ejecutables faltantes, nombres de servicio falsificados o características de ejecución inconsistentes con procesos de sistema legítimos. Rapid7 recomienda ejecutar el script de triaje rapid7_bpfdoor_check.sh y actualizar las detecciones YARA/Suricata con las firmas de byte mágico recién documentadas.
Respuesta
Si se encuentran indicadores, aislar el sistema, detener el proceso de implante sospechoso y bloquear los dominios e intervalos de IP asociados. Capturar artefactos de memoria y disco para preservar el estado BPF y la evidencia de ejecución, luego usar rapid7_bpfdoor_check.sh para identificar filtros BPF activos y artefactos de mutex de cero bytes relacionados. Finalmente, actualizar las detecciones con las firmas publicadas y continuar monitoreando la reaparición de los mismos marcadores de paquetes, nombres de procesos y comportamientos de anexión de filtros.
Flujo de Ataque
Detecciones
El posible servicio de DNS dinámico fue contactado (vía dns)
Ver
IOCs (HashSha256) para detectar: Nuevas variantes de BPFDoor sigilosas son una aguja que parece heno
Ver
Detección de Variantes de BPFDoor través de Anomalías de Proceso [Creación de Proceso Linux]
Ver
Detección de Paquete Mágico de BPFDoor y Anomalías ICMP [Cortafuegos]
Ver
Ejecución de Simulación
Prerequisito: La Verificación de Telemetría y Línea Base debe haberse completado.
Narrativa del Ataque y Comandos
- Crear un script Bash malicioso en el ruta rara vez monitoreada
/var/run/user/0. - Hacer que el script sea ejecutable y luego eliminar el archivo mientras se mantiene abierto, resultando en un inode eliminado que el kernel registra como parte de la línea de comandos cuando el proceso continúa ejecutándose.
- Ejecutar el descriptor de archivo colgante, causando que el proceso se ejecute desde un inode eliminado y generando exactamente la telemetría que busca la regla Sigma.
- Verificar que la línea de comando del proceso en los registros de auditoría contenga la cadena “inode eliminado”, satisfaciendo
selección3. - Evadir las cadenas de suplantación excluidas (
hpasmlited,cmathreshd) para asegurar que se active la regla.
Script de Prueba de Regresión
#!/usr/bin/env bash
# -------------------------------------------------
# Prueba de ejecución estilo BPFDoor desde inode eliminado
# -------------------------------------------------
# 1. Preparar una carga útil maliciosa (inofensiva)
PAYLOAD="/var/run/user/0/malicious.sh"
echo -e "#!/usr/bin/env bashnsleep 60" > "$PAYLOAD"
chmod +x "$PAYLOAD"
# 2. Abrir el descriptor de archivo (mantener el archivo abierto)
exec 3<"$PAYLOAD"
# 3. Eliminar el archivo del sistema de archivos – el inode permanece abierto a través del FD 3
rm -f "$PAYLOAD"
# 4. Ejecutar el script a través de su descriptor de archivo colgante.
# El enlace simbólico /proc/self/fd/3 apunta al inode ahora eliminado.
bash /proc/self/fd/3 &
# 5. Dar un momento al proceso para que inicie y sea registrado
sleep 5
# 6. Limpiar: cerrar el descriptor de archivo
exec 3<&-
echo "Simulación completada – verificar alertas en SIEM."
Comandos de Limpieza
#!/usr/bin/env bash
# -------------------------------------------------
# Limpieza después de la simulación BPFDoor
# -------------------------------------------------
# Matar cualquier proceso de sueño restante iniciado por el script
pkill -f "sleep 60"
# Asegurarse de que no queden archivos sobrantes en el directorio objetivo
rm -f /var/run/user/0/malicious.sh
echo "Limpieza finalizada."
Fin del Informe