Skip to main content
  1. Concetti/

NAC - Network Access Control e Posture Assessment

Alessio Barnini
Author
Alessio Barnini
Table of Contents

Cos'e'
#

Il NAC (Network Access Control) e' il "buttafuori" della rete aziendale: verifica identita' e postura del dispositivo PRIMA che ottenga accesso alla rete. Non si limita ad autenticare l'utente, ma controlla lo stato di salute del dispositivo stesso.

nac-network-access-control-overview.webp

Esegue un Health Check (Posture Assessment) sul dispositivo prima della connessione, concede accesso completo se conforme, isola in Quarantine VLAN se non conforme, guida la remediation automatica.

TL;DR
#

Il NAC funziona come un check-in medico obbligatorio prima di entrare in un ospedale:

  1. Il laptop di un dipendente cerca di connettersi al Wi-Fi aziendale
  2. Il NAC blocca la porta (stato UNAUTHORIZED) prima di far passare qualsiasi traffico
  3. Esegue il Posture Assessment: AV aggiornato? Patch OK? BitLocker attivo?
  4. Se il check passa, la porta diventa AUTHORIZED e il dispositivo ottiene IP e accesso
  5. Se fallisce, il dispositivo finisce in Quarantine VLAN dove puo' solo scaricare aggiornamenti
  6. Dopo la remediation, il check viene ripetuto automaticamente

Posture Assessment
#

Il Posture Assessment e' la lista di controlli che il NAC esegue sul dispositivo prima di concedere l'accesso. La lista e' definita dall'IT aziendale e puo' variare per tipo di dispositivo o ruolo.


I 3 Tipi di Agente NAC
#

Il NAC raccoglie le informazioni di postura dal dispositivo usando uno dei tre approcci, scelto in base al tipo di device e al contesto di deployment.

