Mitigaciones Virus

De CiberWiki

Introducción

En el mundo digital actual, la amenaza de virus informáticos persiste como una preocupación constante para la seguridad de los sistemas y la integridad de los datos. Un virus es un programa malicioso diseñado para replicarse y propagarse, generalmente adjuntándose a archivos legítimos o sectores de arranque del sistema. Cuando el archivo infectado se ejecuta, el virus se activa y puede causar daños como la corrupción de datos, el robo de información o la inutilización del sistema.

Para protegerse contra los virus, es fundamental implementar una estrategia de seguridad en múltiples capas. Esta página recopila las mitigaciones recomendadas por MITRE ATT&CK para la prevención, detección y respuesta ante infecciones virales. Estas medidas no solo protegen contra amenazas conocidas, sino que también fortalecen la resiliencia de los sistemas ante nuevas variantes y técnicas de evasión.

A continuación, se presentan las mitigaciones organizadas por su función principal, con explicaciones técnicas detalladas y ejemplos prácticos de implementación.

Mitigaciones recomendadas

M1036: Account Use Policies

Descripción técnica: Configurar políticas de uso de cuentas para limitar el acceso no autorizado y reducir la superficie de ataque. Esto incluye el bloqueo de cuentas tras intentos de inicio de sesión fallidos, la restricción de horarios de acceso y la limitación de conexiones simultáneas.

Medidas específicas:

  • Configurar políticas de bloqueo de cuentas (account lockout) en Active Directory o sistemas locales: establecer un umbral de intentos fallidos (ej: 5 intentos) y un tiempo de bloqueo (ej: 30 minutos) para prevenir ataques de fuerza bruta.
  • Implementar políticas de tiempo de inicio de sesión (logon hours) para restringir el acceso de usuarios fuera de su horario laboral, dificultando el movimiento lateral del malware fuera de horario.
  • Establecer límites de sesiones simultáneas para prevenir el uso compartido de cuentas y la propagación de malware a través de sesiones comprometidas.
  • Ejemplo de implementación:
   * En Active Directory: Configurar "Account Lockout Policy" mediante `gpmc.msc` con valores como `Account Lockout Threshold = 5`, `Account Lockout Duration = 30` minutos, `Reset Account Lockout Counter After = 30` minutos.
   * En Linux: Configurar `pam_tally2` o `fail2ban` para bloquear IPs tras múltiples intentos fallidos de SSH, añadiendo reglas en `/etc/pam.d/common-auth` y `/etc/fail2ban/jail.local`.

M1015: Active Directory Configuration

Descripción técnica: Configurar Active Directory (AD) para prevenir técnicas de abuso de directorio, como la enumeración de usuarios, el filtrado SID (Security Identifier) o ataques de Kerberoasting.

Medidas específicas:

  • Configurar políticas de filtrado SID (SID Filtering) para prevenir ataques de elevación de privilegios mediante la inyección de SIDs. Esto bloquea la capacidad de un atacante para modificar el token de acceso de un usuario.
  • Implementar administración de grupos protegidos (Protected Users group) para añadir una capa extra de seguridad a cuentas sensibles (ej: administradores de dominio).
  • Aplicar el Principio de Mínimo Privilegio en las cuentas de servicio, asignando solo los permisos necesarios y utilizando cuentas de servicio gestionadas (MSA/gMSA) para evitar la exposición de contraseñas.
  • Ejemplo de implementación (Windows Server con AD):
   * Habilitar SID Filtering en las relaciones de confianza entre dominios para bloquear la elevación de privilegios desde dominios externos: `netdom trust <DomainName> /domain:<TrustedDomain> /quarantine:yes`.
   * Usar cuentas de servicio gestionadas de grupo (gMSA) en lugar de cuentas de servicio tradicionales, creándolas con `New-ADServiceAccount` en PowerShell y asignándolas con `Install-ADServiceAccount`.

M1049: Antivirus / Antimalware

Descripción técnica: Utilizar soluciones de antivirus y antimalware con capacidades de detección basada en firmas (detección estática) y heurística (detección de comportamiento) para identificar y bloquear software malicioso antes de su ejecución.

Medidas específicas:

  • Implementar soluciones de antivirus con detección heurística avanzada que pueda identificar nuevas variantes de virus basándose en patrones de comportamiento, no solo en firmas conocidas.
  • Activar la protección en tiempo real (real-time protection) y la protección de scripts (script protection) para bloquear la ejecución de código malicioso en el momento en que se descarga o ejecuta.
  • Mantener las definiciones de virus actualizadas de forma automática (actualizaciones diarias o en tiempo real) para proteger contra las amenazas más recientes.
  • Configurar escaneos programados (scheduled scans) de sistemas completos para detectar amenazas que pudieron haber evadido la protección en tiempo real.
  • Ejemplo de implementación (Windows Defender/Defender for Endpoint):
   * Activar la protección en tiempo real y la protección contra scripts mediante `Set-MpPreference -DisableRealtimeMonitoring $false` y `Set-MpPreference -DisableScriptScanning $false`.
   * Configurar escaneos programados con tareas de PowerShell o GPO: `Start-MpScan -ScanType FullSchedule` o mediante el Editor de Directivas de Grupo (Ruta: Plantillas Administrativas > Componentes de Windows > Microsoft Defender Antivirus > Programación de análisis).

