verifying security policies using host attributes

35
Fakult ¨ at f ¨ ur Informatik Technische Universit¨ at M ¨ unchen Verifying Security Policies using Host Attributes 34 th IFIP International Conference on Formal Techniques for Distributed Objects, Components and Systems Cornelius Diekmann 1 Stephan-A. Posselt 1 Heiko Niedermayer 1 Holger Kinkelin 1 Oliver Hanka 2 Georg Carle 1 1 Technische Universit¨ at M ¨ unchen 2 Airbus Group Innovations FORTE, 2014, Verifying Security Policies Using Host Attributes 1/21

Upload: others

Post on 11-Jan-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Verifying Security Policies using Host Attributes

Fakultat fur Informatik Technische Universitat Munchen

Verifying Security Policies usingHost Attributes

34th IFIP International Conference on Formal Techniques forDistributed Objects, Components and Systems

Cornelius Diekmann1 Stephan-A. Posselt1

Heiko Niedermayer1 Holger Kinkelin1 Oliver Hanka2

Georg Carle1

1Technische Universitat Munchen 2Airbus Group Innovations

FORTE, 2014, Verifying Security Policies Using Host Attributes 1/21

Page 2: Verifying Security Policies using Host Attributes

Fakultat fur Informatik Technische Universitat Munchen

Example: Aircraft Cabin Data Network

google image search

FORTE, 2014, Verifying Security Policies Using Host Attributes: Example & Demo 2/21

Page 3: Verifying Security Policies using Host Attributes

Fakultat fur Informatik Technische Universitat Munchen

Example: Aircraft Cabin Data Network – Policy

SATIFEsrv

IFE2IFE1

CC

C1 C2

WiFi

P1 P2

Policy ≡ Access Control Matrix ≡ Network Connectivity Structure

FORTE, 2014, Verifying Security Policies Using Host Attributes: Example & Demo 3/21

Page 4: Verifying Security Policies using Host Attributes

Fakultat fur Informatik Technische Universitat Munchen

Example: Security Invariants as Host Attributes

Crew Entertain

POD INET

SATIFEsrv

entertain POD

INET

crew

IFE2IFE1

CC

!

C1 C2

WiFi!

P1 P2

FORTE, 2014, Verifying Security Policies Using Host Attributes: Example & Demo 4/21

Page 5: Verifying Security Policies using Host Attributes

Fakultat fur Informatik Technische Universitat Munchen

Example: Security Invariants as Host Attributes

Crew Entertain

POD INET

SATIFEsrv

master

entertain POD

INET

crew

IFE2

slave

IFE1

slave

CC

!

C1 C2

WiFi!

P1 P2

FORTE, 2014, Verifying Security Policies Using Host Attributes: Example & Demo 4/21

Page 6: Verifying Security Policies using Host Attributes

Fakultat fur Informatik Technische Universitat Munchen

Example: Security Invariants as Host Attributes

Crew Entertain

POD INET

SATIFEsrvdeclassify

master

entertain POD

INET

crew

IFE2confid. slave

IFE1confid. slave

CCsecret

!

C1secret

C2secret

WiFi!

P1 P2

FORTE, 2014, Verifying Security Policies Using Host Attributes: Example & Demo 4/21

Page 7: Verifying Security Policies using Host Attributes

Fakultat fur Informatik Technische Universitat Munchen

Big Picture: Verification

I Demo

I Formal verification

I Executable, no need for hand-crafted proofs

FORTE, 2014, Verifying Security Policies Using Host Attributes: Example & Demo 5/21

Page 8: Verifying Security Policies using Host Attributes

Fakultat fur Informatik Technische Universitat Munchen

Big Picture: Debugging

I Demo

I add coffee machine,connect it to IFE1

[invalid] inv1 : ...

[invalid] inv2 : ...

[valid] inv3 : ...

coffee⊥⊥⊥

IFE1Aircraft-Entertain

1DomainMember

CabinCoreSrvAircraft-Crew trust: 1

2⊥

Crew1Aircraft-Crew

2⊥

Crew2Aircraft-Crew

