10. Security Considerations
Questo documento definisce meccanismi per configurare il comportamento delle applicazioni SNMP. Queste applicazioni possono essere associate a un motore SNMP che fornisce comunicazione sicura quando si utilizzano le funzionalità di sicurezza SNMPv3.
Tuttavia, ci sono diverse considerazioni di sicurezza che devono essere prese in considerazione:
10.1. Sicurezza della Configurazione
I moduli MIB definiti in questo documento (SNMP-TARGET-MIB, SNMP-NOTIFICATION-MIB e SNMP-PROXY-MIB) contengono informazioni di configurazione che influenzano direttamente la postura di sicurezza delle comunicazioni SNMP:
Oggetti Sensibili
Diversi oggetti contengono o riferiscono informazioni di sicurezza sensibili:
- snmpTargetParamsSecurityName: Contiene credenziali di sicurezza (stringhe community per SNMPv1/v2c, nomi utente per SNMPv3).
- snmpTargetParamsSecurityModel e snmpTargetParamsSecurityLevel: Definiscono i meccanismi di sicurezza e i livelli di protezione utilizzati.
- snmpProxyTargetParamsIn: Riferisce parametri di sicurezza per messaggi in entrata al proxy.
Questi oggetti dovrebbero essere protetti con appropriati controlli degli accessi per prevenire:
- Divulgazione non autorizzata: Lettura di security name/stringhe community.
- Modifica non autorizzata: Modifica dei parametri di sicurezza per indebolire la sicurezza o reindirizzare il traffico.
Controllo degli Accessi Raccomandato
Si RACCOMANDA che le entità SNMP che implementano i moduli MIB in questo documento:
- Utilizzino le funzionalità di sicurezza SNMPv3 (USM) per tutti gli accessi di gestione a questi oggetti MIB.
- Configurino VACM (View-based Access Control Model) per limitare l'accesso a questi oggetti solo agli amministratori di sicurezza autorizzati.
- Utilizzino autenticazione e crittografia (livello di sicurezza authPriv) quando si accede a oggetti sensibili alla sicurezza.
10.2. Sicurezza delle Notifiche
Divulgazione di Informazioni
Le notifiche possono contenere informazioni sensibili sul sistema gestito. Una configurazione impropria dei target di notifica può portare a:
- Invio di notifiche a destinatari non autorizzati.
- Esposizione di dati operativi sensibili o eventi di sicurezza.
- Perdita di informazioni sulla topologia di rete o vulnerabilità.
Mitigazione:
- Utilizzare il filtraggio delle notifiche per controllare quali informazioni vengono inviate a quali target.
- Configurare i target di notifica per utilizzare SNMPv3 con autenticazione e crittografia.
- Verificare regolarmente snmpTargetAddrTable per assicurarsi che le notifiche vengano inviate solo a stazioni di gestione autorizzate.
Spoofing delle Notifiche
Senza un'adeguata sicurezza, le notifiche possono essere contraffatte da aggressori:
- Le notifiche false possono causare falsi allarmi o mascherare veri incidenti di sicurezza.
- Gli attori malintenzionati possono manipolare i sistemi di gestione inviando notifiche falsificate.
Mitigazione:
- I notification receiver dovrebbero utilizzare le funzionalità di sicurezza SNMPv3 per autenticare la fonte delle notifiche.
- Utilizzare inform request (invece di trap) per garantire una consegna affidabile e permettere l'autenticazione.
- Implementare rate limiting e rilevamento di anomalie per identificare pattern di notifica sospetti.
10.3. Sicurezza dell'Inoltro Proxy
I proxy forwarder introducono considerazioni di sicurezza aggiuntive:
Degradazione del Livello di Sicurezza
I proxy possono tradurre tra diverse versioni SNMP, degradando potenzialmente la sicurezza:
- SNMPv3 (authPriv) a SNMPv1 (nessuna sicurezza): Espone il traffico autenticato e crittografato in chiaro.
- Perdita di autenticazione: Il target non può verificare la vera fonte della richiesta.
Mitigazione:
- Evitare le degradazioni di sicurezza quando possibile. Distribuire SNMPv3 end-to-end.
- Se la degradazione è necessaria, utilizzare controlli compensativi (ad es. IPsec, sicurezza fisica).
- Registrare tutte le degradazioni di sicurezza per scopi di audit.
- Limitare quali operazioni possono essere degradate utilizzando il controllo degli accessi.
Attacchi Man-in-the-Middle
I proxy si trovano nel percorso di comunicazione e potrebbero potenzialmente:
- Intercettare e leggere informazioni sensibili.
- Modificare richieste o risposte.
- Impersonare il command generator o il command responder.
Mitigazione:
- I proxy dovrebbero essere distribuiti in ambienti sicuri e controllati.
- Utilizzare la sicurezza SNMPv3 su entrambi i lati del proxy (command generator a proxy, proxy a command responder).
- Implementare controlli degli accessi forti sulla configurazione del proxy.
- Monitorare e verificare l'attività del proxy.
Vulnerabilità della Traduzione di Contesto
Una traduzione di contesto impropria nei proxy può portare a:
- Accesso a informazioni di gestione non intenzionali.
- Bypass dei controlli degli accessi se contesti diversi hanno politiche di accesso diverse.
Mitigazione:
- Configurare attentamente le voci snmpProxyTable per garantire un corretto mapping del contesto.
- Applicare politiche di controllo degli accessi coerenti in tutti i contesti.
- Rivedere e verificare regolarmente le regole di traduzione del contesto.
10.4. Considerazioni sul Denial of Service
Le funzionalità definite in questo documento possono essere abusate per causare denial of service:
Esaurimento delle Risorse
- Notifiche eccessive: Configurare molti target di notifica può sopraffare il notification originator.
- Regole di filtraggio complesse: Operazioni di filtro computazionalmente costose possono consumare CPU eccessiva.
- Amplificazione proxy: Una singola richiesta a un proxy configurato con inoltro a target multipli può generare molte richieste in uscita.
Mitigazione:
- Implementare rate limiting sulla generazione di notifiche e sull'inoltro proxy.
- Impostare limiti ragionevoli sul numero di target configurati.
- Ottimizzare il processamento dei filtri e considerare di limitare la complessità dei filtri.
- Monitorare l'uso delle risorse e allertare su anomalie.
Flooding di Rete
- I target di notifica mal configurati possono inondare la rete di traffico.
- I loop di proxy (dove i proxy inoltrano l'uno all'altro) possono causare tempeste di messaggi.
Mitigazione:
- Validare gli indirizzi target durante la configurazione.
- Implementare meccanismi di rilevamento dei loop nei proxy forwarder.
- Utilizzare meccanismi TTL o hop-count per prevenire l'inoltro infinito.
10.5. Considerazioni sulla Versione SNMP
Limitazioni di SNMPv1 e SNMPv2c
SNMPv1 e SNMPv2c utilizzano stringhe community per l'autenticazione:
- Le stringhe community vengono trasmesse in chiaro e sono vulnerabili all'intercettazione.
- L'autenticazione basata su community è debole e facilmente compromessa.
- Nessuna protezione dell'integrità: I messaggi possono essere modificati in transito senza rilevamento.
Raccomandazione:
Si RACCOMANDA FORTEMENTE che le distribuzioni utilizzino SNMPv3 con USM per tutte le comunicazioni SNMP. SNMPv1 e SNMPv2c dovrebbero essere utilizzati solo in ambienti controllati dove:
- La rete è fisicamente sicura.
- Il traffico è protetto con altri mezzi (ad es. VPN, IPsec).
- I dispositivi legacy non possono essere aggiornati a SNMPv3.
Sicurezza SNMPv3
SNMPv3 con USM fornisce:
- Autenticazione: Verifica la fonte dei messaggi utilizzando HMAC-MD5 o HMAC-SHA.
- Crittografia: Protegge la confidenzialità dei messaggi utilizzando DES o AES.
- Tempestività: Protegge contro attacchi di replay utilizzando timestamp.
Tuttavia, la sicurezza SNMPv3 dipende da una configurazione appropriata:
- Utilizzare protocolli di autenticazione forti (HMAC-SHA preferito a HMAC-MD5).
- Utilizzare crittografia forte (AES preferito a DES).
- Gestire correttamente le chiavi crittografiche (chiavi forti, rotazione regolare).
- Sincronizzare gli orologi per prevenire lo sfruttamento della finestra di tempestività.
10.6. Riepilogo delle Raccomandazioni di Sicurezza
-
Utilizzare SNMPv3 con USM per tutte le comunicazioni SNMP che coinvolgono i moduli MIB definiti in questo documento.
-
Configurare VACM per limitare l'accesso agli oggetti sensibili alla sicurezza solo agli amministratori autorizzati.
-
Utilizzare autenticazione e crittografia (authPriv) quando si accede o si trasmettono informazioni sensibili.
-
Configurare attentamente i target di notifica e utilizzare il filtraggio delle notifiche per prevenire la divulgazione di informazioni.
-
Evitare le degradazioni di sicurezza nei proxy forwarder; se inevitabili, utilizzare controlli compensativi e verificare tutte le degradazioni.
-
Distribuire i proxy in ambienti sicuri con controlli degli accessi forti e monitoraggio.
-
Implementare rate limiting per prevenire attacchi denial of service.
-
Verificare regolarmente la configurazione di target, notifiche, filtri e regole proxy.
-
Utilizzare inform request invece di trap per notifiche critiche per garantire una consegna affidabile e autenticata.
-
Seguire le best practice di sicurezza come delineato in RFC 3410 (Applicability Statements for the Internet-Standard Management Framework).