8. Security Engineering
Transcription
8. Security Engineering
8. Security Engineering 1 8. Security Engineering Ziel Entwickeln eines Systems, welches geforderte Sicherheitsanforderungen erfüllt und auf Angriffe geeignet reagiert. Bisher Allgemeine Sicherheitswerkzeuge werden auf fertige Softwaresysteme gesetzt Keine Integration von Sicherheit in den (UML)-Softwareentwicklungsprozess Problem Sicherheitsanforderungen werden nicht ausreichend erfüllt, unsichere Software. Sicherheit ist ein wichtiger Aspekt heutiger IT-Systeme, wird jedoch nicht dementsprechend bei der Entwicklung von IT-Systemen berücksichtigt. Es werden auf fertige IT-Systeme allgemeine Sicherheitswerkzeuge gesetzt, die die speziellen Sicherheitsanforderungen individueller Anwendungen nur unzureichend realisieren. Dadurch entstehen Sicherheitslücken und unsichere Systeme. Security Engineering befasst sich mit dem Entwicklungsprozess zur Konstruktion sicherer Systeme. Security Engineering ist eine methodisch noch nicht ausgearbeitete Disziplin, die im Fokus aktueller Forschungsarbeiten liegt. Wir stellen im folgenden einige Konzepte vor, die Sicherheitsanforderungen in den Softwareentwicklungsprozess integrieren. 2 8. Security Engineering Methoden zur Konstruktion sicherer Systeme sind bisher kaum entwickelt, da Sicherheit eine nicht-funktionale Anforderung ist und schwer zu spezifizieren und bewerten ist. Designer von Softwaresystemen keine Sicherheitsexperten sind Kunde bezahlt lieber für Funktionalität, da das Bewusstsein für Sicherheit noch nicht richtig ausgeprägt ist. Durch Termindruck bei der Softwareentwicklung werden Sicherheitsmechanismen vernachlässigt. Es gibt mehrere Gründe, warum Methoden zur Konstruktion sicherer Systeme bisher kaum entwickelt wurden. Einige dieser Gründe zeigt die Folie. 3 8. Security Engineering Allgemeine Prinzipien beim Design sicherer Systeme Principle of Least Privilege (minimale Rechte) Principle of Fail-Safe Default (Verbote sind Standard) Principle of Economy of Mechanism (möglichst einfach) Principle of Complete Mediation (alle Zugriffe werden geprüft) Principle of Open Design (Sicherheit hängt nicht von Geheimhaltung ab) Principle of Separation of Privelege (Rechte werden aufgrund mehrerer Bedingungen gewährt) Principle of Psychological Acceptability (Sicherheit soll keine Arbeit erschweren) Es lassen sich allgemeine Prinzipien aufstellen, die bei der Konstruktion und Implementierung von sicheren Anwendungen zu beachten sind. Die Folie zeigt die Prinzipien im Überblick, auf den nächsten Folien diskutieren wir sie im Detail. 4 8. Security Engineering Principle of Least Privilege Einem Subjekt soll nur die Privilegien bekommen, welche für die Ausführung einer Aufgabe notwendig sind. Müssen einem Subjekt für eine Aufgabe zusätzlich Rechte gewährt werden, sollen diese sofort nach der Aufgabe wieder entzogen werden. Beispiel: Wenn ein Subjekt etwas an eine Datei anhängen soll, so sollte das append-Recht und nicht das write-Recht auf die Datei gegeben werden. Beispiel: Benutzer nicht unter root laufen lassen. Das Principle of Least Privilege verlangt, dass einem Subjekt nur die Privilegien gegeben werden sollen, die das Subjekt zur Ausführung seiner Aufgabe benötigt. Wenn das Subjekt Privilegien nicht benötigt, sollten ihm diese auch nicht gegeben werden. Wenn eine bestimmte Aktion es erfordert, dem Subjekt zusätzliche Privilegien zu gewähren, so sollten diese zusätzlichen Rechte sofort wieder entzogen werden, nachdem das Subjekt die Aktion durchgeführt hat. Wenn ein Subjekt beispielsweise Daten an Dateien hängen soll, so reicht das append-Recht und es muss nicht das write-Recht gewährt werden, mit dem er die Datei beliebig modifizieren könnte. 5 8. Security Engineering Principle of Fail-Safe Defaults Wenn ein Subjekt nicht explizit Zugriff auf ein Objekt bekommt, ist der Zugriff auf das Objekt verboten. Damit ist der Default-Zugriff auf Objekte eine Verbot. Beispiel: Auf neu erzeugte Dateien eines Benutzers kann zunächst nur der Benutzer selbst zugreifen. Nur wenn der Benutzer explizit Zugriffsrechte für andere Benutzer gibt, ist der Zugriff für diese Benutzer erlaubt. Das Principle of Fail-Safe Defaults besagt, wie Privilegien an neu erzeugte Objekte bzw. Subjekte vergeben werden sollten. Es besagt, dass einem Subjekt keine Privilegien an einem Objekt gewährt werden sollten, bis dies nicht explizit für das Subjekt und das Objekt geschieht. Damit erfordert das Prinzip, dass auf Objekte standardmäßig nicht zugegriffen werden kann. 6 8. Security Engineering Principle of Economy of Mechanism Sicherheitsmechanismen sollen so einfach wie möglich sein. Einfaches Design und Implementierung minimiert Fehler und vereinfacht das Testen. Annahmen über komplexe Systeme und ihre Umgebung können bei Nicht-Erfüllung zu Sicherheitsproblemen führen. Beispiel: finger liefert Informationen über einen Benutzer im System. Client-Systeme nehmen an, dass die Antwort des finger-Servers ein bestimmtes Format hat. Angreifer schreibt Server, der einen unendlichen Antwortstrom liefert, um einen Denial-of-Service Angriff durchzuführen. Das Principle of Economy of Mechanism vereinfacht das Design und die Implementierung von Sicherheitsmechanismen. Es fordert, dass Sicherheitsmechanismen so einfach wie möglich sein sollten. Wenn das Design und die Implementierung des Mechanismus einfach sind, verringert dies die Möglichkeiten von Fehlern. Außerdem wird der Testprozess weniger komplex, da weniger Testfälle benötigt werden. Komplexe Mechanismen machen oft Annahmen über das System und die Umgebung, in der sie eingesetzt werden. Wenn diese Annahmen verletzt werden, kann dies zu Sicherheitsproblemen führen. Ein Beispiel ist das fingerProtokoll zur Abfrage von Informationen über Benutzer. Client Programme nehmen an, dass die Antwort des finger-Programms ein bestimmtes Format hat, z.B. das die Antwort endlich ist. Diese falsche Annahme des Clients könnte ein Angreifer ausnutzen und einen unendlichen Antwortstrom erzeugen, um beispielsweise LogDateien und Platten zu füllen. Dies ist ein Beispiel für eine falsche Annahme bzgl. der Eingabe das Clients. 7 8. Security Engineering Principle of Complete Mediation Alle Zugriffe auf Objekte werden geprüft bevor sie erlaubt werden. Beispiel: Bevor ein Lese-Zugriff auf eine Datei erfolgt, prüft das Betriebssystem, ob das Subjekt das Leserecht hat. Bei jedem weiteren Lese-Zugriff muss das Betriebsystem wieder prüfen, ob die Rechte immer noch existieren. Wird in vielen Systemen nicht durchgeführt, z.B. das Access Token in Windows XP, File-Deskriptor in UNIX. Das Principle of Complete Mediation erfordert, dass alle Zugriffe auf Objekte geprüft werden müssen. Wenn ein Subjekt beispielsweise eine Datei lesen möchte, muss das Betriebssystem diesen Zugriff prüfen. Dazu ermittelt es, ob das Subjekt die Leserechte auf der Datei hat. Ist dies der Fall, kann das Subjekt die Datei lesen. Möchte das Subjekt die Datei erneut lesen, muss das System (dem Prinzip folgend) erneut überprüfen ob der Lesezugriff immer noch erlaubt ist. Die meisten Systeme machen diese Prüfung aus Performanzgründen jedoch nicht (z.B. UNIX und Windows). Sie merken sich das Ergebnis der ersten Prüfung und erlauben den Zugriff basierend auf diesem Ergebnis. 8 8. Security Engineering Principle of Open Design Sicherheit eines Mechanismus sollte nicht von der Geheimhaltung der Funktionsweise des Mechanismus oder seiner Implementierung abhängen (also keine security through obscurity) Beispiel: Kryptographie-Software: Algorithmen zur Ver- und Entschlüsselung sollten öffentlich sein, nur die Schlüssel müssen geheim gehalten werden. Das Principle of Open Design hat den Hintergrund, dass Komplexität nicht die Sicherheit erhöht. Das Prinzip fordert daher, dass die Sicherheit des Mechanismus nicht von der Geheimhaltung des Designs oder der Implementierung des Sicherheitsmechanismus abhängen soll. Es besteht immer die Gefahr, dass Angreifer auf bestimmten Wegen an diese Informationen kommen und somit der Mechanismus unbrauchbar wird. Dieses Prinzip trifft insbesondere auf kryptographische Software und Systeme zu. Die Erfahrung hat gezeigt, dass die Geheimhaltung von kryptographsichen Algorithmen keineswegs die Sicherheit erhöht. Die Geheimhaltung von kryptographsichen Schlüsseln oder Passwörtern verletzt das Prinzip nicht, da dies keine Algorithmen sind. Kommerzielle Software und Urheberrechte komplizieren die Einhaltung dieses Prinzips, da Firmen nicht wollen, dass ihre Produkte einfach von Konkurrenten benutzt und kopiert werden können. 9 8. Security Engineering Beispiel: Content Scrambling System (CSS) ist ein kryptographischer Algorithmus zum Kopierschutz für DVDs. Mit lizenziertem DVD-Player und lizenzierter DVD lassen sich die Filme ansehen. DVD-Player hat ein CSS-Entschlüsselungs-Modul und lizenzierte Player-Schlüssel. Mit einem Player-Schlüssel authentifiziert sich der Player gegenüber der eingelegten DVD und erhält den DiscSchlüssel mit die Titel-Schlüssel zum decodieren der DVD entschlüsselt werden können. Ein Beispiel, bei dem die Geheimhaltung eines Verschlüsselungsalgorithmus nicht verhindert hat, dass Verschlüsselungen geknackt wurden, ist das Content Scrambling System (CSS). Das CSS ist ein kryptographischer Algorithmus, der zum Kopierschutz bei DVDs verwendet werden kann. Damit ein DVD-Player dem CSS-Standard genügt, muss er ein CSSEntschlüsselungs-Modul und lizenzierte Player-Keys enthalten. Mit einem Player-Key (es gibt insgesamt 408 davon, die alle zu unterschiedlichen Playern gehören) "identifiziert" sich der Player gegenüber der eingelegten DVD und erhält im Erfolgsfall den (bei jeder CSS-DVD verschiedenen) Disc-Key, um mit dessen Hilfe wiederum die Title-Keys zum decodieren der CSS-geschützten Bereiche zu erlangen. 10 8. Security Engineering DVD hat Authentifizierungs-, Disk- und TitelSchlüssel (KA, KD bzw. KT). Mit dem Titel-Schlüssel wird der Film verschlüsselt. KA hash(KD) E(KD,KP1) Der Titel-Schlüssel wird mit dem bei jeder DVD verschiedenen Disk-Schlüssel verschlüsselt. Ein Block der DVD erhält Kopien von KD, verschlüsselt mit den Player-Schlüsseln KPi und einen Hash des Disk-Schlüssels. ... E(KD,KPn) E(KT,KD) Es gibt 408 Player-Schlüssel für unterschiedliche Player. Eine DVD hat einen Authentifizierungs-, einen Disk- und einen Titel-Schlüssel. Ein Block auf der DVD enthält mehrere Kopien des Disk-Schlüssels, jede mit einem anderen PlayerSchlüssel verschlüsselt. Außerdem enthält der Block einen Hash-Wert des Disk-Schlüssels. 11 8. Security Engineering Abspielen einer DVD 1. DVD wird in DVD-Spieler eingelegt 2. CCS-Modul liest Authentifizierungsschlüssel 3. Entschlüsselung des Disk-Schlüssels mit dem PlayerSchlüssel. 4. Vergleichen mit dem Hash-Wert. 5. Entschlüsseln des Titel-Schlüssels mit dem DiskSchlüssel. 6. Entschlüsseln des Films mit dem Titel-Schlüssel. Wenn eine DVD in den DVD-Player gelegt wird, liest der CSS-Algorithmus zunächst den Authentifizierungsschlüssel. Danach wird der Disk-Schlüssel mit dem Player-Schlüssel des DVD-Players entschlüsselt. Wenn der entschlüsselte Disk-Schlüssel den richtigen Hash-Wert ergibt, wird der Disk-Schlüssel zum Entschlüsseln des Titel-Schlüssels verwendet. Der TitelSchlüssel kann dann zur Entschlüsselung des DVD-Films verwendet werden. 12 8. Security Engineering 1999 gelang es einen Player-Key aus dem Software-DVD-Player der Firma Xing zu extrahierten und einen zum CCS kompatiblen Algorithmus zu entwickeln (DeCSS). 6. Oktober 1999 Veröffentlichung von DeCSS über eine Mailingliste (u.a. Jon Johanson) 26. Oktober 1999 Analyse der CCS-Player-Schlüsselgenerierung 30. Oktober 1999 Alle Player-Schlüssel auf der Mailingliste Im Jahr 1999 gelang es den CSS-Algorithmus zu knacken und einen kompatiblen Algorithmus zu veröffentlichen. Durch eine Analyse des Schlüsselgenerierungsalgorithmus konnten auch alle PLayer-Schlüssel generiert und auf einer Mailingliste veröffentlicht werden. Damit war der CSS-Kopierschutz nutzlos geworden. 13 8. Security Engineering Juristisches Nachspiel: Jon Johanson (damals 15 Jahre) wurde von der Staatsanwaltschaft und der amerikanischen MPAA (Motion Picture Association of America) auf zwei Jahre Gefängnis und Geldstrafe verklagt. 2002 Freispruch, da 1. er nur die Benutzeroberfläche zu DeCSS geschrieben hatte (der eigentliche Algorithmus kam von einem unbekannten Hacke aus Deutschland) und 2. das Umgehen von Kopierschutzmaßnahmen für private Zwecke in Norwegen nicht strafbar ist. 14 8. Security Engineering Principle of Separation of Privilege Rechte werden nicht aufgrund einer einzelnen Bedingung erfüllt. Beispiel: Bank-Checks ab einer Summe von 75.000 Euro müssen von zwei Mitarbeitern genehmigt werden. Beispiel: Im Berkely UNIX-System kann ein Benutzer nur zu root wechseln, wenn er das root-Passwort kennt und in einer speziellen Gruppe (wheel) ist. Das Principle of Speparation of Privilege besagt, dass ein Recht nicht aufgrund der Erfüllung einer einzelnen Bedingung gewährt werden darf. Die Gewährung von Rechten muss somit von mindestens zwei Bedingungen abhängen. 15 8. Security Engineering Principle of Least Psychological Acceptability Der Zugriff auf Ressourcen soll mit Sicherheitsmechanismen nicht schwerer sein als ohne die Mechanismen. In der Praxis heißt das, dass der Aufwand minimal und angemessen sein sollte. Sicherheitswerkzeuge sollten einfach und intuitiv sein. Die Ausgaben sollten klar, verständlich und hilfreich sein. Ansonsten werden die Werkzeuge nicht oder falsch benutzt. Aber: Ausgaben dürfen keine Sicherheitsinformationen geben. Beispiel ist die Passwortabfrage. Das Principle of Psychological Acceptability betrachtet den menschlichen Benutzer. Das Prinzip fordert, dass Sicherheitsmechanismen den (erlaubten) Zugriff auf Ressourcen nicht erschweren sollen. Sicherheitswerkzeuge sollten so einfach und intuitiv wie möglich sein und Ausgaben sollten klar und hilfreich sein. Wenn Sicherheitswerkzeuge zu kompliziert sind, werden sie von Administratoren entweder gar nicht oder fehlerhaft eingesetzt. In beiden Fällen wird die Sicherheit des Systems geschwächt. Die Ausgaben der Sicherheitswerkzeuge sollen zwar klar und hilfreich sein, sie dürfen jedoch nicht unerwünschterweise Sicherheitsinformationen an Angreifer liefern. Wenn ein Benutzer beispielsweise das falsche Passwort eingibt, sollte der Zugang mit einer Nachricht abgebrochen werden, in der das Fehlschlagen der Anmeldung berichtet wird. Es sollte nicht gemeldet werden, dass das Passwort falsch ist, da damit die Existenz des Benutzer-Accounts bestätigt wird. 16 8. Security Engineering Entwickeln sicherer Systeme soll mit den StandardSoftwareprozessen zusammenwirken. Softwareentwicklungsprozessmodelle Wasserfallmodell Spiral-Modell Prototyp-Modell V-Modell Rational Unified Process Extreme Programming etc. Die Entwicklung von sicherer Systeme soll Softwareentwicklungsprozessmodelle integriert werden. Es Entwicklungsprozess geben. in die soll keinen üblichen getrennten 17 8. Security Engineering Analyse funktionale Anforderungen Design Bedrohungsanalyse Risikoanalyse Sicherheitsstrategie Systemmodell Sicherheitsmodell Architektur Anwendungsarchitektur modellieren Sicherheitsarchitektur modellieren Wir betrachten hier ein sehr einfaches und grobes Vorgehensmodell des Softwareengineering, bestehend aus Analyse, Design und Architektur. Dieses einfache Wasserfallmodell kann durch beliebige andere Vorgehensmodelle (V-Modell, evolutionäre Modelle, Rational Unified Process, etc.) ersetzt werden. Wir möchten uns hier auf die Entwicklungsphasen konzentrieren, die sich auf die Sicherheit des Systems beziehen. In der Analyse-Phase sind dies die Bedrohungsanalyse und die Risikoanalyse. Die Bedrohungen des Systems basieren auf den funktionalen Anforderungen, da diese beschreiben, was die zu entwickelnde Software leisten soll. Basierend auf der Risikoanalyse wird eine Sicherheitsstrategie entwickelt und ein Sicherheitsmodell, dass die Strategie umsetzt. Getroffene Entscheidungen im Sicherheitsmodell beeinflussen das Systemmodell. Basierend auf dem Sicherheitsmodell wird eine Sicherheitsarchitektur entwickelt, die auch Einfluss auf die Anwendungsarchitektur hat. Wir werden im folgenden die einzelnen Phasen des Sicherheitsentwurfes genauer betrachten. 18 8.1 Bedrohungsanalyse In der Bedrohungsanalyse werden organisatorische, technische und benutzerbedingte Bedrohungen ermittelt. Vollständige Erfassung aller Bedrohungen ist schwierig. Unterstützung durch Bedrohungsmatrix oder Bedrohungsbaum. Bedrohungsmatrix Zeilen: Gefährdungsbereiche Spalten: potentielle Auslöser von Bedrohungen Bedrohungsbaum Wurzel: mögliches Angriffsziel Knoten: Zwischenziele zum Erreichen des Ziels des Vaterknotens In der Bedrohungsanalyse werden die potentiellen organisatorischen, technischen und benutzerbedingten Ursachen für Bedrohungen, die Schäden hervorrufen können, systematisch ermittelt. Zur Unterstützung einer methodischen Erfassung der relevanten Bedrohungen kann man einen matrix- oder einen baumorientierten Analyseansatz wählen. 19 8.1 Bedrohungsanalyse Bedrohungsmatrix Klassifikation der Gefährdungsbereiche als Zeilen der Matrix. Mögliche Gefährdungsbereiche sind 1. Bedrohungen durch externe Angriffe Aktionen eines Angreifers ohne Hilfe des bedrohten technischen Systems. Dazu zählen die physische Zerstörung oder Diebstahl (z.B. von Notebooks, Festplatten etc.) In einer Bedrohungsmatrix sind die Zeilen die Gefährdungsbereiche und die Spalten sind die potentiellen Auslöser von Bedrohungen. Eine mögliche Klassifikation von Gefährdungsbereichen stellt C. Eckert in ihrem Buch IT-Sicherheit vor: 1. Bedrohungen durch externe Angriffe: Aktionen eines Angreifers, die er ohne die Hilfe des bedrohten technischen Systems durchführt. Beispiele sind die Zerstörung von Systemkomponenten sowie Diebstahl von Ressourcen wie Festplatte, Notebook etc. 20 8.1 Bedrohungsanalyse 2. Bedrohungen der Datenintegrität und der Informationsvertraulichkeit Angriffe, die gezielt versuchen, interne Kontrollen zu umgehen oder Schutzmechanismen unwirksam zu machen. Beispiele sind die Umgehung von Zugriffskontrollen des Betriebsystems oder die Verwendung verdeckter Kanäle. 3. Bedrohungen der Verfügbarkeit und der Ressourcennutzung Betrifft die unautorisierte Ressourcennutzung bzw. die über die erlaubte Ressourcenbelegung übersteigende Nutzung. Beispiele sind teure Ein-/Ausgabegeräte oder die Nutzung von Rechenkapazität. 2. Bedrohungen der Datenintegrität und der Informationsvertraulichkeit: Angriffe, die gezielt versuchen, interne Kontrollen zu umgehen oder Schutzmechanismen unwirksam zu machen. Beispiele sind die Umgehung von Zugriffskontrollen oder verdeckte Kanäle. 3. Bedrohungen der Verfügbarkeit und Ressourcennutzung: Betreffen die unautorisierte Ressourcennutzung bzw. die eine „normale“ Ressourcenbelegung übersteigende Nutzung von Betriebsmitteln. 21 8.1 Bedrohungsanalyse 4. Abstreiten durchgeführter Aktionen Betrifft die Abrechnung genutzter Ressourcen und in Anspruch genommener Dienste und die daraus resultierenden rechtlichen bzw. vertraglichen Folgen. 5. Missbrauch erteilter Berechtigungen Betrifft autorisierte Benutzer, die ihnen erteilte Berechtigungen missbrauchen. 4. Abstreiten durchgeführter Aktionen: Betreffen den Bereich der Abrechnung genutzter Ressourcen (z.B. Speicher, CPU-Zeit), zum anderen die Abrechnung in Anspruch genommener Dienste und die daraus resultierenden rechtsverbindlichen, vertraglichen Folgen (z.B. Banktransaktion oder elektronischer Einkauf). 5. Missbrauch erteilter Berechtigungen: Ein autorisierter Benutzer missbraucht die ihm erteilten Berechtigungen. 22 8.1 Bedrohungsanalyse Zeilen der Bedrohungsmatrix definieren die Gefährdungsbereiche. Spalten definieren die potenziellen Auslöser von Bedrohungen: Programmierer, Systemadministratoren, Benutzer (mit internem oder externem Zugriff), Dienste (z.B. E-Mail), Protokolle (z.B. TCP/IP), Ausführungsumgebungen (z.B. Java Virtual Machine), etc. Matrixeinträge enthalten potentielle Angriffsszenarien. Während die Zeilen der Bedrohungsmatrix die Gefährdungsbereiche enthält, sind in den Spalten der Bedrohungsmatrix die potenziellen Auslöser von Bedrohungen aufgelistet. Die Folie zeigt einige Beispiele für Auslöser. Die Matrixeinträge enthalten dann potenzielle Angriffszenarien, die die Auslöser bzgl. des Gefährdungsbereiches ausführen könnten. 23 8.1 Bedrohungsanalyse Beispiel: keine Szenarien, nur Beispiele für Bedrohungen Programmierer Interner Benutzer Externer Benutzer Externe Angriffe Beobachten der Vandalismus Passworteingabe Interne Direkter Angriffe Speicherzugriff Trojanisches Pferd Passwort knacken Verfügbarkeit Prozesse erzeugen Netzlast erzeugen Speicherbelegung Mobiler Code Viren Diese Folie zeigt ein kleines Beispiel einer Bedrohungsmatrix. Die Spalten der Bedrohungsmatrix enthalten die potentiellen Auslöser von Bedrohungen. Beispiele sind Systemadministratoren, Programmierer, Benutzer die einen internen oder externen Zugriff auf das System haben, verwendete Dienste wie E-Mail, Protokolle wie TCP/IP oder Ausführungsumgebungen wie die Java VM zur Ausführung von Java-Applets sein. Die Zeilen sind die Gefährdungsbereiche Externe Angriffe , Interne Angriffe und Verfügbarkeit. Im Beispiel könnte ein Programmierer beispielsweise durch übermäßige Speicherbelegung die Verfügbarkeit des Systems bedrohen, mobiler Code könnte Viren enthalten oder externe Benutzer könnten durch das Knacken von Passwörtern Zugriff aufs System bekommen. 24 8.1 Bedrohungsanalyse Bedrohungsbaum bzw. Angriffsbaum erfasst potentielle Bedrohungen. Bedrohungen werden schrittweise von der Wurzel zu den Blättern verfeinert und konkretisiert. Wurzel des Bedrohungsbaums: Beschreibt allgemeine Bedrohung des Systems. Kinderknoten: Repräsentieren Zwischenziele, um die Bedrohung des Vaterknoten zu erreichen. Bedrohungen können auch in einem Bedrohungsbaum beschrieben werden. Die generelle Vorgehensweise zum Erstellen eines Bedrohungsbaumes lässt sich wie folgt zusammenfassen: Die Wurzel definiert ein Angriffsziel, d.h. eine mögliche Bedrohung des Systems. Die Kinder eines Knotens im Baum repräsentieren Zwischenziele, die zur Erreichung des Ziels des Vaterknotens beitragen. 25 8.1 Bedrohungsanalyse Zwischenziele können mit UND bzw. ODER verknüpft werden: UND erfordert das Eintreten aller Bedrohungen, damit die Bedrohung des Vaterknotens auftritt. ODER erfordert nur eine Bedrohung zum Auftreten der Bedrohung des Vaterknotens. Der Pfad von einem Blatt zur Wurzel zeigt die Schritte, um das in der Wurzel definierte Angriffsziel zu erreichen. Zur Verknüpfung der Zwischenziele können UND- bzw. ODER-Knoten verwendet werden: Die Äste eines UND-Knotens beschreiben die Bedrohungen, die gemeinsam erfüllt sein müssen, um das Ziel des Vaters zu erreichen. Bei einem ODER-Knoten reicht dazu eines der Zwischenziele aus. Die Pfade von den Blättern zur Wurzel beschreiben Angriffsschritte zum Erreichen des globalen Angriffziels. 26 8.1 Bedrohungsanalyse Beispiel 1: Geld aus EC-Automat Ohne Konto Fremdes Konto eigenes Konto UND Brich Automat vor Ort auf Klaue Automat mit echter mit falscher Karte Karte UND entwende Karte ermittle PIN hebe Geld ab UND fälsche/kopiere Karte ermittle PIN Bestreite Transaktion Als Beispiel betrachten wir einen Angriff auf einen EC-Automaten. Wenn kein UND an den Kanten steht, handelt es sich um eine ODER-Verknüpfung. In diesem Beispiel ist das Angriffsziel eine EC-Automat, aus dem Geld entwendet werden soll. Diese Angriffsziel wird im Baum immer weiter zu Zwischenzielen verfeinert. 27 8.1 Bedrohungsanalyse Beispiel 2: öffne Safe knacke Schloss erfahre Kombination Kombination aufgeschrieben Bedrohung Erpressung schneide durch Panzerstahl Kombination mündlich unbeabsichtigt Bestechung UND Belausche Inhaber der Kombination Inhaber erzählt Kombination Dieses zweite Beispiel hat das Ziel, einen Safe zu öffnen. Der Baum zeigt die einzelnen Ziele, die zur Erfüllung des Hauptziels auszuführen sind. 28 8.2. Risikoanalyse Die Risikoanalyse (risk assessment) bewertet die Relevanz der einzelnen Bedrohungen, d.h. – mit welcher Wahrscheinlichkeit tritt eine Bedrohung ein und – wie schwer ist der Schaden Die Wahrscheinlichkeit einer Bedrohung hängt ab – vom geschätzten Aufwand zur Durchführung eines Angriffs, – vom möglichen Nutzen eines Angriffs, – vom Ausmaß möglicher Schäden, die durch den Angriff entstehen, – vom Angreifertypen, d.h. von den Fähigkeiten und Kenntnissen der Angreifer, von ihrer Risikobereitschaft, ihrer Motivation, etc. Zur Bewertung der Bedrohungsrisiken werden die Wahrscheinlichkeiten für das Eintreten der verschiedenen Bedrohungen ermittelt und ihr potentieller Schaden abgeschätzt. Die Wahrscheinlichkeiten ergeben sich aus dem geschätzten Aufwand, den der Angreifer zur Durchführung des Angriffs treiben muss, und einer Einschätzung des Nutzens, den der Angreifer vom Angriff hat. Wenn ein Angriff unwahrscheinlich ist, ist die Priorität zum Verhindern dieses Angriffs geringer, als bei einem wahrscheinlichen Angriff. Wenn der unwahrscheinliche Angriff jedoch einen höheren Schaden nach sich ziehen würde, als der wahrscheinliche (der nur eine geringes Ärgernis darstellen würde), so wird die Priorität eher beim unwahrscheinlichen liegen. 29 8.2. Risikoanalyse Bedrohungsbaum kann zur Risikoanalyse verwendet werden. Attributierung der Kanten mit den Risiken. Bedrohung der Vertraulichkeit des Benutzer-Passwortes Risiko: niedrig Ausspähen der Terminaleingabe Risiko: hoch Unverschlüsselte Übertragung über das Netz Risiko: hoch Benutzer hat isolierten Arbeitsplatz und arbeitet oft übers Netz. Sind die Bedrohungen durch einen Baum erfasst, so können die Risiken als Attributierungen der Kanten des Baumes angegeben werden. Das Beispiel der Folie zeigt einen Bedrohungsbaum für die Vertraulichkeit von Passwortdateien, falls ein Ausspähen über das Netz erfolgt. Arbeitet der Benutzer isoliert, so tritt ein Ausspähen nur mit geringer Wahrscheinlichkeit auf. Falls ein Benutzer sich häufig auf anderen Rechnern einloggt und dabei das Passwort übers Netz übertragen wird, ist ein Ausspähen schon wahrscheinlicher. 30 8.2. Risikoanalyse Bedrohungsmatrizen und –bäume sind nur ein Hilfsmittel. Bedrohungs- und Risikoanalyse sind schwierige kreative Prozesse, die sich kaum formalisieren oder automatisieren lassen. Sicherheitsdesigner muss noch erfinderischer als der Angreifer sein. 31 8.3. Sicherheitsstrategie und -modell Aus den Ergebnissen der Risikoanalyse wird die Sicherheitsstrategie abgeleitet. Sicherheitsstrategien können informell oder formal erfasst werden und spezifizieren die Sicherheitsanforderungen. Außerdem sind Maßnahmen zur Abwehr von Bedrohungen zu ermitteln. Beinhaltet auch die Kosten und den Aufwand zur Realisierung der Schutzmaßnahmen (z.B. Kosten für neue Hardware zum Sicherstellen von Verfügbarkeit etc.). Aus der Sicherheitsstrategie wird ein Sicherheitsmodell konstruiert. Aus der Risikoanalyse ist abzuleiten, welche Maßnahmen zur Abwehr der Bedrohungen erforderlich sind. Die erforderlichen Maßnahmen werden in einer Sicherheitsstrategie informell oder formal erfasst. Das Aufstellen der Sicherheitsstrategie erfordert Fachwissen im Bereich IT-Sicherheit um die geeigneten Maßnahmen zur Abwehr der Bedrohungen zu ergreifen. Da die meisten Softwareentwickler jedoch keine Sicherheitsexperten sind und Sprachen zur Spezifikation von Sicherheitsstrategien oft sehr speziell sind, werden in der aktuellen Forschung zum Security Engineering zum einen Security Patterns (angelehnt an Design Patterns) entwickelt, zum anderen wird versucht die dem Designer bekannte UML zur Modellierung von Sicherheit zu verwenden. 32 8.3. Sicherheitsstrategie und -modell Klassen von Anwendungen haben ähnliche Sicherheitsanforderungen. Design Patterns sind ein Konzept, um immer wieder auftretende Probleme sowie bewährte Lösungen schriftlich zu dokumentieren. Design Patterns halten fest, • in welchen Kontext das Problem auftritt • welche Anforderungen zu beachten sind • welche Lösungen sich anbieten. Nicht-Experten können vom Wissen der Experten profitieren, die die Patterns geschrieben haben. Design Patterns sind ein Konzept, um immer wieder auftretende Probleme und bewährte Lösungen schriftlich zu dokumentieren. Patterns werden von Experten geschrieben, so dass Laien von deren Expertenwissen profitieren. Dieser Ansatz der Design Patterns wird daher auf den Problembereich der Sicherheit übertragen. 33 8.3.1 Security Patterns Übertragen der Idee der Design Patterns auf Sicherheit Security Patterns Security Patterns dokumentieren immer wieder auftretende Sicherheitsprobleme und bewährte Lösungen. Von Sicherheitsexperten geschrieben. Struktur von Security Patterns ist vergleichbar mit der Struktur von Design Patterns: – Kontext – Problem – Anforderungen – Lösung Die Struktur von Security Patterns ist mit der von Design Patterns vergleichbar und unterteilt sich in Kontext, Problem, Anforderungen und Lösung. Diese Aspekte werden auf den folgenden Folien kurz vorgestellt. 34 8.3.1 Security Patterns Struktur von Security Patterns Kontext Beschreibt den Kontext des Sicherheitsproblems. Kann mit einem Beispielszenario illustriert werden. Aspekte der Umgebung des IT-Systems können beschrieben werden. Problem Beschreibung der Bedrohungen bzw. Schutzziele, die durch die Bedrohungen verletzt werden können. 35 8.3.1 Security Patterns Anforderungen Beschreiben die Sicherheitsanforderungen, die zu beachten sind. Dazu gehören auch Anforderungen, die durch die Sicherheitsanforderungen beeinflusst werden (z.B. Performanz oder Benutzbarkeit). Lösung Maßnahmen zur Lösung des Problems im Kontext, d.h. die Risiken auf ein Minimum reduzieren. Es sollte mindestens eine Maßnahme für jede Bedrohung geben. Es können auch Vor- und Nachteile des Security Patterns beschrieben werden. 36 8.3.1 Security Patterns Verwandte Patterns Abhängigkeiten zu weiteren Security Patterns. 37 8.3.1 Security Patterns Beispiel: Handhabung von Cookies (M. Schumacher, Informatik Spektrum, Juni 2002) Kontext Cookies zum Speichern und Abfragen für BenutzerInformationen. Server platzieren Cookies beim Klienten. Problem Cookies dürfen nur vom Server gelesen werden, der sie erzeugt hat. Es dürfen nur Informationen, die entweder vom Klienten oder dem Server erzeugt werden, ausgetauscht werden. 38 8.3.1 Security Patterns Problem (Fortsetzung) Bedrohungen: • Dienstanbieter können Profile von Benutzern erstellen • Benutzerdaten von verschiedenen Anbietern können zusammengeführt werden 39 8.3.1 Security Patterns Anforderungen – Anonymität: Dienstanbietern und anderen Benutzern soll es nicht möglich sein, die Identität eines Benutzers abzuleiten. Ein Dienst darf den richtigen Benutzernamen nicht offen legen. – Unverknüpfbarkeit: Ein Benutzer sollte mehrere Anfragen stellen können, ohne das diese miteinander in Verbindung gebracht werden können. – Benutzbarkeit: Viele Anwendungen sind nicht nutzbar, wenn Cookies nicht akzeptiert werden. Außerdem soll keine zusätzliche Software benötigt werden. 40 8.3.1 Security Patterns Lösung Die Verwendung von Cookies muss vom Benutzer eingeschränkt werden. Benutzer müssen Cookies von Fall zu Fall aktivieren und entscheiden, ob einem Anbieter vertraut wird. Periodisches Löschen von Cookies zur Verhinderung von Profilen. Maximaler Schutz, wenn Cookies deaktiviert werden. 41 8.3.2 Sicherheit und UML Integration von Sicherheitsdesign in den UMLSoftwareentwicklungsprozess UML ist de facto Standard bei der Entwicklung objektorientierter Systeme. Akzeptiert und beherrscht von vielen Designern und Entwicklern. Wie soll integriert werden? • Verwenden existierender UML-Modelelemente • Integration in existierende UML-Werkzeuge • Kein Expertenwissen vom System-Designer erforderlich • UML-Modelle zur Generierung von Sicherheitspezifikationen Im folgenden wollen wir betrachten, wie sich die Entwicklung von Sicherheit in den Softwareenticklungsprozess mit UML integrieren lässt. Die UML bietet sich an, da sie die defacto-Standardsprache bei der Entwicklung objektorientierter Systeme ist und von vielen Entwicklern beherrscht und verstanden wird. Eine Integration sollte möglichst auf vorhandenen Modellelementen der UML basieren, da auf diese Weise existierende UMLWerkzeuge benutzt werden können und kein zusätzliches Wissen vom Designer verlangt wird. Die UML-Modelle sollten möglichst direkt zur automatischen Generierung der Sicherheitsspezifikation verwendet werden, um den Designer weiter zu entlasten. 42 8.3.2 Sicherheit und UML UMLSec Erweiterung von UML-Diagrammen um spezielle Stereotypen, tagged values (Jan Jürjens) SecureUML Modell-getriebene Entwicklung von rollenbasiertem Zugriffsschutz und Generierung von Politiken für EJBs (ArcStyler, www.io-software.com) Raccoon Integration von View-based Access Control und Generierung der Politik für ein CORBA-Sicherheitsinfrastruktur aus den UML-Diagrammen. Es gibt mehrere Ansätze, die Sicherheitsdesign in die UML generieren. Auf den folgenden Folien wird der Raccoon-Ansatz näher vorgestellt. 43 8.3.2 Sicherheit und UML Funktionale Anforderungen Funktionales Design + + Sicherheitsanforderungen IDL IDL VPL + Sicherheits design Generierung 44 8.3.2 Sicherheit und UML Sicherheitsanalyse Funktionale Anforderungen werden in Use Cases ausgedrückt. Sicherheitsanforderungen werden diesen Use Cases zugefügt. Zugriffsschutzanforderungen sind schon in den funktionalen Anforderungen enthalten und vereinfachen die Integration. 45 8.3.2 Sicherheit und UML Sicherheitsrollen entsprechen den Aktoren der UML-Use-CaseDiagramme 46 8.3.2 Sicherheit und UML Ermitteln von Zugriffen aus den informellen Zugriffsbeschreibungen. edit entry: Der Kalenderbesitzer kann seine Einträge lesen und modifizieren. Änderungen können die Zeit, den Tag, oder den Raum betreffen. Die Sekretärin des Kalenderbesitzers kann die Kalendereinträge ebenfalls einsehen und ändern. update room: Eine Sekretärin bucht einen Raum für einen Kalenderbesitzer. Der Besitzer darf den Raum nicht selbst buchen. 47 8.3.2 Sicherheit und UML 48 8.3.2 Sicherheit und UML Zusammenfassung Sicherheitsanalyse UML-Aktoren = Sicherheitsrollen Implizite Zugriffsinformationen werden in Notizen explizit dokumentiert. Software-Analyst betrachtet und beschreibt Sicherheit früh im Entwicklungsprozess. 49 8.3.2 Sicherheit und UML Sicherheits-Design Ausgehend von den Use-Case-Diagrammen werden die Klassendiagramme für die CORBA-Schnittstellen erstellt. 50 8.3.2 Sicherheit und UML Notizen der Use-Case-Diagramme sind Grundlage der ViewDefinition. 51 8.3.2 Sicherheit und UML Für jede Notiz erzeuge eine View. View hat alle Zugriffsrechte einer Schnittstelle. Rollen, denen die View gegeben werden kann. 52 8.3.2 Sicherheit und UML View Diagram enthält alle Views. 53 8.3.2 Sicherheit und UML Generierung der VPL-Spezifikation. XMI-Export XML UML CASE Tool Role Server XSLT VPL Policy Server RACCOON 54 8.3.2 Sicherheit und UML Generierung der Rollen. UML VPL policy Calendar { roles Other Secretary: Other CalendarOwner: Secretary } 55 8.3.2 Sicherheit und UML Generierung der Views. UML IDL:Room RoomBooking Secretary book cancel VPL View RoomBooking controls Room restricted to Secretary NoRoomBooking { allow CalendarOwner book _cancel _book cancel } 56 8.3.2 Sicherheit und UML Zusammenfassung Systematischer Ansatz zur Integration von Zugriffsschutzdesign in den Entwicklungsprozess mit UML. Sicherheitsanforderungen werden früh betrachtet. UML-Diagramme können zur Generierung der Sicherheitspolitk verwendet werden. UML-Werkzeuge können benutzt werden. Kein Sicherheitsexpertenwissen wird benötigt. 57 8.4 Sicherheitsarchitektur Ein Architektur-Entwurf konkretisiert das Sicherheitsmodell. Die Systemkomponenten (inklusive der Komponenten zur Realisierung der sicherheitsspezifischen Funktionen) mit ihren Schnittstellen und Abhängigkeiten werden festgelegt. Die Komponenten werden derart verfeinert, dass eine Implementierung erfolgen kann. In der Implementierungsphase sind die benötigten Datenstrukturen und Algorithmen zu wählen. Hier kann auf kryptographische Verfahren, Passwortschutz, Schlüsselverteilungsprotokolle, Authentifizierungsdienste etc. zugegriffen werden. 58 8.5 Sicherheitskriterien Kriterien für die Bewertung der Sicherheit von IT-Systemen. Kriterienkataloge stellen ein Bewertungsschema zur Verfügung, mit denen die Sicherheit unterschiedlicher Systeme verglichen werden kann. Evaluierung und Bewertung erfolgt durch unabhängige Evaluierungsstellen, die Zertifikate ausstellen. Ziele von Sicherheitskriterien Richtschnur für die Entwicklung sicherer, vertrauenswürdiger Systeme objektive Bewertung dieser Systeme von einer neutralen und kompetenten Instanz (im Gegensatz zur Herstellererklärung) Möglichkeit für die Anwender / Benutzer zur Auswahl eines geeigneten IT-Sicherheitsprodukts Für die Bewertung der Sicherheit von IT-Systemen werden nationale und internationale Kriterien-Kataloge entwickelt. Kriterienkataloge stellen ein Bewertungsschema zur Verfügung, das es erlaubt, die Sicherheit unterschiedlicher Systeme zu vergleichen. Die Evaluierung und Bewertung erfolgt durch unabhängige Evaluierungsstellen, die Zertifikate ausstellen. Die Ziele der Entwicklung von Sicherheitskriterien sind: Richtschnur für die Entwicklung sicherer, vertrauenswürdiger Systeme, objektive Bewertung dieser Systeme von einer neutralen und kompetenten Instanz (im Gegensatz zur Herstellererklärung), Möglichkeit für die Anwender / Benutzer zur Auswahl eines geeigneten IT-Sicherheitsprodukts. 59 8.5 Sicherheitskriterien Historie der Entwicklung von IT-Sicherheitskriterien 1983 Trusted Computer Security Evaluation Criteria Orange Book - TCSEC 1989 IT-Sicherheitskriterien (ITS) 1991 Information Technology Security Evaluation Criteria ITSEC 1998 Common Criteria (CC) Version 2.0 60 8.5.1 TCSEC Trusted Computer Security Evaluation Criteria Orange Book – TCSEC http://www.radium.ncsc.mil/tpep/library/rainbow/index.html Zuständig ist die US National Security Agency (NSA). Es gibt sieben Hierarchiestufen (C1, C2, B1, B2, B3, A, D) zur Klassifikation der Sicherheit. Für die TCSEC-Kriterien ist die US National Security Agency zuständig. Die Kriterien sind als das Orange Book bekannt, welches die Farbe des Katalogumschlages ist. Die TCSEC legen mit den Stufen D, C, B und A sowie deren weiteren Untergliederungen sieben Hierarchiestufen zur Klassifikation der Sicherheit eines Systems fest. 61 8.5.1 TCSEC Stufe D (niedrigste Stufe) Systeme die keinen oder minimalen Schutz gewährleisten. Stufe C Benutzerbestimmte Zugriffskontrolle, d.h. Rechte werden vom Benutzer individuell vergeben. Stufe C1 - Grobgranulare Festlegung von Rechten (z.B. Zugriffskontrolle basiert auf Benutzerklassen) - Maßnahmen zur Authentifizierung und zum Schutz der Authentifizierungsdaten. - Geringe Anforderungen an Dokumentation und Systemtests. Beispiel: Original-Unix-Systeme Die niedrigste Stufe D gilt für Systeme, die keinen bzw. minimalen Schutz gewährleisten. Eine Bewertung nach Stufe C erfordert, das Zugriffsrechte durch Benutzer individuell vergeben werden können. Eine Einstufung gemäß C1 besagt, dass die Rechtefestlegungen nur grobgranular festgelegt werden können. C1 erfordert Maßnahmen zur Kontrolle der Identität von Benutzern und zum Schutz dieser Kontrollstrukturen. An die Dokumentation und durchzuführende Systemtests werden nur geringe Anforderungen gestellt. Es ist lediglich sicherzustellen, dass keine offensichtlichen Möglichkeiten zur Umgehung der Kontrollen existieren. Klassische Unix-Systeme erfüllen die C1-Anforderungen. 62 8.5.1 TCSEC Stufe C2 - Feingranulare Festlegung der Rechte, d.h. Rechte an einzelne Benutzer und Zugriffsverbote. - Aktionen von Benutzern müssen abrechenbar sein und Zugriffe auf zu schützende Objekte muss überwacht werden (Auditing) - Tests bzgl. Auditung und Authentifizierung. Beispiel: Windows NT, IBM AIX 4.3, Novell NetWare 4.11 Bei Stufe C2 müssen Benutzern differenzierte Möglichkeiten zur Rechtefestlegung zur Verfügung stehen, so dass Zugriffsrechte an einzelne Benutzer vergeben oder Zugriffsverbote festgelegt werden können. Die Aktionen einzelner Benutzer müssen abrechenbar sein und Zugriffe auf zu schützende Daten müssen überwacht werden. Zu den C2-Systemen gehört beispielsweise Windows NT, IBM AIX 4.3 oder Novell NetWare 4.11. 63 8.5.1 TCSEC Stufe B Systembestimmte Zugriffskontrolle, Einführen von Sicherheitsklassen, Informationsflusskontrolle, formale Modellierung Stufe B1 - Erfüllen aller Anforderungen der Stufe C2. - Systembestimmte Zugriffskontrolle durch Sicherheitsklassen für alle Objekte und Subjekte. - Zugriffe auf Objekte werden durch systemglobale Regeln beschränkt (z.B. Regeln wie bei Bell-LaPadula). - Systembestimmte Zugriffsregeln dominieren die benutzerbestimmten Regeln. - Informelle Beschreibung eines Sicherheitsmodells. Beispiel: HP-UX BLS 9.0.9+ In der Stufe B werden zusätzlich Sicherheitsklassen für die Objekte und Subjekte des Systems eingeführt. Systeme der Stufe B1 umfassen die Anforderungen der Stufe C2 und gewährleisten systembestimmte Zugriffskontrolle durch eine Menge von Sicherheitsklassen. Sicherheitsklassen müssen jedem Subjekt und jedem Objekt zugeordnet werden. Zugriffe auf Objekte werden durch systemglobale Regeln beschränkt (z.B. Regeln des Bell-LaPadulaModells). Systembestimmte Beschränkungen dominieren die benutzerbestimmten Rechtevergaben. B1-Systeme erfordern ein informelle Beschreibung eines Sicherheitsmodells. 64 8.5.1 TCSEC Stufe B2 - Formales Sicherheitsmodell - Maßnahmen zur Erkennung bzw. Behandlung verdeckter Kanäle - Vertrauenswürdige Kommunikation zwischen Benutzer und Sicherheitskomponenten. Beispiel: Trusted XENIX 4.0 (Unix-Derivat) Stufe B3 - Zusätzliche Anforderungen an die Sicherheitskomponenten. - Sicherheitskomponenten müssen getestet und geschützt werden. - Alle sicherheitsrelevanten Aktionen bzgl. der Sicherheitskomponenten müssen überwacht werden. Beispiel: XTS-300 STOP 4.4.2 Eine Einstufung in Stufe B2 erfordert ein formales Sicherheitsmodell sowie Maßnahmen zur Erkennung bzw. Behandlung verdeckter Kanäle. Es muss eine vertrauenswürdige direkte Kommunikation zwischen dem Benutzer und den Sicherheitskomponenten etabliert werden. Die Stufe B3 stellt zusätzliche Anforderungen an die Menge der sicherheitsrelevanten Komponenten und Dienste. Die Komponenten müssen getestet und gegen unbefugte Zugriffe geschützt sein und alle sicherheitsrelevanten Aktionen sind zu überwachen. 65 8.5.1 TCSEC Stufe A Erfordert zusätzlich eine formale Verifikation spezifizierter Sicherheitseigenschaften. Beispiel: Kommunikationssoftware MLS LAN V.2.1 der Firma Boeing. Berichte über die Evaluierungen von Systemen sind unter http://www.radium.ncsc.mil/tpep/library/fers/tcsec_fers.htm einzusehen. Die Stufe A erfordert keine funktionalen Erweiterungen der Stufe B3, jedoch einen formalen Nachweis spezifizierter Sicherheitseigenschaften. 66 8.5.1 TCSEC Kritikpunkte an den TCSEC-Kriterien - Fokussierung auf Betriebssysteme, so dass z.B. Anwendungssysteme nur unzureichend erfasst werden. - Betonung militärischer Einsatzumgebungen zugunsten kommerzieller Bereiche. - Herstellerinteressen werden gegenüber benutzerspezifischen Sicherheitsinteressen stärker betrachtet. - Trennung zwischen Funktionalität und Qualität (Sicherheitsfunktion ist da, aber wie gut realisiert sie die Sicherheitsanforderungen?) Kritik an den TCSEC-Kriterien betrifft die einseitige Ausrichtung auf Betriebssysteme, so dass offene Kommunikationssysteme oder spezielle Anwendungssysteme nur unzureichend erfasst werden. Außerdem werden militärische Einsatzumgebungen betont und Anforderungen des kommerziellen Bereichs nicht ausreichend berücksichtigt, Herstellerinteressen werden zugunsten benutzerspezifischen Interessen vernachlässigt und es existiert eine Trennung zwischen Funktionalität und Qualität. Die TCSEC-Kriterien bewerten nur, dass eine Funktionalität erbracht wurde, nicht mit welcher Wirksamkeit die Funktionalität die Sicherheitsanforderungen erfüllt. 67 8.5.2 ITS Deutsche IT-Sicherheitskriterien (Grünbuch) wurden von der Zentralstelle für Sicherheit in der Informationstechnik (ZSI) entwickelt. Zuständig ist das Bundesamt für Sicherheit in der Informationstechnik (BSI) mit TÜVs. Beschreibt zehn Funktionsklassen F1 bis F10 und acht Qualitätsstufen Q0 bis Q7. F1-F5 entsprechen den TCSEC-Klassen C1,C2, B1,B2, B3. F6-F10 sind netzbezogen und anwendungsbezogen Q0 nicht vertrauenswürdig Q1 – Q6 wachsende Anforderungen bzgl. Dokumentation, Test, Verifikation Die deutschen IT-Sicherheitskriterien (Grünbuch) und deren Methodologie wurden zwischen 1989 und 1990 von der Zentralstelle für Sicherheit in der Informationstechnik (ZSI) entwickelt und veröffentlicht. Die ZSI ist der Vorgänger des Bundesamtes für Sicherheit in der Informationstechnik (BSI). In den Kriterien sind 10 Funktionalitätsklassen beschrieben, wobei die ersten 5 denen des Orange-Book entsprechen. Als ein Maß der Vertrauenswürdigkeit in die beschriebene Funktionalität wurden 8 hierarchische Qualitätsstufen Q0 – Q7 eingeführt. 68 8.5.2 ITS ITS-Funktionsklassen Funktionsklasse F6 Besondere Anforderungen an die Integrität der Daten (z.B. für Daten in einer Datenbank). Betrachtet Rollen und Objekttypen und die Protokollierung sicherheitsrelevanter Zugriffe. Funktionsklasse F7 Stellt hohe Anforderungen bzgl. Verfügbarkeit. Fordert Maßnahmen zur Fehlerbehandlung und –überbrückung, zum Zurücksetzen abgebrochener Berechnungen sowie zur Verklemmungsfreiheit. Die Funktionsklasse F6 stellt besondere Anforderungen an die Integrität von Daten, wie sie z.B. in Datenbanken notwendig sind. Hierzu gehört beispielsweise die Einführung von Rollen und Objekttypen oder die Protokollierung sicherheitsrelevanter Zugriffe auf Daten. Die Klasse F7 stellt hohe Anforderungen in Bezug auf Verfügbarkeit. Gefordert werden Maßnahmen zur Fehlerbehandlung und –überbrückung, zum Zurücksetzen abgebrochener Berechnungen sowie Berechnungen zur Gewährleistung von Verklemmungsfreiheit. 69 8.5.2 ITS Funktionsklasse F8 Beziehen sich auf die Datenintegrität während der Kommunikation. Fordert z.B. Maßnahmen zur Erkennung von Wiedereinspielungen. Funktionsklasse F9 Stellt Anforderungen bzgl. der Vertraulichkeit der Daten bei der Datenübertragung. Ist beispielsweise für Verschlüsselungssysteme relevant. Funktionsklasse F10 Umfasst Vertraulichkeits- und Integritätsbedingungen vernetzter Systeme. Fordert zum Beispiel die Authentifizierung von Kommunikationspartnern, Verschlüsselung, Protokollierung. Die Anforderungen der Klasse F8 beziehen sich auf die Datenintegrität während der Kommunikation. Es werden beispielsweise Maßnahmen zur Erkennung von Wiedereinspielungen gefordert. Die Klasse F9 stellt Anforderungen an die Vertraulichkeit der Daten bei deren Übertragung und ist beispielsweise für Verschlüsselungsgeräte relevant. Die Funktionsklasse F10 umfasst Vertraulichkeits- und Integritätsanforderungen vernetzter Systeme. Die Klasse fordert beispielsweise die Authentifizierung von Kommunikationspartnern, Verschlüsselung und Protokollierung. 70 8.5.2 ITS Qualitätsstufen sind ein Maß der Vertrauenswürdigkeit in die beschriebene Funktionalität. Konzept der Qualitätsstufen findet sich in den ITSEC-Kriterien und Common Criteria wieder. Bewertung der Qualität eines Systems untersucht z.B.: - Qualität der Darstellung der Sicherheitsanforderungen und deren Konsistenz - Qualität der Spezifikation der zu evaluierenden Systemteile und der Spezifikationswerkzeuge - Qualität des Herstellungsvorgangs, z.B. verwendete Entwicklungswerkzeuge, Tests, Fähigkeiten des Personals. - Korrektheit und Verständlichkeit der Dokumentation. - Stärke und Eignung der verwendeten Sicherheitsmechanismen Als ein Maß der Vertrauenswürdigkeit in die beschriebene Funktionalität wurden 8 hierarchische Qualitätsstufen Q0 – Q7 eingeführt. Die Qualitätsstufe Q0 stellt die niedrigste und Q7 die höchste Qualitätsstufe dar. Dieses in den deutschen IT-Sicherheitskriterien erstmals eingeführte Konzept der Trennung von Funktionalität und Prüftiefe (Qualitätsstufe) findet sich sowohl in ITSEC als auch in Common Criteria wieder. Für die Bewertung der Qualität eines Systems werden unterschiedliche Einzelaspekte untersucht und bewertet. Dazu gehören die Qualität der Darstellung der Sicherheitsanforderungen sowie deren Konsistenz, die Qualität der Spezifikation der zu evaluierenden Systemteile und die Qualität der verwendeten Werkzeuge. Weitere Aspekte betreffen die Stärke der verwendeten Sicherheitsmechanismen und deren Eignung, die Qualität des Herstellungsvorgangs, einschließlich der verwendeten Werkzeuge, die Qualität der durchgeführten Tests und die Fähigkeiten des Personals. Auch die Dokumentation sowie deren Korrektheit und Verständlichkeit wird untersucht. 71 8.5.2 ITS Bewertung von Sicherheitsmechanismen anhand einer Skala: ungeeignet Mechanismus ist nicht wirksam schwach Abwehr gegen unabsichtliche Verstöße gegen die Sicherheitsanforderung, jedoch kein Hindernis gegen absichtliche Verstöße. mittelstark Verhindert absichtliche Verstöße, der Mechanismus kann aber mit mittelgroßem Aufwand von Personen mit normalen Kenntnissen überwunden werden. stark Mechanismus kann nur mit großem Aufwand oder mit aufwendigen Hilfsmitteln überwunden werden. sehr stark Mechanismus kann beim derzeitigen Stand der Technik nur mit sehr großem Aufwand und mit sehr aufwendigen Hilfsmitteln überwunden werden. Zur Bewertung von Sicherheitsmechanismen ist eine Skala definiert, die durch die Stufen ungeeignet, schwach, mittelstark, stark, sehr stark festgelegt ist. Die Bedeutung der einzelnen Stufen zeigt die Folie. 72 8.5.2 ITS Beispiel: Authentifizierungsmechanismen Bewertung über die Wahrscheinlichkeit, mit der eine nicht korrekte Authentifizierung möglich ist. schwach wenn Wahrscheinlichkeit größer 10-2 mittelstark “ 10-4 stark “ 10-6 sehr stark “ 10-8 Die Folie zeigt ein Beispiel anhand von Authentifizierungsmechanismen. Deren Qualität wird anhand der Wahrscheinlichkeit bewertet, mit der eine nicht korrekte Authentifizierung möglich ist. 73 8.5.2 ITS ITS-Qualitätsstufen Qualitätsstufe Q0 Keine Sicherheitsanforderungen. Für Systeme, deren Qualität für die anderen Qualitätsstufen nicht ausreicht. Qualitätsstufe Q1 System ist grob auf Korrektheit geprüft. Bietet keinen oder geringen Schutz gegen Manipulation. Sicherheitsmechanismen mit schwacher Stärke. Die Qualitätsstufe Q0 stellt keine Qualitätsanforderungen und ist für Systeme, deren Qualität für keine der höheren Qualitätsstufen ausreicht. Systeme der Stufe Q1 sind nur grob auf Korrektheit geprüft, bieten keinen oder geringen Schutz vor Manipulationen und verwendet Sicherheitsmechanismen mit schwacher Stärke. 74 8.5.2 ITS Qualitätsstufe Q2 System ist eingehend auf Korrektheit geprüft. Bietet zufriedenstellenden Schutz gegen Manipulationen. Sicherheitsmechanismen mit mittelstarker Stärke. Qualitätsstufen Q3-Q5 Erfordern semiformale bzw. formale Techniken zur Erstellung des Systems. Konsistenzabgleich zwischen Quellcode und Spezifikation. Schutzmechanismen mit starker Stärke. Qualitätsstufen Q6 und Q7 Bieten formal verifizierten Schutz. Mechanismen mit starker (Q6) und sehr starker (Q7) Stärke. Systeme der Stufe Q2 wurden eingehend auf Korrektheit geprüft und bieten einen zufriedenstellenden Schutz gegen Manipulationen. Die Stufe Q2 erfordert, dass mittelstarke Sicherheitsmechanismen verwendet werden. Die Stufen Q3 bis Q5 erfordern zur Erstellung des IT-Systems semiformale oder formale Techniken und ein Konsistenzabgleich zwischen Quellcode und Spezifikation. Es werden starke Mechanismen gefordert. Systeme mit den Qualitätsstufen Q6 und Q7 bieten einen formal verifizierten Schutz mit Mechanismen die stark (Q6) bzw. sehr stark (Q7) sind. 75 8.5.3 ITSEC Europäische Kriterien in den Information Technology Security Evaluation Criteria (ITSEC) Analog zu den ITS Unterteilung in Funktionsklassen und erweiterte Qualitätsklassen. Qualität wird unterteilt in Korrektheit und Wirksamkeit des Sicherheitsmechanismus. Wirksamkeit wird in drei Stufen bewertet: niedrig, mittel und hoch Korrektheit wird in sechs Evaluationsstufen E1 (niedrig) bis E6 (hoch). Auf europäischer Ebene wurden die "Information Technology Security Evaluation Criteria – ITSEC" am 3. März 1998, im Rahmen des europäischen Abkommens zur gegenseitigen Anerkennung, der Zertifikate der ITSEC-Evaluation, in Kraft gesetzt. Die ITSEC-Kriterien legen analog zu den deutschen ITS-Kriterien Funktionsklassen und Qualitätsklassen fest. Die Qualitätsstufen werden jedoch noch weiter aufgeteilt in Korrektheit und Wirksamkeit des eingesetzten Mechanismus. Die Wirksamkeit wird durch eine Skala durch die Stufen niedrig, mittel und hoch bewertet. Zur Bewertung des Vertrauens in die Korrektheit werden sechs hierarchische Evaluationsstufen E1 bis E6 definiert. E1 bezeichnet die niedrigste, E6 die höchste Stufe. 76 8.5.3 ITSEC Wirksamkeitsstufen Niedrig: Mechanismen bieten Schutz gegen zufälliges, unbeabsichtigtes Überwinden der Sicherheitsmechanismen Mittel: Mechanismen bieten Schutz gegen Angreifer mit beschränkten Gelegenheiten und Betriebsmitteln Hoch: Mechanismen können nur von Angreifern überwunden werden, die über sehr gute Fachkenntnisse, Gelegenheiten und Betriebsmittel verfügen, wobei ein solcher erfolgreicher Angriff normalerweise als nicht durchführbar beurteilt wird. Die Bedeutung der einzelnen Wirksamkeitsstufen zeigt die Folie. 77 8.5.3 ITSEC Evaluationsstufen E1 Informelle Beschreibung der Sicherheitsstrategie und der Bedrohungen. Informelle Beschreibung des Architekturentwurfs mit den einzusetzenden Sicherheitsmechanismen. Funktionale Tests. E2 Informelle Beschreibung des Feinentwurfs. Testdokumentationen und Bewertung der Testergebnisse. E3 Beschreibung des Zusammenhangs zwischen Quellcode bzw. Hardware- Konstruktionszeichnungen und den Komponenten des Feinentwurfs. Die Bedeutung der Evaluationsstufen ist auf den folgenden zwei Folien beschrieben. 78 8.5.3 ITSEC E4 Formales Sicherheitsmodell, semiformale Notation der sicherheitsspezifischen Funktionen, des Architektur- und des Feinentwurfs. E5 Feinentwurf muss nachvollziehbar auf Quellcode bzw. Hardware-Konstruktionszeichnungen abgebildet werden. E6 Formale Spezifikation der Sicherheitsanforderungen und des Architekturentwurfs. 79 8.5.3 ITSEC Qualität eines Systems ist Paar aus (Evaluationsstufe, Wirksamkeitsstufe) ITS ITSEC Q0 E0 Q1 (E1,niedrig) Q2 (E2,mittel) Q3-Q5 (E3-E5,hoch) Q6,Q7 (E6,hoch) Die Qualität eines Systems besteht dann aus einem Paar aus Evaluationsstufe und Wirksamkeitsstufe. Der Zusammenhang zwischen den Qualitätsstufen der ITS-Kriterien und den Evaluationspaaren der ITSEC sind in der Tabelle der Folie gezeigt. 80 8.5.4 Common Criteria Die Common Criteria (CC) sind Grundlage für einen internationalen Standard. Die CC 2.1 sind ISO-Standard 15408. Die CC sind eine Weiterentwicklung und Harmonisierung der ITSEC, der TCSEC und der kanadischen Kriterien CTCPEC. Common Methodology for Information Security Evaluation (CEM) Gemeinsame abgestimmte Evaluationsmethodologie auf Grundlage der CC. CC beschreiben, was evaluiert werden soll, die CEM, wie evaluiert werden soll. Mit den Common Criteria (CC) wurden Kriterien entwickelt, die als Grundlage für einen internationalen Standard dienen und damit weltweit anerkannt und gültig sein sollen. Das Bundesamt für Sicherheit in der Informationstechnik (BSI) hat dabei die Rolle des deutschen Partners übernommen. Die CC 2.1 sind durch die Internationale Standardisierungsorganisation (ISO) unter der Nummer 15408 ein internationaler Standard geworden. Erste Entwürfe einer gemeinsamen Evaluationsmethodologie (Common Methodology for Information Security Evaluation CEM), die der Entwicklung eines gemeinsamen Konzepts und einer abgestimmten Methodik für die Evaluierung auf Grundlage der CC dienen, sind entwickelt und veröffentlicht worden. Die Kriterien beschreiben, was evaluiert und die Methodologie, wie evaluiert werden soll. 81 8.5.4 Common Criteria Common Criteria besteht aus drei Teilen. Teil 1: Einführung und allgemeines Modell - Überblick über die für die Evaluierung erforderlichen Dokumente - Schutzprofile (Protection Profile) beschreiben die Sicherheitsanforderungen - Einsatzumgebung der Sicherheitsmechanismen (Security Target) Die Common Criteria bestehen aus drei Teilen. Teil 1: Einführung und allgemeines Modell Hier werden die Grundlagen der IT-Sicherheitsevaluation und der allgemeine Geltungsbereich der CC erläutert. In den Anhängen werden Schutzprofile (Protection Profile) und Sicherheitsvorgaben (Security Target) für den zu prüfenden Evaluationsgegenstand (EVG) beschrieben. 82 8.5.4 Common Criteria Teil 2: Funktionale Sicherheitsanforderungen - Anforderungen an Sicherheitsfunktionen analog zu den ITSEC-Funktionsklassen Teil 3: Anforderungen an die Vertrauenswürdigkeit - Beschreibung der Kriterien zur Evaluierung der Schutzprofile Funktionsklassen der CC (ca. 150) sind wesentlich konkreter und detaillierter als ITSEC-Funktionsklassen. Evaluierungsstufen der CC entsprechen den ITSECEvaluierungsstufen. Teil 2: Funktionale Sicherheitsanforderungen Dieser Teil enthält einen umfangreichen Katalog von Funktionalitätsanforderungen. Er stellt ein empfohlenes Angebot für die Beschreibung der Funktionalität eines Produktes bzw. Systems dar, von dem jedoch in begründeten Fällen abgewichen werden kann. Im Anhang finden sich Hintergrundinformationen. Zusätzlich werden Zusammenhänge zwischen Bedrohungen, Sicherheitszielen und funktionalen Anforderungen aufgezeigt. Teil 3: Anforderungen an die Vertrauenswürdigkeit Hier sind die Anforderungen an die Vertrauenswürdigkeit aufgelistet. Wichtig ist, dass ein Evaluationsergebnis immer auf einer Vertrauenswürdigkeitsstufe (EAL) basieren sollte, eventuell ergänzt durch weitere Anforderungen. Die CC geben sieben hierarchische EALStufen vor. 83