TipoCome FunzionaCaso d'UsoLimitazioni
PersistentSoftware installato permanentemente in backgroundLaptop aziendali gestiti dall'ITRichiede gestione software su ogni device
Dissolvable (Transient)Scaricato via web, eseguito per il check, si auto-cancellaBYOD, ospiti, consulenti temporaneiDipende dal browser, meno info disponibili
AgentlessIl NAC interroga direttamente l'Active DirectoryPC in dominio Windows. Zero manutenzioneCheck solo al login/logoff, non schedulabile liberamente
flowchart TD
    classDef question fill:#1d355733,stroke:#457b9d,stroke-width:2px,color:#000
    classDef agent fill:#2a9d8f33,stroke:#2a9d8f,stroke-width:2px,color:#000

    DEVICE["Dispositivo si connette"]:::question

    Q1{"E' un device aziendale
gestito dall'IT?"}:::question
    Q2{"E' in dominio
Active Directory?"}:::question

    PERSISTENT["Persistent Agent
Sempre in background
Piu' dati, piu' controllo"]:::agent
    AGENTLESS["Agentless
Interroga Active Directory
Zero manutenzione, meno preciso"]:::agent
    DISSOLVABLE["Dissolvable Agent
Si scarica, fa il check, si cancella
Per BYOD e ospiti"]:::agent

    DEVICE --> Q1
    Q1 -->|"Si"| PERSISTENT
    Q1 -->|"No"| Q2
    Q2 -->|"Si"| AGENTLESS
    Q2 -->|"No"| DISSOLVABLE
Analogia Developer per i Tipi di Agente
  • Persistent: come un JWT salvato nel LocalStorage, sempre presente in ogni richiesta.
  • Dissolvable: come un Session Token in memoria che muore al logout o alla chiusura del browser.
  • Agentless: come l'autenticazione Kerberos/SSO nativa in Active Directory, senza token espliciti sul client.

Quarantine VLAN e Remediation
#

Se il Posture Assessment fallisce, il dispositivo non viene bloccato completamente: viene isolato in una VLAN di quarantena dove ha "just enough access" per correggere il problema.

flowchart LR
    classDef ok fill:#2a9d8f33,stroke:#2a9d8f,stroke-width:2px,color:#000
    classDef fail fill:#e6394633,stroke:#e63946,stroke-width:2px,color:#000
    classDef neutral fill:#1d355733,stroke:#457b9d,stroke-width:2px,color:#000

    DEVICE["Dispositivo
si connette"]:::neutral
    ASSESSMENT["Posture Assessment
NAC verifica conformita'"]:::neutral
    OK["Porta AUTHORIZED
Accesso completo alla rete"]:::ok
    QUARANTINE["Quarantine VLAN
Accesso limitato:
solo update server"]:::fail
    REMEDIATION["Remediation
Scarica patch, attiva AV"]:::fail
    RECHECK["Ri-esecuzione
Posture Assessment"]:::neutral

    DEVICE --> ASSESSMENT
    ASSESSMENT -->|"Check superato"| OK
    ASSESSMENT -->|"Check fallito"| QUARANTINE
    QUARANTINE --> REMEDIATION
    REMEDIATION --> RECHECK
    RECHECK -->|"OK"| OK
    RECHECK -->|"Ancora non conforme"| QUARANTINE

nac-vpn-health-quarantine-flow.webp

La Quarantine VLAN e' progettata per il principio di minimo privilegio: il dispositivo non conforme puo' raggiungere solo i server di aggiornamento (Windows Update, server AV), non la rete produttiva. Questo evita che un laptop non patchato infetti il resto della LAN mentre si sta correggendo.


802.1X — Infrastruttura Port-Based NAC
#

Il NAC come concetto richiede un'infrastruttura di autenticazione sottostante. Lo standard industriale e' 802.1X, che implementa il controllo a livello di porta fisica o virtuale (wireless).

802-1x-port-based-nac.webp

Il flusso 802.1X e' sempre lo stesso, cablato o wireless:

flowchart LR
    classDef device fill:#8338ec33,stroke:#8338ec,stroke-width:2px,color:#000
    classDef auth fill:#2a9d8f33,stroke:#2a9d8f,stroke-width:2px,color:#000
    classDef server fill:#1d355733,stroke:#457b9d,stroke-width:2px,color:#000

    SUP["Supplicant
Device dell'utente"]:::device
    AUTH["Authenticator
Switch / AP
(relay)"]:::auth
    RADIUS["RADIUS Server
Verifica credenziali
(Authentication Server)"]:::server

    SUP -->|"1 - EAP Request
(credenziali o certificato)"| AUTH
    AUTH -->|"2 - Invia al RADIUS
(RADIUS Access-Request)"| RADIUS
    RADIUS -->|"3 - RADIUS Access-Accept
o Access-Reject"| AUTH
    AUTH -->|"4 - Porta AUTHORIZED
o rimane UNAUTHORIZED"| SUP

NAC vs Altri Tool
#

Il NAC si confonde spesso con strumenti che hanno ruoli simili ma diversi.

ToolQuando agisceCosa controlla
NACPRIMA della connessioneIl DISPOSITIVO (salute, conformita')
FirewallDurante la connessioneIl TRAFFICO (IP, porta, protocollo)
EDRDOPO la connessioneIl COMPORTAMENTO (processi, anomalie)
MDMContinuo sul device mobilePolicy, app, configurazione

Il NAC e l'EDR si complementano: il NAC filtra all'ingresso (solo device conformi entrano), l'EDR monitora cosa fanno i device una volta dentro. Un device puo' superare il NAC al mattino e poi essere compromesso durante la giornata: solo l'EDR lo rileva.


Integrazione con MDM (Mobile Devices)
#

Il NAC si integra con l'MDM per estendere il controllo ai dispositivi mobili BYOD. Il flusso e' lo stesso del posture assessment desktop, ma orchestrato dall'MDM:

  1. Il device BYOD si connette all'MDM per enrollment
  2. L'MDM verifica conformita': patch, AV, jailbreak/root, certificato
  3. Se il device non e' conforme, l'MDM segnala la violazione al server NAC
  4. Il NAC blocca l'accesso al Wi-Fi aziendale e alla VPN
  5. Il dispositivo continua a funzionare sulla rete cellulare 4G personale
  6. Dopo remediation, il ciclo si ripete

Dev Parallel
#

In un ambiente CI/CD, il NAC e' analogo alle policy di branch protection: prima che il codice entri nel repository principale, i check automatici (test, lint, security scan, SAST) devono passare. Una pull request con test falliti o dipendenze vulnerabili viene bloccata esattamente come un device con AV disattivato viene bloccato dal NAC. La Quarantine VLAN corrisponde a una PR "bloccata" che puo' solo ricevere commenti di revisione e aggiornamenti, non fare merge.

In Docker e Kubernetes, l'equivalente del NAC sono gli Admission Controllers (OPA Gatekeeper, Kyverno): verificano la conformita' del container alle policy (no root, image firmata, resource limits definiti, no privileged mode) prima di ammettere il pod nel cluster. Un pod che non soddisfa le policy viene rifiutato a livello di API server, esattamente come un device non conforme viene bloccato dal NAC prima di ottenere un IP.


Scenario Reale Blue Team
#

# Scenario: verificare quale dispositivo e' in quarantena sul RADIUS
# (Cisco ISE / FreeRADIUS con logging abilitato)

# Analisi log RADIUS per autenticazioni fallite (dispositivi in quarantena)
grep "Access-Reject" /var/log/freeradius/radius.log | \
  awk '{print $NF}' | sort | uniq -c | sort -rn | head -20

# Su Wazuh: alert per device con NAC posture failure
curl -k -u admin:admin \
  -X GET "https://wazuh-manager:9200/.wazuh-alerts-*/_search" \
  -H "Content-Type: application/json" \
  -d '{
    "query": {
      "bool": {
        "must": [
          {"match": {"rule.description": "NAC posture"}},
          {"range": {"@timestamp": {"gte": "now-1h"}}}
        ]
      }
    }
  }'

Collegato a
#

  • aaa-radius — RADIUS e' il backend di autenticazione del NAC
  • zero-trust — NAC implementa il principio "never trust, always verify" prima della connessione
  • edr — EDR monitora il dispositivo dopo che il NAC lo ha ammesso in rete
  • ids-ips — IDS/IPS complementa NAC rilevando anomalie nel traffico post-connessione

Related