Entwicklung sicherer komponentenbasierter Software

Software

Die Vertraulichkeit von Daten, die in IT-Systemen verarbeitet werden, zu gewährleisten ist oftmals eine zentrale Anforderung an solche Systeme. Das ist insbesondere dann der Fall, wenn sensible oder personenbezogene Daten verarbeitet werden. KASTEL hat als Ziel eine Methode zu liefern, die es erlaubt, bereits beim Entwurf eines IT-Systems zentrale Sicherheitsanforderungen systematisch zu betrachten und diese Anforderungen über den Verlauf der Systementwicklung konsistent zu halten.

Deshalb hat KASTEL einen modellbasierte Ansatz entwickelt, der die Spezifikation von Sicherheitsanforderungen für komponentenbasierte IT-Systeme erlaubt. Dabei kann die Vertraulichkeitsspezifikation über unterschiedliche Verfeinerungsstufen hinweg auf Konsistenz geprüft werden und Anforderungen auch dazu verwendet werden die Implementierung einzelner Komponenten des Systems zu überprüfen. Zur Modellierung Spezifikation auf Architekturebene verwenden und erweitern wir das Palladio Component Model.

Modell-basierte Spezifikation von Vertraulichkeitsanforderungen

Um mit unserem Ansatz dafür zu sorgen, dass vertrauliche Daten ausschließlich befugten Personen zugänglich sind, muss zunächst spezifiziert werden, welche Daten vertraulich sind. Diese Vertraulichkeitsspezifikation wird einerseits benötigt, um schon während dem Entwurf der Softwarearchitektur unerwünschte Informationsflüsse zwischen Komponenten erkennen zu können. Andererseits wird die Vertraulichkeitsspezifikation am Ende der den Entwicklung benötigt um nachweisen zu können, dass eine konkrete Implementierung diese Spezifikation einhält. Die in unserem Ansatz genutzten Vertraulichkeitsanforderungen geben an,

  • welche Parameter und Rückgabewerte einer Software-Schnittstellen welchen Nutzerrollen bekannt sein dürfen,
  • wie Hardware und Laufzeitumgebung die Vertraulichkeit der von ihnen verarbeitenden Daten beeinflussen sowie
  • welche Angreifertypen mit welchen Fähigkeiten betrachtet werden sollen und welche Daten diesen Angreifern bekannt sein dürfen.

Für ein Smart-Metering-System, dass den Stromverbrauch eines Haushalts und der darin verwendeten Einzelgeräte mit Hilfe von digitalen Stromzählern sehr genau aufzeigen kann, kann die Vertraulichkeitspezifzikation beispielsweise wie folgt aussehen: An der entsprechenden Schnittstelle des intelligenten Stromzählers wird angeben, dass die Rollen Energieverbraucher und Energielieferant den aktuellen Zählerstand des Stromzählers ablesen dürfen. Allerdings darf nur der Verbraucher den sekundengenauen Verbrauch einzelner Geräte abfragen. Der Energielieferant erhält nur Zugriff auf den, beispielsweise für Abschnitte von jeweils 15 Minuten zusammengefassten, Gesamtverbrauch des Haushalts. Beide Anforderungen lassen sich mit unserem Ansatz im Architekturmodell jeweils mit einer einzeiligen Annotation ausdrücken und sind auch für Nicht-Sicherheitsexperten verständlich. Für die Hardware des Systems wird dann noch beispielsweise angeben, ob mit Einflüssen von anderen Software-Komponenten, die auf der gleichen Hardware betrieben werden, zu rechnen ist, oder welche Nutzerrollen physisch Zugriff auf die Hardware haben. Letztendlich kann z.B. noch ein Angreifer modelliert werden, der Zugang zu den Daten des Energielieferanten hat und physischen Zugriff auf den Stromzähler bekommt.

Modell-basierte Spezifikation von Kommunikationskanälen

In verteilten komponentenbasierten Systemen werden die Kommunikationseigenschaften zwischen den Teilsystemen für die Sicherheit relevant. Deswegen müssen die Eigenschaften der Kommunikationskanäle im Prozess frühzeitig berücksichtigt werden. Hierfür wurde eine Möglichkeit erarbeitet, die Kommunikationskanäle bezüglich ihrer sicherheitsrelevanten Eigenschaften zu modellieren. Die Modellierung ist dabei für eine werkzeuggestützte Überprüfung eines Systementwurfs auf die Spezifikationsgemäßheit seiner Sicherheitseigenschaften geeignet. Für die Modellierung von Kommunikationsverbindungen wurde zudem eine Liste von generischen Bedrohungen auf Kommunikationsvorgänge erarbeitet, sodass potentielle Angriffe auf Modellebene untersucht werden können. Für die Vertraulichkeit relevante Eigenschaften von Kommunikationskanälen sind locality, tamper-protection, access-control und encryption. Dabei definiert access-control, ob ein Kommunikationskanal für die Nutzung zugangsgeschützt ist und encryption zeigt an, ob der Kommunikationskanal Vertraulichkeit durch Verschlüsselung des Nachrichteninhalts anbietet.

Modell-basierte Spezifikation von Informationsfluss

Die oben beschriebenen Spezifikationsmöglichkeiten erlauben es, den Zugriff auf die über Schnittstellen auslesbaren Daten einzuschränken. Über die Informationen, die in diesen Daten enthalten sind treffen sie jedoch keine Aussage.

In KASTEL nutzen wir Informationsflusseigenschaften von Komponenten. Es wird ermöglicht zu spezifizieren, welche Informationen aus eingehenden Daten in ausgehenden Daten enthalten sein dürfen. Die Bedeutung der Spezifikationen ist formal fundiert. So kann Sicherheit insbesondere auch für Kompositionen von Komponenten mathematisch garantiert werden.

Beteilgte Forschergruppen waren das Institut für theoretische Informatik (ITI), die TeleMatics, das Institut für Angewandte Informatik und Formale Beschreibungsverfahren (aifb) sowie das Institut für Programmstrukturen und Datenorganisation (IPD).

Ansprechpartner:  Kaibin Bao (AIFB)Simon Greiner (ITI)Christian Haas (TM)Martin Hecker (IPD)Max Kramer (IPD)

Referenzen

  1. Max E. Kramer, Anton Hergenröder, Martin Hecker,Simon Greiner, Kaibin Bao Specification and Verification of Confidentiality in Component-Based Systems Poster at the 35th IEEE Symposium on Security and Privacy

Weiterführende Links

Palladio