Saltar a contenido

🔒 Fase 5 – Hardening Automatizado de Nodos Windows

🎯 Objetivo

Ir más allá de la configuración básica de seguridad y aplicar un conjunto de configuraciones de fortalecimiento (hardening) de forma automática y consistente a todos los nodos. El objetivo es reducir la superficie de ataque del sistema operativo Windows, deshabilitando características innecesarias y aplicando políticas de seguridad estrictas.


🤔 ¿Qué es el Hardening?

El hardening es el proceso de asegurar un sistema mediante la reducción de sus vulnerabilidades. Un sistema operativo, por defecto, viene con muchas características habilitadas para maximizar la compatibilidad y la facilidad de uso, no la seguridad. El hardening revierte esto, aplicando el principio de "lo que no es explícitamente necesario, debe estar deshabilitado".

Para una operación profesional, no puedes hacer esto manualmente. Necesitas un playbook de Ansible que verifique y aplique estas configuraciones de forma idempotente.


🛡️ Playbook de Hardening Básico

Este playbook es un ejemplo que aplica algunas de las recomendaciones de seguridad más comunes. Un playbook de hardening en un entorno de producción real podría tener cientos de tareas.

harden_windows.yml

---
- name: Aplicar Linea Base de Seguridad a Nodos Windows
  hosts: Nodo_Cliente
  gather_facts: no

  tasks:
    - name: Deshabilitar el servicio de Escritorio Remoto (RDP)
      ansible.windows.win_service:
        name: TermService # Nombre del servicio de RDP
        state: stopped
        start_mode: disabled
      when: "'servidor' not in group_names" # Ejemplo: no aplicar a servidores de gestión

    - name: Deshabilitar NetBIOS sobre TCP/IP
      ansible.windows.win_regedit:
        path: HKLM:\SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Interfaces\Tcpip_{{ item.Name }}
        name: NetbiosOptions
        data: 2
        type: dword
      loop: "{{ ansible_interfaces | selectattr('ipv4.address', 'defined') | list }}"
      loop_control:
        label: "{{ item.name }}"

    - name: Configurar politica de contrasenas
      community.windows.win_security_policy:
        section: System Access
        key: MinimumPasswordLength
        value: 14

    - name: Habilitar el Firewall de Windows para todos los perfiles
      ansible.windows.win_firewall:
        profiles: 
          - Domain
          - Private
          - Public
        state: on
        block_inbound_rules: yes

    - name: Deshabilitar cuentas de invitado
      ansible.windows.win_user:
        name: Guest
        state: present
        account_disabled: yes

Análisis de las Tareas de Hardening: 1. Deshabilitar RDP: El Escritorio Remoto es un vector de ataque muy común. A menos que sea estrictamente necesario, debe estar deshabilitado. La condición when es un ejemplo de cómo podrías evitar aplicar esta regla a ciertos grupos de hosts. 2. Deshabilitar NetBIOS: Un protocolo antiguo que puede ser usado para obtener información de la red. Se deshabilita modificando una clave del registro de Windows para cada interfaz de red. 3. Política de Contraseñas: Se utiliza el módulo win_security_policy para forzar políticas de seguridad locales, como la longitud mínima de la contraseña. 4. Habilitar Firewall: Se asegura de que el Firewall de Windows esté activado para todos los perfiles de red y que, por defecto, bloquee las conexiones entrantes que no tengan una regla explícita de "Allow". 5. Deshabilitar Cuenta de Invitado: La cuenta Guest es un riesgo de seguridad y debe estar siempre deshabilitada.


🚀 Implementación y Mejora Continua

  • Ejecución Periódica: Este playbook no es para ejecutarlo una sola vez. Deberías programarlo (usando AWX o cron) para que se ejecute periódicamente (ej: semanalmente) en toda tu flota. Esto corrige cualquier "desviación de configuración" que haya podido ocurrir.
  • Basado en Estándares: Para un hardening de nivel profesional, basa tus playbooks en estándares reconocidos como los CIS Benchmarks (Center for Internet Security) o las guías STIG (Security Technical Implementation Guides). Existen roles de Ansible pre-hechos (aunque a menudo comerciales) que automatizan la aplicación de estos estándares.
  • Auditoría: El resultado de la ejecución de este playbook es, en sí mismo, un informe de auditoría. Te muestra qué nodos estaban cumpliendo la política y cuáles necesitaron ser corregidos.