9. Security Considerations (Sicherheitsüberlegungen)
9. Security Considerations (Sicherheitsüberlegungen)
Dieses Dokument beschreibt eine Architektur für SNMP-Frameworks. Die Architektur ist so konzipiert, dass sie ein Framework zur Erreichung von Sicherheitsdiensten einschließlich Authentifizierung, Vertraulichkeit und Zugriffskontrolle bietet.
9.1. Sicherheitsbedrohungen
Die Architektur adressiert die folgenden Sicherheitsbedrohungen:
-
Maskerade: Eine nicht autorisierte Entität, die die Identität einer autorisierten Entität annimmt
- Adressiert durch Authentifizierung
-
Informationsänderung: Nicht autorisierte Änderung von Nachrichten während der Übertragung
- Adressiert durch Nachrichtenintegritätsprüfung (Authentifizierung)
-
Nachrichtenstromänderung: Neuordnung, Verzögerung oder Wiedergabe von Nachrichten
- Adressiert durch Aktualitätsprüfung und Nachrichtenkennungen
-
Offenlegung: Nicht autorisierter Zugriff auf Nachrichteninhalte
- Adressiert durch Verschlüsselung (Vertraulichkeit)
-
Dienstverweigerung: Verhindern, dass autorisierte Benutzer auf Dienste zugreifen
- Teilweise adressiert durch Zugriffskontrolle und Ressourcenverwaltung
9.2. Sicherheitsdienste
Die Architektur bietet Einrichtungen für die folgenden Sicherheitsdienste:
-
Datenintegrität: Stellt sicher, dass Nachrichten nicht verändert wurden
- Bereitgestellt durch Authentifizierungsprotokolle (z.B. HMAC-MD5-96, HMAC-SHA-96)
-
Datenursprungsauthentifizierung: Bestätigt die Identität des Absenders
- Bereitgestellt durch Authentifizierungsprotokolle
-
Nachrichtenwiedergabeschutz: Verhindert die Wiedergabe alter Nachrichten
- Bereitgestellt durch Aktualitätsprüfung unter Verwendung von Engine-Boots und Engine-Zeit
-
Datenvertraulichkeit: Schützt Nachrichteninhalte vor Offenlegung
- Bereitgestellt durch Vertraulichkeitsprotokolle (z.B. CBC-DES, CBC-AES)
-
Zugriffskontrolle: Beschränkt den Zugriff auf verwaltete Objekte
- Bereitgestellt durch Access Control Models (z.B. VACM)
9.3. Nicht adressierte Bedrohungen
Die Architektur adressiert speziell nicht die folgenden Bedrohungen:
-
Verkehrsanalyse: Ableitung von Informationen aus Nachrichtenmustern
- Selbst bei Verschlüsselung kann ein Beobachter sehen, dass Kommunikation stattfindet und Muster analysieren
-
Dienstverweigerung durch Ressourcenverbrauch: Überwältigung einer SNMP-Engine mit Anfragen
- Implementierer sollten Ratenbegrenzung und Ressourcenverwaltung in Betracht ziehen
9.4. Sicherheitsmodellanforderungen
Sicherheitsmodelle, die mit dieser Architektur verwendet werden, müssen Folgendes bereitstellen:
- Authentifizierung: Überprüfung der Identität des Absenders
- Vertraulichkeit: Schutz der Nachrichteninhalte vor Offenlegung
- Aktualität: Erkennung wiedergegebener oder verzögerter Nachrichten
- Schlüsselverwaltung: Sichere Verwaltung kryptographischer Schlüssel
Das in RFC 3414 definierte User-based Security Model (USM) bietet diese Dienste und ist das primäre Sicherheitsmodell für SNMPv3.
9.5. Kryptographische Überlegungen
Die Sicherheit von SNMP hängt kritisch von den verwendeten kryptographischen Algorithmen und Protokollen ab. Implementierer müssen:
-
Starke Algorithmen verwenden: Nur kryptographische Algorithmen verwenden, die als sicher gelten
- Veraltete Algorithmen vermeiden (z.B. DES mit kurzen Schlüsseln)
- Algorithmen mit Sicherheitsüberprüfungen bevorzugen (z.B. AES, SHA-2)
-
Ordnungsgemäße Schlüsselverwaltung: Kryptographische Schlüssel müssen:
- Mit ausreichender Zufälligkeit generiert werden
- Vor Offenlegung geschützt werden
- Regelmäßig geändert werden
- Sicher verteilt werden
-
Schwache Schlüssel vermeiden: Einige Algorithmen haben schwache Schlüssel, die vermieden werden sollten
-
Schlüssellänge berücksichtigen: Schlüssellängen verwenden, die der Sensibilität der Daten angemessen sind
9.6. Zugriffskontroll-Überlegungen
Zugriffskontrolle ist für die Sicherheit von SNMP wesentlich. Die Architektur sieht Access Control Models vor, die bestimmen, ob Operationen erlaubt werden sollten.
Überlegungen zur Zugriffskontrolle umfassen:
- Prinzip der geringsten Privilegien: Benutzern sollte nur der minimal erforderliche Zugriff gewährt werden
- Aufgabentrennung: Verschiedene Benutzer sollten unterschiedliche Rollen haben
- Regelmäßige Überprüfung: Zugriffskontrollrichtlinien sollten regelmäßig überprüft werden
- Audit-Protokollierung: Zugriffsversuche (insbesondere Fehler) sollten protokolliert werden
9.7. Konfigurationssicherheit
Die Sicherheit einer SNMP-Bereitstellung hängt von der ordnungsgemäßen Konfiguration ab:
- Sichere Erstkonfiguration: Anfängliche Sicherheitsparameter müssen sicher konfiguriert werden
- Sichere Fernkonfiguration: Bei Fernkonfiguration sichere Kommunikation verwenden
- Konfigurationsdaten schützen: Sicherheitsparameter müssen vor unbefugtem Zugriff geschützt werden
- Regelmäßige Aktualisierungen: Sicherheitskonfigurationen sollten regelmäßig überprüft und aktualisiert werden
9.8. snmpEngineID-Überlegungen
Die snmpEngineID ist kritisch für die SNMP-Sicherheit:
-
Eindeutigkeit: Jede SNMP-Engine muss eine eindeutige snmpEngineID haben
- Doppelte snmpEngineIDs können zu Sicherheitslücken führen
-
Persistenz: Die snmpEngineID sollte über Neustarts hinweg konstant bleiben
- Änderungen an der snmpEngineID können Sicherheitsassoziationen ungültig machen
-
Generierung: Bei der Generierung von snmpEngineIDs muss darauf geachtet werden, Eindeutigkeit zu gewährleisten
- Verwenden Sie die empfohlenen Formate (basierend auf Unternehmensnummer und MAC/IP-Adresse)
-
Vertraulichkeit: Die snmpEngineID kann Informationen über das Gerät offenlegen
- Berücksichtigen Sie dies bei der Wahl des Formats
9.9. Kontext-Überlegungen
Kontexte ermöglichen es einer einzelnen SNMP-Engine, mehrere Geräte oder Subsysteme darzustellen. Sicherheitsüberlegungen umfassen:
- Zugriffskontrolle: Zugriffskontrolle muss pro Kontext angewendet werden
- Isolation: Kontexte sollten ordnungsgemäß voneinander isoliert sein
- Kontextnamen: Kontextnamen können Informationen über das System offenlegen
9.10. Proxy-Überlegungen
SNMP-Proxies führen zusätzliche Sicherheitsüberlegungen ein:
- Vertrauen: Der Proxy muss sowohl vom Manager als auch vom Agenten vertraut werden
- Sicherheitsübersetzung: Bei der Übersetzung zwischen Sicherheitsmodellen kann die Sicherheit reduziert werden
- Protokollierung: Proxies sollten alle weitergeleiteten Nachrichten protokollieren
- Zugriffskontrolle: Proxies sollten Zugriffskontrolle auf weitergeleitete Nachrichten anwenden
9.11. Implementierungssicherheit
Implementierer müssen Sicherheit während der gesamten Implementierung berücksichtigen:
- Pufferüberläufe: Alle Eingaben sorgfältig validieren, um Pufferüberläufe zu verhindern
- Eingabevalidierung: Alle Nachrichtenkomponenten validieren
- Fehlerbehandlung: Fehlermeldungen sollten keine sensiblen Informationen preisgeben
- Timing-Angriffe: Auf Timing-Seitenkanäle achten
- Ressourcengrenzen: Grenzen implementieren, um Ressourcenerschöpfung zu verhindern
9.12. Bereitstellungssicherheit
Bei der Bereitstellung von SNMP:
- Netzwerksicherheit: Netzwerkebenen-Sicherheit (Firewalls, VPNs) nach Bedarf verwenden
- Physische Sicherheit: Geräte mit SNMP-Agenten schützen
- Regelmäßige Aktualisierungen: SNMP-Implementierungen auf dem neuesten Stand halten
- Überwachung: Sicherheitsereignisse überwachen
- Vorfallreaktion: Verfahren zur Reaktion auf Sicherheitsvorfälle haben
9.13. Community-Strings (SNMPv1 und SNMPv2c)
Bei Verwendung von SNMPv1 oder SNMPv2c:
-
Schwäche: Community-Strings bieten minimale Sicherheit
- Sie werden im Klartext gesendet
- Sie bieten keine Authentifizierung, Integrität oder Vertraulichkeit
-
Migration: So bald wie möglich zu SNMPv3 migrieren
-
Wenn Community-Strings verwendet werden müssen:
- Starke, zufällige Community-Strings verwenden
- Sie regelmäßig ändern
- Ihre Verwendung auf vertrauenswürdige Netzwerke beschränken
- Netzwerkebenen-Sicherheit verwenden (VPNs, Firewalls)
9.14. Empfehlungen
Für maximale Sicherheit:
- SNMPv3 verwenden: SNMPv3 mit dem User-based Security Model bietet starke Sicherheit
- Authentifizierung und Vertraulichkeit verwenden: Sowohl Authentifizierung als auch Vertraulichkeit aktivieren (authPriv)
- Starke Algorithmen: Starke kryptographische Algorithmen verwenden (SHA-2, AES)
- Starke Schlüssel: Starke Passwörter/Schlüssel verwenden und regelmäßig ändern
- Geringste Privilegien: Das Prinzip der geringsten Privilegien bei der Zugriffskontrolle anwenden
- Verteidigung in der Tiefe: Mehrere Sicherheitsschichten verwenden
- Regelmäßige Überprüfung: Sicherheitskonfigurationen und Protokolle regelmäßig überprüfen
- Auf dem Laufenden bleiben: Sicherheitsmitteilungen überwachen und Implementierungen aktualisieren