Gegenmaßnahmen

Gegenmaßnahmen sollen Bedrohungen entgegenwirken und bekämpfen, und somit das System schützen und stabil halten. Bei der Analyse eines Systems sollte zunächst untersucht werden, welche Gegenmaßnahmen aktuell im Einsatz sind. Diese Phase nennt man Identifikation von Gegenmaßnahmen.

Sinn und Zweck der Identifikation von Gegenmaßnahmen ist es, herauszufinden, ob wichtige Bedrohungen bereits bekämpft werden und ob dieser Schutz ausreichend ist, oder verstärkt werden soll. Anhand des Ergebnisses der Bedrohungsanalyse sollte zu jeder Bedrohung untersucht werden, ob passende Maßnahmen vorhanden sind. Wenn kein adäquater Schutz vorhanden ist, ist dies als Schwachstelle (Vulnerability) zu definieren. Anhand der bereits vorhandenen Kategorisierung Bedrohungen (z.B. nach STRIDE oder ASF) ist es einfacher passende Gegenmaßnahmen zu finden. Dazu existieren Checklisten, die dabei helfen sollen.

 

Gegenmaßnahmen für ASF-Bedrohungskategorien:

ASF Bedrohungen und Gegenmaßnahmen

Bedrohungs-Kategorie Gegenmaßnahme
Authentifizierung
  • Credentials und Authenisierungs-Token sind geschützt durch Verschlüsselung während der Übertragung und bei der Speicherung
  • Übertragungsprotokolle sind robust gegenüber Brute-Force-, Dictionary- und Replay-Angriffen
  • Starke Passwort-Policies liegen vor
  • Trusted Server-Authentication wird verwendet anstatt SQL-Authentifizierung
  • Passwörter werden mit Verwendung von Salted-Hashes gespeichert – anstatt mit einfachen Hashes ohne Salt
  • Bei Passwort-Reset werden keine Passwort-Hilfen angeboten oder gar Benutzernamen
  • Account Lockouts resultieren nicht in einer DNS-Attacke
Autorisierung
  • Zugriffskontrolllisten (ACLs) werden verwendet um den Zugriff auf Ressourcen zu beschränken
  • Ein Rollen-basiertes Berechtigungssystem wird verwendet, um den Zugriff auf spezifische Funktionalitäten zu steuern
  • Das System folgt dem „principle of least privilege“ für Benutzer- und Service-Accounts
  • Die Trennung der Privilegien ist korrekt konfiguriert innerhalb der Präsentations-, Business- und Datenzugriffsschicht
Konfigurations-Management
  • Prozesse werden mit niedrigen Privillegien ausgeführt – ohne Adminrechte
  • Auditing und Logging aller Administrationstätigkeiten ist aktiv
  • Zugriff auf Konfigurationsdateien und Administrationskonsolen ist beschränkt auf Administratoren
Datenschutz bei Speicherung und Übertragung
  • Für die Verschlüsselung werden kryptographische Standards verwendet und adäquate Schlüsselgrößen – keine selbstgebauten Krypto-Algorithmen
  • Hashed message authentication codes (HMACs) werden verwendet um die Datenintegrität sicherzustellen
  • Geheimes (z.B. Schlüssel und vertrauliche Daten) werden kryptografisch geschützt während Transport und Speicherung
  • Built-in Möglichkeiten werden verwendet um Schlüssel zu speichern (Keystores, Truststores)
  • Keine Credentials und sensible Daten werden unverschlüsselt übertragen
Eingabevalidierung, Validierung von Daten und Parametern
  • Validierung von Datentyp, Format, Länge und Gültigkeitsbereich ist aktiv
  • Alle Daten, die vom Client (Browser) zum System gesendet werden, werden validiert
  • Keine Sicherheitsrelevanten Entscheidungen werden aufgrund von clientseitigen Übergabeparametern getroffen, da diese manipuliert werden können
  • Filterung der Eingabedaten via Whitelist-Validierung wird verwendet
  • Ausgehende Daten werden encodiert
Fehlerhandling und Exception-Management
  • Alle Exceptions werden auf strukturierte Weise behandelt
  • Privilegien werden im Fehlerfall zurückgesetzt auf ein adäquates Level
  • Fehlermeldungen werden vor der Präsentation bereinigt damit keine sensiblen Informationen an den Angreifer geliefert werden
User- und Session-Management
  • Keine sensiblen Informationen werden im Klartext in Cookies gespeichert
  • Der Inhalt von Authentisierungs-Cookies ist verschlüsselt
  • Cookies sind so konfiguriert, dass ihre Gültigkeit erlischt
  • Sessions sind resistent gegenüber Replay-Angriffen
  • Sicher Kommunikationskanäle werden verwendet um Authentisierungs-Cookies zu schützen (Secure-only Modus)
  • Benutzer müssen sich bei kritischen Operationen re-authentifizieren
  • Die Gültigkeit einer Sessions erlischt beim Logout