M1048: Application Isolation and Sandboxing

Descripción técnica: Aislar la ejecución de código en entornos virtuales (sandboxes) o contenedores para evitar la propagación de malware a otros sistemas, conteniendo la amenaza y limitando su impacto.

Medidas específicas:

  • Implementar soluciones de sandboxing, como Windows Sandbox o Firejail en Linux, que ejecuten aplicaciones sospechosas en un entorno aislado.
  • Utilizar contenedores Docker con configuraciones de seguridad restrictivas (seccomp, AppArmor, SELinux) para aislar el código no confiable.
  • Configurar políticas de aislamiento en navegadores (ej: sitio web en un contenedor aislado) para reducir el riesgo de infecciones desde sitios web comprometidos.
  • Ejemplo de implementación (Windows): Crear un archivo de configuración `.wsb` para Windows Sandbox y añadir reglas como `LogonCommand` para ejecutar archivos sospechosos en un entorno aislado. En Linux, instalar `firejail` y ejecutar `firejail <archivo_sospechoso>`.

M1047: Audit

Descripción técnica: Realizar auditorías regulares de sistemas, permisos, software y configuraciones para identificar posibles debilidades que los virus podrían explotar.

Medidas específicas:

  • Auditar regularmente los sistemas y aplicaciones para identificar software no parcheado o configuraciones inseguras que los virus puedan explotar.
  • Utilizar herramientas de escaneo de vulnerabilidades como Nessus, OpenVAS o Qualys para detectar vulnerabilidades en el sistema y en las configuraciones.
  • Implementar auditorías de permisos de acceso (revisión de ACLs) para garantizar que los usuarios tengan solo los permisos necesarios.
  • Configurar auditorías de eventos de seguridad en el sistema (ej: Event Log en Windows, Syslog en Linux) para monitorear y registrar actividades sospechosas.
  • Ejemplo de implementación (Windows):
   * Habilitar auditorías de seguridad mediante GPO: Ejecutar `gpedit.msc` > Configuración del equipo > Configuración de Windows > Configuración de seguridad > Directivas locales > Política de auditoría. Activar "Auditar eventos de inicio de sesión" y "Auditar eventos de acceso a objetos".
   * Usar PowerShell para revisar cambios en permisos: `Get-Acl -Path "C:\<ruta_archivo>" | Select-Object AccessToString, Owner`.

M1040: Behavior Prevention on Endpoint

Descripción técnica: Implementar soluciones EDR (Endpoint Detection and Response) y BP (Behavior Prevention) para detectar y bloquear patrones de comportamiento sospechoso en sistemas finales, como la creación de procesos sospechosos o el cifrado masivo de archivos, evitando la ejecución de virus.

Medidas específicas:

  • Utilizar soluciones como Microsoft Defender for Endpoint, CrowdStrike Falcon, SentinelOne o Carbon Black que ofrecen prevención basada en comportamiento.
  • Configurar alertas para comportamientos sospechosos como la ejecución de procesos desde ubicaciones inusuales, uso de `PowerShell` para descargas remotas o intentos de desactivar servicios de seguridad.
  • Implementar políticas de respuesta automática (ej: bloqueo automático de procesos maliciosos o aislamiento del endpoint infectado) para frenar la propagación del virus.
  • Ejemplo de implementación (Windows Defender for Endpoint): Habilitar la prevención de comportamiento en el Panel de seguridad de Windows Defender o mediante `Set-MpPreference -EnableBehavioralPrevention $true` en PowerShell.

M1046: Boot Integrity

Descripción técnica: Utilizar mecanismos de arranque seguro (Secure Boot) y verificación de integridad del sistema operativo (Trusted Boot) para garantizar que el sistema no se inicie con componentes comprometidos, previniendo la ejecución de rootkits o malware que se carga durante el arranque.

