Post on 05-Apr-2015
1P. Herrmann: Formal-basierte Laufzeitüberwachung komponentenstrukturierter Software
Formal-basierte Laufzeitüberwachungkomponentenstrukturierter Software
Peter Herrmann,RvS, Informatik IVUniversität Dortmund
Inhalt: Komponentenstrukturierte
Software Vertrauensbasierte Laufzeit-
überwachung Komponentenkontraktmodelle Sicherheitsmodelle des
Gesamtsystems Formale Verifikation
Application
Appli-cationOwner
Com-ponentVendor
Trust
Compo-nent
Control
ContractModelsContract
ModelsContractModels
checkedby
securitywrapper
SystemModels
(e.g., RBAC,Info Flow)
FormalDeduction
2P. Herrmann: Formal-basierte Laufzeitüberwachung komponentenstrukturierter Software
Komponentenstrukturierte Software
Komponenten: Eigenschaften:
Kopplungselemente Unabhängiger Einsatz
Wiederverwendbarkeit Unabhängige Entwicklung Schnittstellen werden in
Kontrakten spezifiziertNur explizite Kontext-abhängigkeitenKonfigurationsunterstützung
Plattformen: Java Beans / EJB COM/DCOM/COM+ CORBA component model
Host Owner
Compo-nent
Application
Compo-nent
Compo-nent
User
ApplicationOwner
Contract Component Supplier
Component SupplierContract
3P. Herrmann: Formal-basierte Laufzeitüberwachung komponentenstrukturierter Software
Komponentenstrukturierte Software
Host Owner
Compo-nent
Application
Compo-nent
Compo-nent
User
ApplicationOwner
Contract Component Supplier
Component SupplierContract
Sicherheit von Komponenten: Sicherheitsaspekte von verteilter
und mobiler Software Neue Sicherheitsaspekte aufgrund
der großen Anzahl an Prinzipalen: Schutz von Anwendungen gegen
Angriffe von Teilkomponenten (Vertraulichkeit, Integrität, Verfügbarkeit,...)
Schutz von Komponenten-lieferanten gegen falsche Anschuldigungen
Copyright-Schutz Erweiterte Authentifizierung Dynamische Zugriffs- und
Flusskontrolle Vertrauensmanagement
4P. Herrmann: Formal-basierte Laufzeitüberwachung komponentenstrukturierter Software
Vertrauensbasierte Laufzeitüberwachung
Application
Compo-nent
AdapterObserver
Wrapper
CC1CC1
CC1CC1
ExtendedApplication
Security Wrapper: Komponentenkontrakte enthalten
Beschreibungen von Sicherheits-aspekten
Modell zulässiger Schnitt-stellenaktionen
Komponente durch Adapter überwacht
Schnittstellenverkehr nur über Adapter
Observer überprüft tatsächliches Verhalten gegen Kontraktmodelle
Adapter meldet Ereignisse Observer überprüft Ereignisse Falsches Ereignis führt zu
Blockade und Meldung
5P. Herrmann: Formal-basierte Laufzeitüberwachung komponentenstrukturierter Software
Vertrauensbasierte Laufzeitüberwachung
Application
Admin Requi-sition
Directoryof Sellers(DirOfS)
Contract:IfToS.ReqTender(Saddr)
always only if after readingS=DirOfS.read() Saddr is member of the set SInterface
to Sellers(IfToS)
process dfh2(SellerAdr : Any)var S : set of SellerAdr ;init S = { } ;actions DirOfS_read(sell : set of SellerAdr) S‘ = sell ; IfToS_ReqTender(Saddr : SellerAdr) Saddr S S‘ = S ;end ;
cTLA: Temporale Logik Zustandstransitions-
systeme Kopplung durch
synchron ausgeführ-te Aktionen
6P. Herrmann: Formal-basierte Laufzeitüberwachung komponentenstrukturierter Software
Vertrauensbasierte Laufzeitüberwachung
Application
Compo-nent
AdapterObserver
Wrapper
ExtendedApplication
cTLACon-tract
ComponentInterface
WrapperGenerator
Observer
Adapter
Compo-nent
Wrapper-Erzeugung: Observer:
Java Modell der cTLA-Kontraktspezifikation Adapter:
Introspektion der Komponentenschnittstelle JavaCon-tract
CC1CC1
CC1CC1
7P. Herrmann: Formal-basierte Laufzeitüberwachung komponentenstrukturierter Software
Vertrauensbasierte Laufzeitüberwachung
Application
Compo-nent
AdapterObserver
Wrapper
TrustManager
TrustInformation Service
ExtendedApplication
Trust Information Service: Sammelt gute und schlechte
Bewertungen einer Komponente Berechnet VertrauenswerteTrust Manager: Passt Überwachungsregime an
aktuellen Vertrauenswert an: Volle Überwachung Stichproben Entfernen des Wrappers
Sperrt Komponente nach einer Alarmmitteilung
Gibt Bewertungen der über-wachten Komponente an den Trust Information Service
Informiert Trust Information über ernste Sicherheitsverletzungen
CC1CC1
CC1CC1
8P. Herrmann: Formal-basierte Laufzeitüberwachung komponentenstrukturierter Software
Basic Policy Patterns: Enabling condition:
Enabling history:
Minimum waiting time:
Maximum waiting time:
0
Komponentenkontraktmodelle
Sicherheitsziele: Vertraulichkeit:
Begrenzung des Datenfluss Deterministisches Verhalten zur
Verhinderung verdeckter Kanäle Integrität:
Beschränkung der Schnittstellen-ereignisse und ihrer Argumente
Verfügbarkeit: Minimale Wartezeiten gegen
Denial-of-Service-Angriffe Maximale Reaktionszeiten gegen
Blockaden von Komponenten Nicht-Abstreitbarkeit:
Loggen wichtiger Ereignisse bei einer Trusted Third Party
anyComp.Ev(arg)
Comp.Ev(arg) 1
Comp.Ev(arg)
OComp.Trg(arg)
anyComp.Ev(arg)
notbefore
anyComp.Ev(arg) before
9P. Herrmann: Formal-basierte Laufzeitüberwachung komponentenstrukturierter Software
Verfügbarkeit: Minimale Wartezeiten gegen
Denial-of-Service-Angriffe» Denial-of-service minimum
waiting time» Denial-of-service enabling
history Maximale Reaktionszeiten gegen
Blockaden von Komponenten» Blocking maximum waiting
time» Blocking enabling history
Non-Abstreitbarkeit: Loggen wichtiger Ereignisse bei
einer Trusted Third Party» Event logging
Komponentenkontraktmodelle
Policy Patterns: Vertraulichkeit:
Begrenzung des Datenfluss» Data flow access» Data flow history
Deterministisches Verhalten zur Verhinderung verdeckter Kanäle
» Hidden channel functional dependency
» Hidden channel enabling history
» Hidden channel exec. time Integrität:
Beschränkung der Schnittstellen-ereignisse und ihrer Argumente
» Integrity enabling condition» Integrity enabling history
10P. Herrmann: Formal-basierte Laufzeitüberwachung komponentenstrukturierter Software
Sicherheitsmodelle des Gesamtsystems
Verschiedene Modelltypen zur Modellierung von Sicherheitspolitiken: Role-Based Access Control (RBAC):
Vertraulichkeit, Integrität Nutzer werden in Rollen zusammen-
gefasst Rollenhierarchien Constraints
Spezifikationsmuster: ActiveRoles:
Beschreibung der für einen Nutzer gerade aktiven Rollen
EventPermissions: Beschreibung der für die Ausführung eines Ereignis notwendigen Rollen
RBAC-Constraints (z.B. DSD)Spezifikation besteht aus vielen Instanzen der beiden Muster
Ses-sions
OBSOPS
PRMS
Roles
Users
11P. Herrmann: Formal-basierte Laufzeitüberwachung komponentenstrukturierter Software
Model AM bycomposing
Application Security Policy Patterns
CombineProof CCM AM
from theorems
Model CCM bycomposing
cTLA ComponentContract Models
Formale Verifikation
Framework: Komponenten-
kontraktmodelle:cTLA Component Contract Security Patterns
Gesamtsystem-modelle:
cTLA Application Security Policy Patterns
Theoreme:Subsystem vonContract Patterns ApplicationPattern
AM
CCM
Verification
Application SecurityPolicy Patterns
Theorems
Component ContractSecurity Patterns
Framework
12P. Herrmann: Formal-basierte Laufzeitüberwachung komponentenstrukturierter Software
Formale Verifikation
THEOREM IntEnabHistToActiveRolesLETSys == PROCESSES
I : IntegrityEnablingHistorySTS (cId,iId,eId,A,CE,St,IS,EC,T); ACTIONS
Event (ce,cr,if,ev,arg) == I.Event(ce,cr,if,ev,arg);
Pars == rm SET[St → SUBSET(CR)] :: rm[IS] = IR /\
a St eEDT aA:: rm[T[(s,e,a)]] = (rm[s] AR[(e,a)] \ DR[(e,a)]);IN Sys /\ Pars
ActiveRoles(cId,iId,eId,A,Ro,CC,CR, IR,AR,DR);
NoChgCatal: DataFlowAc
AskIfBuyer: IntEnabHist
ActiveBuyers: ActiveRoles
NoChgStock: DataFlowAc
: Event-Permission
...AM
CCM
Proofs by means ofFramework Theorems
Anwendung
BuyCheap: IntEnabHist
13P. Herrmann: Formal-basierte Laufzeitüberwachung komponentenstrukturierter Software
Schluss
Vorgestellt: Zustandsbasierte Überwachung von
komponentenstrukturierter Software durch Security Wrapper
Formaler Beweis, dass Komponentenkontrakte Systemsicherheitsmodelle erfüllen
Beweisunterstützung durch Spezifikationsframework
Web-Seite: ls4-www.cs.uni-dortmund.de/RVS/P-SACS/
Wünschenswert: Unterstützung der Theorem-
auswahl und Konsistenzchecks Weitere Systemmodelltypen
Application
Appli-cationOwner
Com-ponentVendor
Trust
Compo-nent
Control
ContractModelsContract
ModelsContractModels
checkedby
securitywrapper
SystemModels
(e.g., RBAC,Info Flow)
FormalDeduction