Zum Hauptinhalt springen

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:

  1. Maskerade: Eine nicht autorisierte Entität, die die Identität einer autorisierten Entität annimmt

    • Adressiert durch Authentifizierung
  2. Informationsänderung: Nicht autorisierte Änderung von Nachrichten während der Übertragung

    • Adressiert durch Nachrichtenintegritätsprüfung (Authentifizierung)
  3. Nachrichtenstromänderung: Neuordnung, Verzögerung oder Wiedergabe von Nachrichten

    • Adressiert durch Aktualitätsprüfung und Nachrichtenkennungen
  4. Offenlegung: Nicht autorisierter Zugriff auf Nachrichteninhalte

    • Adressiert durch Verschlüsselung (Vertraulichkeit)
  5. 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:

  1. Datenintegrität: Stellt sicher, dass Nachrichten nicht verändert wurden

    • Bereitgestellt durch Authentifizierungsprotokolle (z.B. HMAC-MD5-96, HMAC-SHA-96)
  2. Datenursprungsauthentifizierung: Bestätigt die Identität des Absenders

    • Bereitgestellt durch Authentifizierungsprotokolle
  3. Nachrichtenwiedergabeschutz: Verhindert die Wiedergabe alter Nachrichten

    • Bereitgestellt durch Aktualitätsprüfung unter Verwendung von Engine-Boots und Engine-Zeit
  4. Datenvertraulichkeit: Schützt Nachrichteninhalte vor Offenlegung

    • Bereitgestellt durch Vertraulichkeitsprotokolle (z.B. CBC-DES, CBC-AES)
  5. 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:

  1. Verkehrsanalyse: Ableitung von Informationen aus Nachrichtenmustern

    • Selbst bei Verschlüsselung kann ein Beobachter sehen, dass Kommunikation stattfindet und Muster analysieren
  2. 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:

  1. Authentifizierung: Überprüfung der Identität des Absenders
  2. Vertraulichkeit: Schutz der Nachrichteninhalte vor Offenlegung
  3. Aktualität: Erkennung wiedergegebener oder verzögerter Nachrichten
  4. 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:

  1. 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)
  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
  3. Schwache Schlüssel vermeiden: Einige Algorithmen haben schwache Schlüssel, die vermieden werden sollten

  4. 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:

  1. Prinzip der geringsten Privilegien: Benutzern sollte nur der minimal erforderliche Zugriff gewährt werden
  2. Aufgabentrennung: Verschiedene Benutzer sollten unterschiedliche Rollen haben
  3. Regelmäßige Überprüfung: Zugriffskontrollrichtlinien sollten regelmäßig überprüft werden
  4. Audit-Protokollierung: Zugriffsversuche (insbesondere Fehler) sollten protokolliert werden

9.7. Konfigurationssicherheit​

Die Sicherheit einer SNMP-Bereitstellung hängt von der ordnungsgemäßen Konfiguration ab:

  1. Sichere Erstkonfiguration: Anfängliche Sicherheitsparameter müssen sicher konfiguriert werden
  2. Sichere Fernkonfiguration: Bei Fernkonfiguration sichere Kommunikation verwenden
  3. Konfigurationsdaten schützen: Sicherheitsparameter müssen vor unbefugtem Zugriff geschützt werden
  4. 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:

  1. Eindeutigkeit: Jede SNMP-Engine muss eine eindeutige snmpEngineID haben

    • Doppelte snmpEngineIDs können zu Sicherheitslücken führen
  2. Persistenz: Die snmpEngineID sollte über Neustarts hinweg konstant bleiben

    • Änderungen an der snmpEngineID können Sicherheitsassoziationen ungültig machen
  3. 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)
  4. 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:

  1. Zugriffskontrolle: Zugriffskontrolle muss pro Kontext angewendet werden
  2. Isolation: Kontexte sollten ordnungsgemäß voneinander isoliert sein
  3. Kontextnamen: Kontextnamen können Informationen über das System offenlegen

9.10. Proxy-Überlegungen​

SNMP-Proxies führen zusätzliche Sicherheitsüberlegungen ein:

  1. Vertrauen: Der Proxy muss sowohl vom Manager als auch vom Agenten vertraut werden
  2. Sicherheitsübersetzung: Bei der Übersetzung zwischen Sicherheitsmodellen kann die Sicherheit reduziert werden
  3. Protokollierung: Proxies sollten alle weitergeleiteten Nachrichten protokollieren
  4. Zugriffskontrolle: Proxies sollten Zugriffskontrolle auf weitergeleitete Nachrichten anwenden

9.11. Implementierungssicherheit​

Implementierer müssen Sicherheit während der gesamten Implementierung berücksichtigen:

  1. Pufferüberläufe: Alle Eingaben sorgfältig validieren, um Pufferüberläufe zu verhindern
  2. Eingabevalidierung: Alle Nachrichtenkomponenten validieren
  3. Fehlerbehandlung: Fehlermeldungen sollten keine sensiblen Informationen preisgeben
  4. Timing-Angriffe: Auf Timing-Seitenkanäle achten
  5. Ressourcengrenzen: Grenzen implementieren, um Ressourcenerschöpfung zu verhindern

9.12. Bereitstellungssicherheit​

Bei der Bereitstellung von SNMP:

  1. Netzwerksicherheit: Netzwerkebenen-Sicherheit (Firewalls, VPNs) nach Bedarf verwenden
  2. Physische Sicherheit: Geräte mit SNMP-Agenten schützen
  3. Regelmäßige Aktualisierungen: SNMP-Implementierungen auf dem neuesten Stand halten
  4. Überwachung: Sicherheitsereignisse überwachen
  5. Vorfallreaktion: Verfahren zur Reaktion auf Sicherheitsvorfälle haben

9.13. Community-Strings (SNMPv1 und SNMPv2c)​

Bei Verwendung von SNMPv1 oder SNMPv2c:

  1. Schwäche: Community-Strings bieten minimale Sicherheit

    • Sie werden im Klartext gesendet
    • Sie bieten keine Authentifizierung, Integrität oder Vertraulichkeit
  2. Migration: So bald wie möglich zu SNMPv3 migrieren

  3. 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:

  1. SNMPv3 verwenden: SNMPv3 mit dem User-based Security Model bietet starke Sicherheit
  2. Authentifizierung und Vertraulichkeit verwenden: Sowohl Authentifizierung als auch Vertraulichkeit aktivieren (authPriv)
  3. Starke Algorithmen: Starke kryptographische Algorithmen verwenden (SHA-2, AES)
  4. Starke Schlüssel: Starke Passwörter/Schlüssel verwenden und regelmäßig ändern
  5. Geringste Privilegien: Das Prinzip der geringsten Privilegien bei der Zugriffskontrolle anwenden
  6. Verteidigung in der Tiefe: Mehrere Sicherheitsschichten verwenden
  7. Regelmäßige Überprüfung: Sicherheitskonfigurationen und Protokolle regelmäßig überprüfen
  8. Auf dem Laufenden bleiben: Sicherheitsmitteilungen überwachen und Implementierungen aktualisieren