Einführung
Der Bereich "Sicherheit" wird im Allgemeinen als komplex und nervenraubend angesehen, und die meisten Menschen sind der
Meinung, sie wüssten intuitiv, was ein "Muster" ist, da die Erkennung und Verallgemeinerung erkannter Muster ein
natürlicher Teil des menschlichen Bildungsprozesses ist. Für diese Übung sollen die folgenden Arbeitsdefinitionen
verwendet werden:
Sicherheit ist "der Zustand eines Systems, der sich aus der Implementierung und Pflege von
Maßnahmen zum Schutz des Systems ergibt." [1]
"Ein Muster ist die Abstraktion einer konkreten Form, die in bestimmten unwillkürlichen
Kontexten wiederholt auftritt." [2]
Bei dem Versuch, die beiden Begriffe "Sicherheit" und "Muster" miteinander zu verbinden, kann es zu Spannungen kommen.
Es hat zahlreiche verschiedene Versuche gegeben, Sicherheitsmuster zu erzeugen (siehe Anhang A). Wir haben versucht, in
diesem Dokument Material zu erfassen und festzuschreiben, das über mehrere Jahre von verschiedenen
Sicherheitsfachleuten in unterschiedlichen Kundenprojekten zusammengestellt wurde und ein Grundgerüst für IBM
Sicherheitsmuster bildet. Im Kontext dieses Dokuments gilt die folgende Arbeitsdefinition für "Sicherheitsmuster":
Eine Abstraktion der Bedingungen, die aus der Implementierung und Pflege wiederkehrender Maßnahmen zum Schutz
des Systems resultieren.
Innerhalb der Softwareentwicklergemeinde gibt es derzeit Bemühungen, eine Methodik für die Entwicklung von Mustern zu
definieren [3].
Ein einheitliches Vokabular zum Ausdrücken von Konzepten und eine Sprache, die diese Konzepte miteinander
verbindet, sind für jede wissenschaftliche oder technische Disziplin unerlässlich. Mit Mustern verfolgt die
Software-Community das Ziel, einen Grundstock an Literatur zu schaffen, die Softwareentwicklern helfen soll,
wiederkehrende Probleme im gesamten Bereich der Softwareentwicklung zu lösen. Muster helfen bei der Schaffung einer
gemeinsamen Sprache, die Erkenntnisse über diese Probleme und Erfahrungen mit diesen Problemen sowie deren Lösung
vermitteln kann. Durch das formale Festschreiben dieser Lösungen und ihrer Beziehungen können wir erfolgreich eine
Wissensbasis schaffen, die unser Verständnis von einer guten, an den Bedürfnissen der Benutzer ausgerichteten
Architektur definiert. Durch die Bildung einer einheitlichen Mustersprache zur Verdeutlichung der Strukturen und
Mechanismen unserer Architektur können wir sie verständlich und vernünftig beurteilen. Das Hauptaugenmerk liegt
dabei nicht primär auf der Technologie, sondern auf der Schaffung einer Kultur für die Dokumentation und
Unterstützung einer soliden wissenschaftlichen Architektur sowie eines entsprechenden Designs. [4]
Für Unklarheiten sorgt hauptsächlich die Auffassung, Muster lägen wie Schönheit im Auge des Betrachters. Wenn sich fünf
verschiedene, mit dem Thema Sicherheit befasste Personen treffen, werden Sie Muster demzufolge auf eine für ihr
jeweiliges Interessengebiet spezifische Weise definieren.
Aus diesem Grunde habe ich Zuflucht zu einer Beschreibung von "Rollen" genommen, die helfen sollen, Muster nach
Interessengemeinschaften zu gruppieren.
Wer kommt zuerst?
In der Welt der Software gibt es Personen, die Dinge entwerfen, Personen, die Bilder zeichnen und Dokumente schreiben,
Personen, die Code schreiben und Personen, die alle diese Teile zusammenfügen und computergestützte Systeme
bereitstellen.
Jede Organisation definiert ihre Aufgaben wahrscheinlich auf eigene Weise. Es gibt jedoch archetypische Rollen.
Ein Archetyp ist ein idealisiertes Modell einer Person, eines Objekts oder eines Konzepts, von dem ähnliche
Instanzen abgeleitet, kopiert, gebildet oder emuliert werden. In der Psychologie ist ein Archetyp ein Modell für
eine Person, eine Persönlichkeit oder ein Verhalten. [5]
In mittleren bis großen Organisationen sind Aufgaben verschiedenen Personen mit unterschiedlichen organisatorischen
Zuständigkeiten zugeordnet. Die Informations-Assets des Geschäfts werden in der Regel von Geschäftsanalytikern und
Geschäftsanwendungen geschützt. Diese treiben die Erstellung von Sicherheitsanforderungen für Geschäftsanwendungen
voran.
Archetyp 1 - Geschäftsanalytiker
In Organisationen, die sich nach gesetzlichen Bestimmungen oder Verordnungen richten müssen, gibt es manchmal auf
Leitungsebene bestimmte Aufgaben zur Überwachung und Einhaltung dieser Bestimmungen und Verordnungen. Der
sicherheitstechnische Leiter und der leitende Datenschutzbeauftragte arbeiten normalerweise mit Geschäftsanalytikern
zusammen, um eine Gruppe unternehmensweiter Richtlinien und Anforderungen zusammenzutragen, die die Grundlage guter
geschäftsrelevanter Prozesse und Verfahren bilden.
Archetyp 2 - Sicherheitstechnischer Leiter / Leitender Datenschutzbeauftragter
Die meisten Organisationen haben heute unabhängig von ihrer Größe eine Firewall. Selbst einzelne Benutzer richten zu
Hause eine Firewall für ihr Heimnetz ein. Die zugehörigen Einheiten, einfache wie komplexe, müssen von jemandem
installiert und gewartet werden.
Archetyp 3 - Netzsicherheitsbeauftragter
Wenn es darum geht, für die vom Geschäft definierten Anforderungen einen bestimmten Sicherheitsmechanismus zu kennen
und auszuwählen, arbeiten viele Personen an der Sicherheitsimplementierung zusammen.
Archetyp 4 - Sicherheitsarchitekt
Sicherheitsentwickler, Sicherheitsimplementierer, Autor von Sicherheitsrichtlinien, Administrator für
Sicherheitsrichtlinien, Administrator für Sicherheitssysteme
Betrachtung von Mustern nach Rolle
Dieses Dokument und das begleitende Präsentationsmaterial sollen die vorhandenen allgemeinen Sicherheitsmuster
innerhalb der IBM Kundengemeinde und der Community der IBM Geschäftsanalytikern aufzeigen und veranschaulichen. Ziel
der Bemühungen um e-business-Muster ist es, die Menge an verschiedenen Informationen in eine Abstraktion zu gießen, die
allgemein genug ist, um auch von Fachleuten außerhalb des Sicherheitsbereichs verstanden zu werden, und doch so viel
Kontext bietet, dass sie eine konkrete Unterstützung für die Sicherheits-Community darstellt.
IBM ist ein Mikrokosmos der größeren Softwarebranche, denn IBM ist sowohl in der Produktentwicklung und der Entwicklung
von Geschäftsanwendungsservices als auch im Bereich der Middlewareprodukte für die Verwaltung und Implementierung von
Anwendungen vertreten.
Es gibt diverse Vorgehensweisen für das Entwerfen und Entwickeln sicherer Anwendungen (d. h. MASS, Open Group, JAAS).
Etliche dieser Vorgehensweisen sind jedoch auf den geschulten Sicherheitsfachmann mit detaillierten
Technologiekenntnissen ausgerichtet. Eine Gruppe von Mustern bilden somit die "Sicherheitsarchitekturmuster".
Detaillierte Architekturen für die Sicherheit sind notwendig, um die Technologie für Sicherheitslösungen entwickeln zu
können, auf die sich die Muster beziehen, soweit dies zweckmäßig ist. Das vorliegende Dokument hat jedoch nicht zum
Ziel, alle Sicherheitsarchitekturmuster zu beschreiben.
Was ist Sicherheit?
Die IETF ist eine Organisation, die wesentlich zur Entwicklung des Internet, wie wir es heute kennen, beigetragen hat.
Im Jahr 2000 hat die IETF ein Sicherheitsglossar erstellt, in dem die meisten grundlegenden Konzepte der IT-Sicherheit
erfasst sind. Es gibt immer wieder Verbesserungen, neue Technologien und Mechanismen kommen und gehen, die
Basisdefinitionen bleiben jedoch.
Zu den Sicherheitskomponenten, die heute am weitesten verbreitet sind, gehören unter anderem Identifikation und
Authentifizierung, Berechtigung, Zusicherung der Identität, Überprüfung, Nachrichtenschutz, Vertraulichkeit und
Integrität. Dieses Grundgerüst stellt nicht nur Muster für jeden einzelnen Sicherheitsmechanismus bereit, sondern wurde
auch verwendet, um die einzelnen Sicherheitsmechanismen auf allgemeine Merkmale zu untersuchen. Dieses White Paper
fokussiert sich auf die Identifikation eines "Sicherheitslösungsmusters". Nach genauer Betrachtung einer detaillierten
Gruppe einzelner Musterelemente für jeden Sicherheitsmechanismus (z. B. die Authentifizierung mit Benutzernamen,
Kennwort, Kerberos, Public Key Infrastructure) haben sich diese allgemeinen Elemente herauskristallisiert und wurden
anschließend für Authentifizierung, Berechtigung, Zusicherung der Identität usw. abstrahiert.
Die Suche nach allgemeinen Elementen in allen Sicherheitsmustern hat zur Identifikation der drei Untermusterelemente
geführt, die sich in bestimmter Form in jeder Art von Sicherheitslösung wiederfinden.
-
Innerhalb der Software muss es einen Punkt geben, an dem der Sicherheitsmechanismus aufgerufen wird (d. h. einen
Kontrollpunkt).
-
Für die Ausführung des Kontrollpunktes gibt es in der Regel eine bestimmte Art von Metainformationen, die als
"Eigenschaften für Systemzuverlässigkeit und -zugriff" bezeichnet werden.
-
Es gibt Aufgaben, bei denen es um die Initialisierung und regelmäßige Pflege von Sicherheitsmechanismen geht. Dies
sind Aufgaben für Sicherheitsmanagement und Arbeitsabläufe.
Wir haben ein Beispiel für die "Identifikation" gewählt, um zu demonstrieren, wie jeder einzelne Sicherheitsmechanismus
diesen drei Unterelementen zugeordnet werden kann. Im IETF-Glossar findet sich dazu Folgendes:
Identifikation - (I) Ein Akt oder Prozess, mit dem einem System eine Kennung präsentiert wird, die es dem
System ermöglicht, eine Systementität zu erkennen und von anderen Entitäten zu unterscheiden. (Siehe:
Authentifizierung.)
Beim Aufrufen einer Anwendung eine Person von einer anderen unterscheiden zu können, ist ein Muster, mit dem jedes
Geschäft konfrontiert wird. Die Strategien zur Lösung des Geschäftsproblems sind von der Anzahl und Vielfalt der in der
Anwendung und ihrer Implementierungsumgebung vorhandenen Elemente abhängig. Einige Unternehmen überlassen die
Entscheidung über die "Benennung" den einzelnen Anwendungen oder vielleicht einer Gruppe von Anwendungen in einem
Geschäftszweig. Bei manchen Unternehmen gibt es Vorgaben durch die Software in den Rechenzentren. Wieder andere
Unternehmen haben die Anwendungsimplementierungsumgebung eng mit einem strikten Set von Mechanismen verknüpft.
Ungeachtet dessen gibt es einen Punkt, an dem einer Anwendung eine "Kennung" präsentiert wird. Dieses Muster wird
als "Sicherheitskontrollpunkt" für die Identifikation bezeichnet. Menge und Art der erforderlichen Informationen können
sehr stark schwanken. Eine Kennung kann der Name einer realen Person sein (d. h. Maryann Hondo) oder ein Pseudonym (z.
B. mhondo). Die Kennung kann global eindeutig sein (eine UUID) oder innerhalb eines qualifizierten Namespace (d. h. mhondo@us.ibm.com).
Merkmale eines Sicherheitsmusters
-
Definition von einem oder mehreren Kontrollpunkt(en) (Identität, Authentifizierung, Berechtigung,
Richtliniendurchsetzung, Überprüfung, Einhaltung von Vorschriften, Nachrichtenschutz)
-
Definition von Eigenschaften für den Systemschutz (Konfigurationsvorgaben; Akzeptanz- und Zugriffsregeln)
-
Definition von Managementaufgaben (Bereitstellung, Registry/Repository-Synchronisation, Steuerung,
Überwachung)
-
RFC 2828 Internet Security Glossary, Mai 2000
-
Understanding and Using Patterns in Software Development, Dirk Riehle und Heinz Zullighoven
-
Design Patterns: Elements of Reusable Object-Oriented Software, Erich Gamma, Richard Helm, Ralph Johnson
und John Vlissides
-
Patterns and Software: Essential Concepts and Terminology, Brad Appleton: http://www.cmcrossroads.com/bradapp/docs/patterns-intro.html#Origins
-
Wikipedia: http://en.wikipedia.org/wiki/Archetype
|