Medidas específicas:

  • Activar Secure Boot en el BIOS/UEFI para garantizar que solo firmware y software firmado por el fabricante se ejecute durante el arranque.
  • Implementar Trusted Platform Module (TPM) para almacenar claves criptográficas y medir la integridad del sistema durante el arranque.
  • Configurar medición de integridad del kernel (Linux `IMA`) o Windows Boot Manager con firmas digitales para garantizar que el kernel y los controladores no se hayan manipulado.
  • Ejemplo de implementación (Windows): Habilitar Secure Boot en la configuración del BIOS/UEFI y configurar BitLocker con TPM para cifrar el disco y verificar la integridad del sistema durante el arranque (`manage-bde -on C: -used -recoverypassword`).

M1045: Code Signing

Descripción técnica: Aplicar la verificación de firmas digitales para garantizar la integridad y autenticidad del código, evitando la ejecución de software no firmado o manipulado, y previniendo la ejecución de virus no confiables.

Medidas específicas:

  • Exigir que los archivos ejecutables y scripts estén firmados digitalmente por editores confiables y verificar las firmas antes de la ejecución.
  • Configurar políticas de restricción de software (Software Restriction Policies o AppLocker en Windows) para bloquear la ejecución de archivos no firmados.
  • Utilizar reglas de Microsoft Defender Application Control (WDAC, anteriormente Device Guard) o Linux **`signature verification`** para evitar la ejecución de código malicioso.
  • Ejemplo de implementación (Windows): En AppLocker, crear una regla basada en editor (publisher) que permita solo archivos firmados por Microsoft o por un editor confiable. En Linux, usar `signify` o `gpg` para verificar firmas de paquetes.

M1053: Data Backup

Descripción técnica: Realizar copias de seguridad periódicas de datos críticos en sistemas de usuarios finales y servidores para garantizar la recuperación rápida en caso de corrupción de datos por un virus, como un ransomware o un virus destructivo.

Medidas específicas:

  • Implementar la regla de copias de seguridad 3-2-1: 3 copias de los datos, en 2 soportes diferentes y 1 copia fuera de línea (offline).
  • Utilizar soluciones de respaldo como Veeam, Acronis o Windows Backup con cifrado.
  • Realizar pruebas de restauración periódicas para garantizar que las copias de seguridad sean funcionales y los datos puedan recuperarse en caso de incidente.
  • Asegurar que las copias de seguridad estén aisladas de la red principal (offline o en una red segregada) para evitar que un virus las cifre o elimine.
  • Ejemplo de implementación (Windows): Configurar "Copia de seguridad de Windows" y programar respaldos diarios a un disco externo. Usar `wbadmin` en PowerShell para crear backups de sistema: `wbadmin start backup -backupTarget:E: -include:C: -allCritical -quiet`.

M1031: Network Intrusion Prevention

Descripción técnica: Implementar sistemas de prevención de intrusiones en red (NIPS) para detectar y bloquear tráfico malicioso en el perímetro de la red, utilizando firmas de detección de intrusiones (IDS) para prevenir la entrada de virus.

Medidas específicas:

  • Desplegar soluciones NIPS como Snort, Suricata o soluciones comerciales (ej: Palo Alto Networks, Cisco Firepower) en el perímetro de la red para inspeccionar todo el tráfico entrante y saliente.
  • Utilizar listas de IPs maliciosas (feeds de amenazas) para bloquear el tráfico desde IPs conocidas por albergar malware.
  • Configurar políticas de firewall para bloquear el tráfico hacia y desde países de alto riesgo y puertos de servicio no utilizados.
  • Desplegar soluciones NGFW (Next-Generation Firewall) que incluyan capacidades de IDS/IPS y detección de aplicaciones.
  • Ejemplo de implementación (Suricata en Linux): Instalar Suricata (`apt install suricata`) y configurar reglas en `/etc/suricata/rules` para bloquear amenazas conocidas. Usar `suricata -c /etc/suricata/suricata.yaml -i eth0` para iniciarlo en modo IDS.

Buenas prácticas adicionales

Además de las mitigaciones anteriores, se recomienda:

  • Mantener el sistema operativo y software actualizado: Aplicar parches de seguridad en un plazo máximo de 48 horas para vulnerabilidades críticas.
  • Formación y concienciación del factor humano: Capacitar a los empleados sobre cómo identificar correos de phishing y descargas sospechosas.
  • Principio de Mínimo Privilegio: Asignar a los usuarios solo los permisos necesarios para realizar sus tareas, reduciendo la superficie de ataque.
  • Segmentación de red: Dividir la red en segmentos para limitar la propagación de virus en caso de infección.

Relación con otros conceptos

  • Virus: Página principal que describe el funcionamiento y las características de los virus.
  • Malware: Categoría general que engloba a los virus y otros tipos de software malicioso.
  • Control de Seguridad: Los controles técnicos y organizativos que implementan estas mitigaciones.
  • Defensa en profundidad: La estrategia de múltiples capas que agrupa estas mitigaciones.

Véase también


Esta página forma parte de la Categoría:Familias de malware.