- 1. Teil: Einleitung
- 2. Teil: Analyse der Anwendung
- 3. Teil: Datenfluss-Diagramm
- 4. Teil: Ermittlung und Einstufung von Bedrohungen
- 5. Teil: Security Controls – Maßnahmen zur Bedrohungsabwehr
- 6. Teil: Bedrohungsanalyse – Threat Analysis
- 7. Teil: Einstufung von Bedrohungen – Ranking of Threats
- 8. Teil: Gegenmaßnahmen
- 9. Teil: Zusammenfassung
Table of Contents
Ermittlung und Einstufung von Bedrohungen
Kategorien von Bedrohungen
Um Bedrohungen besser bestimmen zu können, hilft es sie nach Kategorien einzuordnen. Es sind dabei verschiedene Muster bzw. Klassifizierungen von Kategorien bekannt, von denen einige im Folgenden vorgestellt werden.
STRIDE
Eine der Klassifizierungen von Bedrohungen heißt STRIDE, was für die Anfangsbuchstaben der Kategorien steht. Die Kategorien orientieren sich an den Zielen eines Angreifers:
- Spoofing
- Tampering
- Repudiation
- Information Disclosure
- Denial of Service
- Elevation of Privilege
Typ | Erklärung | Security Control |
Spoofing – (Verschleierung) | Methode zur Verschleierung der eigenen Identität. Beispielsweise wird versucht den Account eines anderen Benutzers zu übernehmen und sich als er auszugeben, oder einfacher: die eigene Absenderangabe zu fälschen. | Authentication (Authentifizierung) |
Tampering – (Verfälschung) | Bösartige Veränderung/Modifikation von Daten, z.B. in einer Datenbank oder in einem Netzwerk | Integrity (Integrität) |
Repudiation – (Leugbarkeit) | Bösartige Operationen in einem System, das keine Möglichkeiten bietet, diese zu bemerken und zu protokollieren. | Non-Repudiation (Protokolle für die Nachweisbarkeit; Unleugbarkeit des Ursprungs) |
Information disclosure – (Enthüllung von Geheimnissen) | Lesen von Informationen für die keine Berechtigung besteht | Confidentiality (Geheimhaltung) |
Denial of service – (Dienstverweigerung) | Überlastung von Systemen, so dass diese für den normalen Betrieb nicht mehr zu Verfügung stehen | Availability (Verfügbarkeit) |
Elevation of privilege – (Erhöhen der Privilegien) | Erweitern von Zugriffsrechten, um unautorisierte Informationen zu erlangen oder um ein System zu kompromittieren. | Authorization (Autorisierung) |
Bedrohungen können durch das STRIDE-Modell normalerweise einer dieser Kategorien zugeordnet werden. Dadurch ist eine Kategorisierung möglich, durch die die Bedrohungen strategisch bekämpft werden können, indem Standard-Strategien angewandt werden beispielsweise bei der Authentifizierung und der Autorisierung.
ASF
Eine weitere Klassifizierung von Bedrohungen wurde mit ASF (Application Security Frame) zusammengestellt. ASF verwendet folgende Kategorien, um Sicherheits-Schwachstellen zu sortieren und organisieren.
- Eingabe-Validierung und Daten-Validierung
- Authentifizierung
- Autorisierung
- Konfigurations-Management
- Sensible Daten
- Session Management
- Kryptographie
- Exception Management
- Auditing und Logging
Mit Hilfe dieser 9 Kategorien lassen sich viele der Aktivitäten, Schwachstellen und Gegenmaßnahmen eingliedern, um in die Fülle der Themen eine Struktur zu bekommen.
Beschreibung der ASF-Kategorien
Kategorie | Beschreibung |
Eingabe-Validierung und Daten-Validierung | Woher weiß man, dass die Eingabedaten, die die Anwendung entgegennimmt, valide und sicher sind? Eingabe-Validierung bezeichnet wie die Applikation Eingabedaten filtert, umwandelt oder ablehnt, bevor sie zur weiteren Verarbeitung verwendet werden. Im schlimmsten Fall können Eingabedaten Angriffsvektoren sein, die Schadcode ausführen. Eingabedaten betreffen die Entry-Points. Daten, die das System verlassen, betreffen die Exit-Points. Auch diese müssen validiert werden, wenn den Datenquellen nicht vertraut werden kann. |
Authentifizierung | Wer sind sie? Authentifizierung ist der Prozess, wo eine Entität die Identität einer anderen Entität nachweist, üblicherweise durch Credentials wie Benutzername und Passwort. |
Autorisierung | Was dürfen sie? Autorisierung regelt, für welche Operationen und auf welche Daten ein Benutzer bzw. eine Entität in einer Applikation berechtigt ist. |
Konfigurations-Management | Wie wird die Anwendung betrieben und verwaltet? Das Konfigurations-Management beinhaltet welche Ressourcen zu verwenden sind und wie diese gesichert werden. |
Sensible Daten | Wie behandelt die Anwendung sensible Daten? Hier wird zugeordnet, wie sensible Daten geschützt werden, entweder im Speicher, oder bei der Übertragung oder beim Persistieren. |
Session Management | Wie geht die Anwendung mit den Benutzer-Sessions um und wie werden sie geschützt? Eine Session beinhaltet eine ganze Serie von Interaktionen zwischen einem Benutzer und der Web-Anwendung. |
Kryptographie | Wie werden Geheimnisse bewahrt und geschützt? Thema Vertraulichkeit Wie wird sichergestellt, dass Daten nicht manipuliert werden (Integrität)? Sind die kryptographischen Algorithmen ausreichend sicher? |
Exception Management | Wie werden Fehler in der Anwendung behandelt? Wie viel soll preisgegeben werden? Werden benutzerfreundliche Meldungen dem Aufrufer angezeigt? Werden wertvolle Informationen dem Aufrufer übergeben? Bleibt die Anwendung in einem sicheren Zustand? |
Auditing und Logging | Wer hat wann was getan? Auditing und Logging behandelt wie die Applikation sicherheitsrelevante Aktionen speichert. |
Schwachstellen katalogisiert durch ASF
Kategorie | Schwachstellen |
Eingabe-Validierung und Daten-Validierung |
|
Authentifizierung |
|
Autorisierung |
|
Konfigurations-Management |
|
Sensible Daten |
|
Session Management |
|
Kryptographie |
|
Exception Management |
|
Auditing und Logging |
|