Auditing und Logging
  • Es werden keine sensiblen Informationen geloggt (Passwörter und PII – „personally identifiable information“)
  • Zugriff auf Logs ist beschränkt (z.B. über ACLs)
  • Integritätskontrollen sind aktiv, um unleugbares Logging zu erreichen (non-repudiation), z.b. durch Verwendung von Signaturen
  • Logfiles fürs Audit sollen Logs zu sensible Operationen und wichtige Ereignisse enthalten
  • Auditing und Logging ist aktiv auf alle Schichten und allen Servern

 

Gegenmaßnahmen für STRIDE-Bedrohungskategorien:

STRIDE Bedrohungen und Gegenmaßnamen

Bedrohungs-Kategorie Gegenmaßnahme
Spoofing – (Verschleierung)
  • Geeignete Authentifikation
  • Schutz von sensiblen Daten
  • Kein Speichern von Geheimnissen
Tampering – (Verfälschung)
  • Adäquate Autorisierung
  • Verwenden von Hashes
  • Verwenden von Prüfsummen (MAC)
  • Verwenden von Signaturen
  • Manipulationssichere Protokolle
Repudiation – (Leugbarkeit)
  • Verwenden von Signaturen
  • Verwenden von Timestamps
  • Audit trails
Information disclosure – (Enthüllung von Geheimnissen)
  • Adäquate Autorisierung
  • Verwenden von kryptografischen Protokollen
  • Verschlüsselung
  • Schützen von Geheimnissen
  • Kein Speichern von Geheimnissen
Denial of service – (Dienstverweigerung)
  • Adäquate Authentifizierung
  • Adäquate Autorisierung
  • Filterung
  • Einbauen von Verzögerungen (Throttling)
  • Servicequalität
Elevation of privilege – (Erhöhen der Privilegien)
  • Principle of least privilege

 

Bedrohungsprofil

Sind die Bedrohungen eines Systems und ihre entsprechenden Gegenmaßnahmen identifiziert, ist es möglich davon ein Bedrohungsprofil daraus abzuleiten. Folgende Kriterien sollten dabei berücksichtigt werden.

Bedrohungsart Beschreibung
Ungeschützte Bedrohungen Bedrohungen zu denen es keine Gegenmaßnahmen gibt und eine Schwachstelle darstellen können voll ausgenutzt werden und einen Angriff verursachen.
Teilweise geschützte Bedrohungen Bedrohungen die teilweise geschützt oder abgemildert werden können von einer oder mehreren Gegenmaßnamen, stellen eine Schwachstelle dar, die zumindest teilweise ausgenutzt werden kann. Es besteht ein limitiertes Risiko eines Angriffs.
Geschützte Bedrohungen Diese Bedrohungen haben eine adäquate Gegenmaßnahme, sind somit keine Schwachstelle und stellen kein Risiko für einen Angriff dar.

 

Strategien zu Schutzmaßnahmen

Ziel des Risikomanagements ist es, Auswirkungen zu begrenzen, die durch Ausnutzung einer Schwachstelle der Anwendung erfolgen kann. Dies kann durch eine Risikominderungs-Strategie erreicht werden, die als Reaktion auf eine erkannte Bedrohung bereitgestellt werden kann.

Generell gibt es 5 Optionen mit einer Schwachstelle umzugehen:

  1. Nichts tun: z.B. auf das Beste hoffen
  2. Risiko-Aufklärung: z.B. die Benutzer informieren und warnen, welches Risiko besteht
  3. Risikominderung: z.B. Gegenmaßnahmen einleiten
  4. Akzeptieren des Risikos: z.B. nach Evaluierung der Auswirkungen sich dafür entscheiden, das Risiko in Kauf zu nehmen
  5. Risiko weitergeben: z.B. durch vertragliche Regelung oder Versicherung
  6. Risiko beenden: z.B. durch Abschalten des Systems oder der Schnittstelle

 

Die Entscheidung, welche Strategie anzuwenden ist, hängt im Wesentlichen davon ab, welche Auswirkungen eine Bedrohung haben kann, sowie von der Auftrittswahrscheinlichkeit und von den Kosten die es mit sich bringt, ein Risiko weiterzugeben oder zu vermeiden (Kosten oder Verluste durch Redesign). Somit basiert die Entscheidung auf dem jeweiligen Risiko, das eine Bedrohung gegenüber einem System darstellt. Eine gewählte Strategie mindert dabei nicht die Bedrohung selbst, sondern nur das Risiko, das es für das System darstellt. Letztendlich muss das Gesamtrisiko abgewogen werden, ab wann ein Risiko gegenüber dem fachlichen Nutzen nicht mehr vertretbar ist.

Weiter zum 9. Teil