Modellbasierte Entwicklung sicherer Software Flashcards
Was ist die Motivation für IT-Sicherheit?
- Wirtschaft, Unternehmen und Gesellschaft hängen zunehmend ab von Computernetzwerken für
- Kommunikation, Finanzen, Energieversorgung, Transport…
- Angriffe können großen finanziellen Schaden verursachen.
- Vernetzte Systeme anonym und aus Entfernung angreifbar.
- Computersysteme müssen sicher sein.
Sicherheit
Definition
Schutz von Daten/Systemen gegen mutwillige Angriffe. Inhärent schwierig (zielorientierter Angreifer).
Was sind Ursachen von Sicherheitslücken?
- Korrektes Entwerfen sicherer Systeme schwierig.
- Selbst Experten irren sich
- Designern fehlt es an Erfahrung in Sicherheit.
- Sicherheit im Nachhinein.
- Angriffs-Informationen verbreiten sich schnell.
- Keine Rückmeldung über Sicherheit aus Kundensicht.
- Blindes Vertrauen in Mechanismen
- Sicherheitsvorkehrungen können umgangen werden, ohne diese zu brechen
*
- Sicherheitsvorkehrungen können umgangen werden, ohne diese zu brechen
Was ist das Ziel Modellbasierter Entwicklung sicherer Systeme ?
Sicherheit erhöhen, bei begrenzter Investition an Zeit und Kosten.
Modellbasierte Entwicklung sicherer Systeme
Lösungsansatz
- Aus Artefakten in industrieller Entwicklung und Betrieb sicherheitskritischer Software: Modelle extrahieren (UML, Quellcode, Konfigurationen).
- Werkzeugunterstützung für theoretisch fundierte, effiziente (automatische) Sicherheitsanalyse.
- Modell-basierte Entwicklung sicherer Systeme.
Modellbasierte Entwicklung sicherer Systeme
Einsatzfelder
- Systementwurf:
- z.B. Architekturbewertung, Plattformenwahl, Altsystemeinbindung.
- Autom. Sicherheits- und Risikoanalyse modellierter GP und Softwarearchitekturen unter Einbezugnahme des Systemkontexts.
- Implementierung:
- Quellcodeanalyse, Testfolgengenerierung.
- Laufender Betrieb:
- Konfigurationsmanagement, Überprüfung von Berechtigungen, Einrichtungen von Firewalls…
- Autom. Checks von Systemkonfigurationen (z.B. SAP Berechtigungen, …).
- Sichere GP/WF: Berücksichtigung von Sicherheit ab Geschäftsprozessentwurf.
- Einsatz in Sicherheitsaudits: Erhöht Vertrauen in Korrektheit und Vollständigkeit.
Modellbasierte Sicherheitsanalyse von GP und Softwarearchitekturen mit Unified Modeling Language (UML)
Warum UML?
- De-facto Standard in industrieller Modellierung. Große Anzahl von Entwicklern in UML ausgebildet
- Einfache, intuitive Notation, relativ genau definiert.
- Weitgehende Werkzeugunterstützung (auch für Code-Generierung, Analyse, Reverse Engineering, Simulation, Transformation).
Was ist UMLsec?
- Erweiterung für Entwicklung sicherer Systeme:
- Auswertung von UML-Spezifikationen für Sicherheitsanalyse während Entwicklung.
- Beinhaltet etablierte Sicherheits-Regeln als Checkliste.
- Nicht auf sichere Systeme spezialisierte Entwicklern zur Verfügung gestellt.
- Berücksichtigt Sicherheitsanforderungen von Beginn der System-Entwicklung und im -Kontext.
- Sicherer Entwurf durch Modellanalyse.
- Sichere Implementierung durch modellbasierte Testgenerierung.
- Macht Zertifizierung kostengünstiger.
UMLsec
Umsetzung
- Wiederkehrende Sicherheitsanforderungen, Angriffs-Szenarien, und Sicherheits-Konzepte als Stereotypen und Tagged Values angeboten.
- [Stereotypen: Markierungen an UML-Modellelementen, z.B. «secrecy»
- Tagged Values: Annotationen der Form (tag=value), mit denen weitere Informationen übergeben werden.
- Verwenden Constraints, um Spezifikationen unter Verwendung automatischer Werkzeuge zu verifizieren und mögliche Schwächen anzuzeigen.
- [Stereotypen können mit vordefinierten Constraints verbunden werden.]
- Garantiert, dass UML Spezifikation gewünschtes Niveau der Sicherheitsanforderungen liefert.
- Verbindung zum Code über Round-Trip.
Sicherheitsanforderungen
- Vertraulichkeit
- Integrität
- Verfügbarkeit
- Authentizität
- Nichtabstreitbarkeit
- Anonymität
Was ist Link Encryption?
- Nur direkte Knotenverbindungen verschlüsselt.
- Einfache Konstruktion.
- Unterstützt durch Controller-Hardware, transparent für Software.
- Daten in Netzwerkknoten als Plaintext.
Was ist End to End Encryption
- Daten durchgehend verschlüsselt.
- Komplexer zu implementieren.
- Intransparent für Software, separate Behandlung von Adressen und Daten
Vorteile von Metamodellierung
- Vorteile im Allgemeinen:
- • Präzise Definition von Modellierungsnotation
- Vorteile von MOF:
- Wohlverstandene Notation für Definition der Modellierungsnotation (UML-Klassendiagramme)
- Weitgehende Werkzeugunterstützung (Modelltransformation, Codegenerierung etc)
Nachteile von Metamodellierung
- Einschränkungen im Allgemeinen:
- Erstellung / Anpassung Metamodell: Benötigt Aufwand und Expertise.
- Nachteile von MOF:
- Dieselbe Notation (Klassendiagramme) auf verschiedenen Ebenen evt. verwirrend.
- Logisch zirkulär (definiere Klassendiagramme mit Klassendiagrammen).
UML-Profil
Tagged Values
- Werte beschreiben Eigenschaften eines Stereotypen (fachliches Konzept).
- Tagged Values: Name-Wert Paare. Einsatz von Tagged Values im Modell:
- Kommentarfeld, das mit Element verbunden ist oder
- Geschweifte Klammern {Name = Wert} direkt in Element geschrieben.
UML Profil
Stereotypen
Definition von Stereotypen:
Definition neuer Stereotypen gemäß Metamodell:
(NB: Der Pfeil ist eine Spezialisierung.)
Was deckt UMLsec ab?
- Sicherheitsanforderungen: «secrecy»,…
- Bedrohungsszenarien: Vewende Threatsadv(ster).
- Sicherheitskonzepte: Zum Beispiel «smartcard».
- Sicherheitsmechanismen: Z.B. «guarded access».
- Grundlegende Sicherheit: eingebaute Verschlüsselung
- Physikalische Sicherheit: Im Verteilungsdiagramm.
- Sicherheitsmanagement: Im Aktivitätsdiagramm.
- Technologie spezifisch: Java, CORBA Sicherheit.
UMLsec
Unterstützte Modelle
- Aktivitätsdiagramm: Sicherer Kontrollfluss, Koordination
- Klassendiagramm: Austausch von Daten; hält Sicherheitslevel bereit
- Sequenzdiagramm: Sicherheitskritische Interaktion
- Zustandsdiagramm: Sicherheit innerhalb eines Objekts
- Verteilungsdiagramm: Physikalische Sicherheitsanforderungen
- Package: Ganzheitliche Betrachtung der Sicherheit
UMLsec
Definition von Stereotypen und Tags
- Constraints nutzen sicherheitsbewusste Interpretation von UML Diagrammen.
- «fair exchange», «provable», «secure links», «data security»:
- Parametrisiert über Gegnerart bzgl. Anhalten der Sicherheitsbedingungen.
- {adversary}: Werte in Form von (T;C).
- T: Gegnerart, z.B. T = default für Gegner später definiert, welches selbst definiert werden könnte.
- Falls ausgelassen T = default.
- C: Logische Bedingung auf Vorkenntnisse KpA des Gegners.
- Falls ausgelassen, C sichert das die in {secrecy} Tag von «critical» einbezogene Werte nicht als Teilausdruck in KpA erscheinen.
- T: Gegnerart, z.B. T = default für Gegner später definiert, welches selbst definiert werden könnte.
UMLsec
Sicherheitsanforderung: Fair Exchange
Definition
- Elektronische Handelsware, Anforderung der fair exchange setzt voraus, dass der Handel so durchgeführt wird, sodass beteiligte Parteien vom Betrug verhindert werden.
- Wenn z.B. der Käufer eine Anzahlung machen muss, sollte der Käufer in der Lage sein die Zahlung zu beweisen und das Geld zurückzufordern, falls die Ware danach nicht geliefert wurde.
UMLsec
Fair-Exchange im Use-Case Diagramm
- Ausführung der Transaktionen: Beide Parteien vom Betrug verhindern.
- Anwendbar in Teilsystemen durch ein Anwendungsfalldiagramm.
- Kann durch anderes Teilsystem verfeinert werden, falls es auch mit stereotypiert ist.
- Nur informelle Bedeutung, im Gegensatz zu unteren Stereotypen.
- Zeigt, wie die Sicherheitsanforderungen (wie Stereotypen) auch in anderen Arten von Diagrammen wie folgende in Anwendungsfalldiagrammen passend enthalten sein können.
UMLsec
Fair Exchange
Aktivitätsdiagramm
- Bedingung: Wenn im Aktivitätsdiagramm ein {start} Punkt erreicht wurde, wird immer ein {stop} Punkt erreicht.
- assoziierte Tags
- {start}, {stop}, {adversary}.
- {start}, {stop} nehmen Paare (good; state) als Werte,
- good ist der Name einer Ware, der verkauft werden soll, kann entfallen
- State: Name eines States.
- {adversary} Gegnerart relativ zu der die Sicherheitsanforderung halten soll.
UMLsec
Fair Exchange
Formal
- Formal für ein gegebenes Subsystem S:
- S erfüllt die Bedingung von «fair exchange» für einen Angreifertyp A wenn für jedes Gut, das verkauft wurde, folgende Bedingung eingehalten wird:
- Für jede Ausführung e von [[S]]A existiert ein n ∈ N ,sodass für jede Sequenz I1,……..,In einer Eingabe von Multimengen eine Ausführung e’ existiert, welche eine Erweiterung von e ist und dann die Eingaben von I1,……..,In, hinsichtlich des relevanten Guts, so verarbeitet, dass mindestens so viele {stop} Zustände in e’ sind, wie {start} Zustände in e.