Konzept: Sicherheitsmuster
Beziehungen
Zugehörige Elemente
Hauptbeschreibung

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.

  1. Innerhalb der Software muss es einen Punkt geben, an dem der Sicherheitsmechanismus aufgerufen wird (d. h. einen Kontrollpunkt).
  2. 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.
  3. 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.

Übersicht über Sicherheitsmuster

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)

Referenzliteratur

  1. RFC 2828 Internet Security Glossary, Mai 2000
  2. Understanding and Using Patterns in Software Development, Dirk Riehle und Heinz Zullighoven
  3. Design Patterns: Elements of Reusable Object-Oriented Software, Erich Gamma, Richard Helm, Ralph Johnson und John Vlissides
  4. Patterns and Software: Essential Concepts and Terminology, Brad Appleton: http://www.cmcrossroads.com/bradapp/docs/patterns-intro.html#Origins
  5. Wikipedia: http://en.wikipedia.org/wiki/Archetype