2⊥

IFEsrvAircraft-Entertain

0 !trusted!SecurityGatewayIN

IFE2Aircraft-Entertain

1DomainMember

WifiAccessAircraft-Entertain-POD trust: 1

⊥⊥

SatGWAircraft-Entertain-INET

⊥⊥

POD1Aircraft-Entertain-POD

⊥⊥

POD2Aircraft-Entertain-POD

⊥⊥

FORTE, 2014, Verifying Security Policies Using Host Attributes: Example & Demo 6/21

Page 9: Verifying Security Policies using Host Attributes

Fakultat fur Informatik Technische Universitat Munchen

Big Picture: Invariant Feedback

I Demo

SATIFEsrvdeclassify

master

entertain.aircraft POD

INET

crew.aircraft

IFE2confid. slave

IFE1confid. slave

CCsecret

!

C1secret

C2secret

WiFi!

P1 P2

FORTE, 2014, Verifying Security Policies Using Host Attributes: Example & Demo 7/21

Page 10: Verifying Security Policies using Host Attributes

Fakultat fur Informatik Technische Universitat Munchen

This Talk

I policy |= security invariants

I security invariants =⇒ policy

I It’s all about the security invariants!

Security Policy

Directed GraphG =(hosts, allowed flows)

Security Invariant

+

Scenario-Specific Knowledge

Host Attribute Mapping

Generic Invariant

Formal HOL Semantics

Fire-walls,ACL, etc

FORTE, 2014, Verifying Security Policies Using Host Attributes: This Talk 8/21

Page 11: Verifying Security Policies using Host Attributes

Fakultat fur Informatik Technische Universitat Munchen

DefinitionsI Policy G = (V , E)

I directed graphI G = (V set)× ((V×V) set)

I Host mapping P: V ⇒ Ψ

I total functionI maps a host to an attribute

I Security invariant template m: m(G, (V ⇒ Ψ))

I Predicate (total, Boolean-valued function)I first argument: security policyI second argument: host attribute mappingI m(G,P)←→ G fulfills the invariant specified by m and P

FORTE, 2014, Verifying Security Policies Using Host Attributes: Formalization 9/21

Page 12: Verifying Security Policies using Host Attributes

Fakultat fur Informatik Technische Universitat Munchen

DefinitionsI Policy G = (V , E)

I directed graphI G = (V set)× ((V×V) set)

I Host mapping P: V ⇒ Ψ

I total functionI maps a host to an attribute

I Security invariant template m: m(G, (V ⇒ Ψ))

I Predicate (total, Boolean-valued function)I first argument: security policyI second argument: host attribute mappingI m(G,P)←→ G fulfills the invariant specified by m and P

FORTE, 2014, Verifying Security Policies Using Host Attributes: Formalization 9/21

Page 13: Verifying Security Policies using Host Attributes

Fakultat fur Informatik Technische Universitat Munchen

Example

I Label-based information flow security: Bell LaPadula model

I Security clearances, i.e. host attributesΨ = {unclassified , confidential , secret , topsecret}

I Invariant template, i.e. no read-up and no write-down:m((V , E), P

)≡ ∀(s, r) ∈ E . P(s) ≤ P(r)

FORTE, 2014, Verifying Security Policies Using Host Attributes: Formalization 10/21

Page 14: Verifying Security Policies using Host Attributes

Fakultat fur Informatik Technische Universitat Munchen

Example

I Label-based information flow security: Bell LaPadula model

I Security clearances, i.e. host attributesΨ = {unclassified , confidential , secret , topsecret}

I Invariant template, i.e. no read-up and no write-down:m((V , E), P

)≡ ∀(s, r) ∈ E . P(s) ≤ P(r)

I Scenario-specific knowledgeI P(db1) = confidentialI all other hosts are unclassified

I P = (λh. if h = db1 then confidential else unclassified)

I m(G, P)←→ db1 does not leak confidential informationI there is no non-reflexive outgoing edge from db1

FORTE, 2014, Verifying Security Policies Using Host Attributes: Formalization 10/21

