9. Security Considerations (Considerazioni sulla sicurezza)
9. Security Considerations (Considerazioni sulla sicurezza)
Questo documento descrive un'architettura per framework SNMP. L'architettura è progettata per fornire un framework per ottenere servizi di sicurezza inclusa autenticazione, privacy e controllo degli accessi.
9.1. Minacce alla sicurezza
L'architettura affronta le seguenti minacce alla sicurezza:
-
Mascheramento: Un'entità non autorizzata che assume l'identità di un'entità autorizzata
- Affrontata attraverso l'autenticazione
-
Modifica delle informazioni: Alterazione non autorizzata dei messaggi in transito
- Affrontata attraverso il controllo dell'integrità dei messaggi (autenticazione)
-
Modifica del flusso di messaggi: Riordino, ritardo o riproduzione di messaggi
- Affrontata attraverso il controllo della tempestività e gli identificatori di messaggio
-
Divulgazione: Accesso non autorizzato ai contenuti dei messaggi
- Affrontata attraverso la crittografia (privacy)
-
Negazione del servizio: Impedire agli utenti autorizzati di accedere ai servizi
- Parzialmente affrontata attraverso il controllo degli accessi e la gestione delle risorse
9.2. Servizi di sicurezza
L'architettura fornisce funzionalità per i seguenti servizi di sicurezza:
-
Integrità dei dati: Garantisce che i messaggi non siano stati alterati
- Fornita dai protocolli di autenticazione (ad es. HMAC-MD5-96, HMAC-SHA-96)
-
Autenticazione dell'origine dei dati: Conferma l'identità del mittente
- Fornita dai protocolli di autenticazione
-
Protezione dalla ripetizione dei messaggi: Previene la riproduzione di vecchi messaggi
- Fornita dal controllo della tempestività utilizzando i boot del motore e il tempo del motore
-
Riservatezza dei dati: Protegge i contenuti dei messaggi dalla divulgazione
- Fornita dai protocolli di privacy (ad es. CBC-DES, CBC-AES)
-
Controllo degli accessi: Limita l'accesso agli oggetti gestiti
- Fornita dai modelli di controllo degli accessi (ad es. VACM)
9.3. Minacce non affrontate
L'architettura non affronta specificamente le seguenti minacce:
-
Analisi del traffico: Deduzione di informazioni dai modelli di messaggio
- Anche con la crittografia, un osservatore può vedere che sta avvenendo la comunicazione e può analizzare i modelli
-
Negazione del servizio attraverso il consumo di risorse: Sovraccaricare un motore SNMP con richieste
- Gli implementatori dovrebbero considerare la limitazione della velocità e la gestione delle risorse
9.4. Requisiti del modello di sicurezza
I modelli di sicurezza utilizzati con questa architettura devono fornire quanto segue:
- Autenticazione: Verificare l'identità del mittente
- Privacy: Proteggere i contenuti dei messaggi dalla divulgazione
- Tempestività: Rilevare messaggi riprodotti o ritardati
- Gestione delle chiavi: Gestire le chiavi crittografiche in modo sicuro
Il modello di sicurezza basato sull'utente (USM) definito in RFC 3414 fornisce questi servizi ed è il modello di sicurezza primario per SNMPv3.
9.5. Considerazioni crittografiche
La sicurezza di SNMP dipende criticamente dagli algoritmi e dai protocolli crittografici utilizzati. Gli implementatori devono:
-
Utilizzare algoritmi forti: Utilizzare solo algoritmi crittografici ritenuti sicuri
- Evitare algoritmi deprecati (ad es. DES con chiavi corte)
- Preferire algoritmi con revisioni di sicurezza (ad es. AES, SHA-2)
-
Gestione appropriata delle chiavi: Le chiavi crittografiche devono essere:
- Generate con casualità sufficiente
- Protette dalla divulgazione
- Cambiate regolarmente
- Distribuite in modo sicuro
-
Evitare chiavi deboli: Alcuni algoritmi hanno chiavi deboli che dovrebbero essere evitate
-
Considerare la lunghezza delle chiavi: Utilizzare lunghezze delle chiavi appropriate alla sensibilità dei dati
9.6. Considerazioni sul controllo degli accessi
Il controllo degli accessi è essenziale per la sicurezza di SNMP. L'architettura prevede modelli di controllo degli accessi, che determinano se le operazioni dovrebbero essere consentite.
Le considerazioni per il controllo degli accessi includono:
- Principio del minimo privilegio: Agli utenti dovrebbe essere concesso solo l'accesso minimo necessario
- Separazione dei compiti: Utenti diversi dovrebbero avere ruoli diversi
- Revisione regolare: Le politiche di controllo degli accessi dovrebbero essere riviste regolarmente
- Registrazione di audit: I tentativi di accesso (specialmente i fallimenti) dovrebbero essere registrati
9.7. Sicurezza della configurazione
La sicurezza di un deployment SNMP dipende dalla configurazione appropriata:
- Configurazione iniziale sicura: I parametri di sicurezza iniziali devono essere configurati in modo sicuro
- Configurazione remota sicura: Quando si configura remotamente, utilizzare comunicazione sicura
- Proteggere i dati di configurazione: I parametri di sicurezza devono essere protetti dall'accesso non autorizzato
- Aggiornamenti regolari: Le configurazioni di sicurezza dovrebbero essere riviste e aggiornate regolarmente
9.8. Considerazioni su snmpEngineID
Lo snmpEngineID è critico per la sicurezza SNMP:
-
Unicità: Ogni motore SNMP deve avere uno snmpEngineID unico
- SnmpEngineID duplicati possono portare a vulnerabilità di sicurezza
-
Persistenza: Lo snmpEngineID dovrebbe rimanere costante dopo i riavvii
- I cambiamenti allo snmpEngineID possono invalidare le associazioni di sicurezza
-
Generazione: Bisogna fare attenzione quando si generano snmpEngineID per garantire l'unicità
- Utilizzare i formati raccomandati (basati sul numero di impresa e indirizzo MAC/IP)
-
Privacy: Lo snmpEngineID può rivelare informazioni sul dispositivo
- Considerare questo quando si sceglie il formato
9.9. Considerazioni sul contesto
I contesti consentono a un singolo motore SNMP di rappresentare più dispositivi o sottosistemi. Le considerazioni sulla sicurezza includono:
- Controllo degli accessi: Il controllo degli accessi deve essere applicato per contesto
- Isolamento: I contesti dovrebbero essere correttamente isolati l'uno dall'altro
- Nomi di contesto: I nomi di contesto possono rivelare informazioni sul sistema
9.10. Considerazioni sui proxy
I proxy SNMP introducono considerazioni aggiuntive sulla sicurezza:
- Fiducia: Il proxy deve essere fidato sia dal manager che dall'agente
- Traduzione della sicurezza: Quando si traduce tra modelli di sicurezza, la sicurezza può essere ridotta
- Registrazione: I proxy dovrebbero registrare tutti i messaggi inoltrati
- Controllo degli accessi: I proxy dovrebbero applicare il controllo degli accessi ai messaggi inoltrati
9.11. Sicurezza dell'implementazione
Gli implementatori devono considerare la sicurezza durante l'intera implementazione:
- Buffer overflow: Validare attentamente tutti gli input per prevenire buffer overflow
- Validazione dell'input: Validare tutti i componenti del messaggio
- Gestione degli errori: I messaggi di errore non dovrebbero divulgare informazioni sensibili
- Attacchi di timing: Essere consapevoli dei canali laterali di timing
- Limiti di risorse: Implementare limiti per prevenire l'esaurimento delle risorse
9.12. Sicurezza del deployment
Quando si distribuisce SNMP:
- Sicurezza di rete: Utilizzare la sicurezza a livello di rete (firewall, VPN) in modo appropriato
- Sicurezza fisica: Proteggere i dispositivi con agenti SNMP
- Aggiornamenti regolari: Mantenere le implementazioni SNMP aggiornate
- Monitoraggio: Monitorare gli eventi di sicurezza
- Risposta agli incidenti: Avere procedure per rispondere agli incidenti di sicurezza
9.13. Stringhe di comunità (SNMPv1 e SNMPv2c)
Quando si utilizzano SNMPv1 o SNMPv2c:
-
Debolezza: Le stringhe di comunità forniscono sicurezza minima
- Sono inviate in chiaro
- Non forniscono autenticazione, integrità o privacy
-
Migrazione: Migrare a SNMPv3 il prima possibile
-
Se le stringhe di comunità devono essere utilizzate:
- Utilizzare stringhe di comunità forti e casuali
- Cambiarle regolarmente
- Limitarne l'uso a reti fidate
- Utilizzare la sicurezza a livello di rete (VPN, firewall)
9.14. Raccomandazioni
Per la massima sicurezza:
- Utilizzare SNMPv3: SNMPv3 con il modello di sicurezza basato sull'utente fornisce sicurezza forte
- Utilizzare autenticazione e privacy: Abilitare sia autenticazione che privacy (authPriv)
- Algoritmi forti: Utilizzare algoritmi crittografici forti (SHA-2, AES)
- Chiavi forti: Utilizzare password/chiavi forti e cambiarle regolarmente
- Minimo privilegio: Applicare il principio del minimo privilegio nel controllo degli accessi
- Difesa in profondità: Utilizzare più livelli di sicurezza
- Revisione regolare: Rivedere regolarmente le configurazioni di sicurezza e i log
- Rimanere aggiornati: Monitorare gli avvisi di sicurezza e aggiornare le implementazioni