Page 15: Verifying Security Policies using Host Attributes

Fakultat fur Informatik Technische Universitat Munchen

Security Invariants cont.

I Security strategyI Information Flow Strategy (IFS)

I confidentialityI Access Control Strategy (ACS)

I integrity, controlled access

I m must be either IFS or ACS

I MonotonicityI Prohibiting more does not harm securityI m((V , E), P) and E ′ ⊆ E then m((V , E ′), P)

I CompositionI Composability and modularity enabled by designI m1(G, P1) ∧ · · · ∧mk (G, Pk )

FORTE, 2014, Verifying Security Policies Using Host Attributes: Formalization 11/21

Page 16: Verifying Security Policies using Host Attributes

Fakultat fur Informatik Technische Universitat Munchen

Offending Flows

I If a security invariant is violated ¬ m(G, P)

I Flows F ⊆ E responsible for the violation

I set offending flows(G, P

)is the set of all such minimal F

FORTE, 2014, Verifying Security Policies Using Host Attributes: Formalization 12/21

Page 17: Verifying Security Policies using Host Attributes

Fakultat fur Informatik Technische Universitat Munchen

Offending Flows

I If a security invariant is violated ¬ m(G, P)

I Flows F ⊆ E responsible for the violation

I set offending flows(G, P

)is the set of all such minimal F

I i.e. the set of all minimal sets which violate m

set offending flows(G, P

)={

F ⊆ E | ¬m(G, P

)∧ m

((V , E \ F ), P

)∧

∀(s, r) ∈ F . ¬m((V , (E \ F ) ∪ {(s, r)}), P

)}

FORTE, 2014, Verifying Security Policies Using Host Attributes: Formalization 12/21

Page 18: Verifying Security Policies using Host Attributes

Fakultat fur Informatik Technische Universitat Munchen

Offending Flows

I If a security invariant is violated ¬ m(G, P)

I Flows F ⊆ E responsible for the violation

I set offending flows(G, P

)is the set of all such minimal F

I Example: m is that v1 must not access v3 transitively

v1

v2

v3

G

v1

v2

v3

{(v1, v2)}

v1

v2

v3

{(v2, v3)}

I set offending flows(G, P

)={{(v1, v2)}, {(v2, v3)}

}

FORTE, 2014, Verifying Security Policies Using Host Attributes: Formalization 12/21

Page 19: Verifying Security Policies using Host Attributes

Fakultat fur Informatik Technische Universitat Munchen

Example: Offending Flows for the Bell LaPadula Model

I Recall: m((V , E), P

)≡ ∀(s, r) ∈ E . P(s) ≤ P(r)

set offending flows(G, P

)={{

{(s, r) ∈ E | P(s) > P(r)}}

if ¬ m(G, P)

∅ if m(G, P)

I Uniquely defined

I Can be computed in linear time

I This holds for all similar-structured security invariants

FORTE, 2014, Verifying Security Policies Using Host Attributes: Formalization 13/21

Page 20: Verifying Security Policies using Host Attributes

Fakultat fur Informatik Technische Universitat Munchen

Analysis: Offending Flows

I Do the offending flows always exist?

Theorem 1. For m monotonic, let Gdeny-all = (V , ∅). If ¬m(G,P) then

m(Gdeny-all , P

)←→ set offending flows(G, P) 6= ∅

I A security violation can be fixed by tightening the policy iff theinvariant holds for the deny-all policy

FORTE, 2014, Verifying Security Policies Using Host Attributes: Formalization 14/21

Page 21: Verifying Security Policies using Host Attributes

Fakultat fur Informatik Technische Universitat Munchen

Example: Policy Construction

I Gall = (V , V×V )

I Gmax = (V , V×V \⋃

set offending flows(Gall , P

))

I Iterate this over all mi

I Sound for arbitrary m

I Complete for m similar to Bell LaPadulaI Gmax is the uniquely defined maximum policy

FORTE, 2014, Verifying Security Policies Using Host Attributes: Formalization 15/21

Page 22: Verifying Security Policies using Host Attributes

Fakultat fur Informatik Technische Universitat Munchen

Who is responsible for a violation?

I A violation either happens at the sender or the receiver

ACS initiator provokes an access control restrictionIFS leak only occurs when the information reaches the unintended

receiver

Definition. For F ∈ set offending flows(G,P)

offenders(F ) =

{{ s | (s, r) ∈ F} if ACS{ r | (s, r) ∈ F} if IFS

FORTE, 2014, Verifying Security Policies Using Host Attributes: Formalization 16/21

Page 23: Verifying Security Policies using Host Attributes

Fakultat fur Informatik Technische Universitat Munchen

Auto Completion of Host Mappings

I P is a total function V ⇒ Ψ

I User-specified incomplete host mapping: PC ⊆ V ×Ψ

I Default value: ⊥ ∈ Ψ

I P(v) =

{ψ if (v , ψ) ∈ PC

⊥ else

FORTE, 2014, Verifying Security Policies Using Host Attributes: Formalization 17/21

Page 24: Verifying Security Policies using Host Attributes

Fakultat fur Informatik Technische Universitat Munchen

Auto Completion of Host Mappings

I P is a total function V ⇒ Ψ

I User-specified incomplete host mapping: PC ⊆ V ×Ψ

I Default value: ⊥ ∈ Ψ

I P(v) =

{ψ if (v , ψ) ∈ PC

⊥ else

I What is a secure ⊥?

I Everything forbidden? Barely usable!

I ⊥ can never solve an existing security violation

I ⊥ must never mask potential security risks!

FORTE, 2014, Verifying Security Policies Using Host Attributes: Formalization 17/21

Page 25: Verifying Security Policies using Host Attributes

Fakultat fur Informatik Technische Universitat Munchen

Secure Auto Completion of Host Mappings

I Replacing the host attribute of any offenders by ⊥ mustguarantee that no security-relevant information is masked.

Definition. ⊥ is a secure default attribute if

∀ G P. ∀ F ∈ set offending flows(G,P

).

∀v ∈ offenders(F ). ¬m(G,Pv 7→⊥

)I Secure and permissive

I ⊥ = everything forbidden, security proof easyI ⊥ can be more permissive, e.g., Bell LaPadula

I ⊥ = unclassified hosts can freely interactI PC = (db1, confidential)I Security invariant for complete networkI restrictions only for interactions with db1

FORTE, 2014, Verifying Security Policies Using Host Attributes: Formalization 18/21

Page 26: Verifying Security Policies using Host Attributes

Fakultat fur Informatik Technische Universitat Munchen

Example

I m(G,P)

I New host x (P is not updated)

I P(x) = ⊥

I Magic oracle Poracle(x) = ψ

I x is an attacker

I ¬ m(G,Poracle)

I Is the security violation exposed without the oracle?

I If ¬ m(G,Poracle) then ¬ m(G,Px 7→⊥)

I Hence ¬ m(G,P)

I The security violation is never masked!

FORTE, 2014, Verifying Security Policies Using Host Attributes: Formalization 19/21

Page 27: Verifying Security Policies using Host Attributes

Fakultat fur Informatik Technische Universitat Munchen

ConclusionI Monotonic Security Invariants

I Verify policy 3

I Fix security violations 3

I Construct policy 3

I Construct easily and end-user-friendly 3

I Fully machine-verified with Isabelle/HOL 3

https://github.com/diekmann/topoSλ

∀=Is

abelle

β

α

FORTE, 2014, Verifying Security Policies Using Host Attributes: Conclusion 20/21

Page 28: Verifying Security Policies using Host Attributes

Fakultat fur Informatik Technische Universitat Munchen

Thanks for your attention!

Questions?

FORTE, 2014, Verifying Security Policies Using Host Attributes: Thank You! 21/21

Page 29: Verifying Security Policies using Host Attributes

Fakultat fur Informatik Technische Universitat Munchen

Backup Slides

FORTE, 2014, Verifying Security Policies Using Host Attributes: Appendix 21/21

Page 30: Verifying Security Policies using Host Attributes

Fakultat fur Informatik Technische Universitat Munchen

Example: Aircraft Cabin Data Network

CC The Cabin Core Server (essential aircraft features).I air conditioning, crew telecommunication ...

C1, C2 Two crew mobile devices.I identify passenger calls, make announcements ...

IFEsrv The In-Flight Entertainment server.I movies, Internet ...

IFE1, IFE2 Two In-Flight entertainment displays (thin client).I Mounted at the back of seatsI Movies and Internet ...

Wifi A wifi hotspot.I Internet access for passengers owned devices

Sat A satellite uplink to the Internet.P1, P2 Two passenger owned devices.

I laptops, smartphones ...

FORTE, 2014, Verifying Security Policies Using Host Attributes: Appendix 21/21

Page 31: Verifying Security Policies using Host Attributes

Fakultat fur Informatik Technische Universitat Munchen

Example: Security Invariants

I Invariant 1: Domain HierarchyI Different protection domainsI Devices may send to their own (sub-)domainsI Trust level are available INETPOD

aircraft

crewentertain

I Invariant 2: Security GatewayI Slave devices are bound to a masterI Master controls all communication to/between them.I IFE displays (thin clients) are strictly bound to IFEsrv

I Invariant 3: Bell LaPadulaI Information flow restrictionsI secret crew communicationI confidential (< secret) passenger communication (privacy)

FORTE, 2014, Verifying Security Policies Using Host Attributes: Appendix 21/21

Page 32: Verifying Security Policies using Host Attributes

Fakultat fur Informatik Technische Universitat Munchen

Stateful Implementation

CC

IFEsrv

SAT

Wifi

C1

C2

IFE1IFE2

P1

P2

Cornelius Diekmann, Lars Hupel, and Georg Carle. Directed Security Policies: AStateful Network Implementation. In ESSS, Singapore, May 2014.

FORTE, 2014, Verifying Security Policies Using Host Attributes: Appendix 21/21

Page 33: Verifying Security Policies using Host Attributes

Fakultat fur Informatik Technische Universitat Munchen

Bell LaPadula with Trust

I Prevent information leakage

I P(v).sc is v ’s security clearance

I P(v).trust

m((V ,E), P

)≡ ∀(s, r) ∈ E .

{True if P(r).trustP(s).sc ≤ P(r).sc otherwise

FORTE, 2014, Verifying Security Policies Using Host Attributes: Appendix 21/21

Page 34: Verifying Security Policies using Host Attributes

Fakultat fur Informatik Technische Universitat Munchen

Domain Hierarchy

I Hierarchical structures

I Ψ = fully qualified domain namesI {a.b.c, b.c, c, ...}

I ‘v’ ≡ ‘is below or at the same hierarchy level’I a.b.c v a.b.cI a.b.c v b.cI a.b.c v c

I Trust: Act as if were in higher hierarchy positionI Trust 1 = one position higherI chop(a.b.c, 1) = a.c

m((V ,E), P

)≡ ∀(s, r) ∈ E . P(r).level v chop

(P(s).level , P(s).trust

)

FORTE, 2014, Verifying Security Policies Using Host Attributes: Appendix 21/21

Page 35: Verifying Security Policies using Host Attributes

Fakultat fur Informatik Technische Universitat Munchen

Security Gateway

I Approve intra-domain communication between domain membersby a central instance (security gateway)

m((V ,E), P

)≡ ∀(s, r) ∈ E , s 6= r . table

(P(s), P(r)

)snd rcv rslt explanation

sgw * 3 Can send to the world.sgwa * 3 — “—memb sgw 3 Can contact its security gateway.memb sgwa 3 — “—memb memb 7 Must not communicate directly. May communicate via sgw(a).memb default 3 No restrictions for direct access to outside world. Outgoing ac-

cesses are not within the invariant’s scope.default sgw 7 Not accessible from outside.default sgwa 3 Accessible from outside.default memb 7 Protected from outside world.default default 3 No restrictions.

FORTE, 2014, Verifying Security Policies Using Host Attributes: Appendix 21/21