Where does your informa@on go? Travel Agency Airline - - PowerPoint PPT Presentation

where does your informa on go
SMART_READER_LITE
LIVE PREVIEW

Where does your informa@on go? Travel Agency Airline - - PowerPoint PPT Presentation

IFlow Model driven development of informa0on flow secure systems Wolfgang Reif, Kuzman Katkalov, Marian Borek, Kurt Stenzel Prof. Dr. W. Reif,


slide-1
SLIDE 1

IFlow ¡– ¡Model ¡driven ¡development ¡of ¡informa0on ¡flow ¡secure ¡systems ¡

Wolfgang ¡Reif, ¡Kuzman ¡Katkalov, ¡Marian ¡Borek, ¡Kurt ¡Stenzel ¡

  • Prof. ¡Dr. ¡W. ¡Reif, ¡reif@isse.de ¡
slide-2
SLIDE 2

Where ¡does ¡your ¡informa@on ¡go? ¡

  • Prof. ¡Dr. ¡W. ¡Reif, ¡reif@isse.de ¡

Travel ¡Agency ¡ Airline ¡ Travel ¡Planner ¡ (1) ¡Offers ¡ (2) ¡Booking ¡ (3) ¡Comission ¡ Select ¡offer ¡ Confirm ¡credit ¡ card ¡data ¡release ¡

  • Travel ¡Agency ¡never ¡learns ¡the ¡user’s ¡credit ¡card ¡data ¡
  • Airline ¡only ¡learns ¡the ¡user’s ¡credit ¡card ¡data ¡aOer ¡user ¡confirma@on ¡
slide-3
SLIDE 3

How ¡much ¡informa@on ¡are ¡you ¡sharing? ¡

  • Prof. ¡Dr. ¡W. ¡Reif, ¡reif@isse.de ¡
  • Health ¡Insurance ¡Service ¡never ¡learns ¡the ¡user’s ¡loca0on ¡
  • Distance ¡Tracker ¡properly ¡anonymizes ¡the ¡user’s ¡loca0on ¡data ¡as ¡distance ¡

Distance ¡Tracker ¡ Health ¡Insurance ¡Service ¡ 2.5 ¡km ¡ Report ¡run ¡distance ¡ 2.5 ¡km ¡

slide-4
SLIDE 4

Overview ¡

  • IFlow: ¡a ¡model ¡driven ¡approach ¡for ¡developing ¡

distributed ¡apps ¡with ¡secure ¡informa@on ¡flow ¡

  • SoBware/security ¡co-­‑design ¡in ¡distributed ¡apps ¡

– Modeling ¡ – Automa0c ¡check ¡and ¡verifica0on ¡

  • Special ¡aspect: ¡limited ¡release ¡of ¡informa0on ¡

– Modeling ¡ – Verifica0on ¡

  • Prof. ¡Dr. ¡W. ¡Reif, ¡reif@isse.de ¡
slide-5
SLIDE 5

IFlow: ¡a ¡model-­‑driven ¡approach ¡to ¡IFC ¡

  • Prof. ¡Dr. ¡W. ¡Reif, ¡reif@isse.de ¡

MODEL FLOW

Modeling ¡language ¡

  • formal ¡seman+cs ¡ ¡

( ¡ASMs ¡& ¡predicate ¡logic) ¡

  • intransi+ve ¡noninterference ¡

(extension ¡of ¡Rushby/Meyden) ¡

  • declassifica+on ¡ ¡

(“what”, ¡“where”, ¡“when”) ¡

Formal ¡founda@on ¡

¡

  • principle: ¡security ¡by ¡design ¡
  • graphical, ¡domain ¡specific ¡

language ¡for ¡IFC ¡

  • distributed ¡apps ¡& ¡services ¡
  • with ¡tool ¡support ¡
  • and ¡code ¡genera+on ¡

¡

slide-6
SLIDE 6

IFlow: ¡a ¡model-­‑driven ¡approach ¡to ¡IFC ¡

  • Prof. ¡Dr. ¡W. ¡Reif, ¡reif@isse.de ¡

UML ¡model ¡ Formal ¡model ¡ Monolithic ¡ code ¡skeleton ¡

automa0c ¡transforma0on ¡ automa&c ¡ language-­‑based ¡ IF ¡check ¡ verifica&on ¡of ¡ ¡ informa&on ¡release ¡ Result: ¡ ¡ runnable ¡applica@on ¡with ¡guaranteed ¡ informa@on ¡flow ¡proper@es ¡ ¡

Final, ¡distributed ¡ applica@on ¡

automa&c ¡check ¡of ¡manually ¡ implemented ¡code ¡

slide-7
SLIDE 7

A ¡hybrid ¡approach ¡to ¡provide ¡guarantees ¡

Informa0on ¡flow: ¡ Automa@c ¡code ¡check ¡ ¡ ¡

Travel ¡Agency ¡never ¡learns ¡the ¡ user’s ¡credit ¡card ¡data ¡ ¡ Health ¡Insurance ¡Service ¡never ¡ learns ¡the ¡user’s ¡loca0on ¡

  • Prof. ¡Dr. ¡W. ¡Reif, ¡reif@isse.de ¡

Informa0on ¡release: ¡ Formal ¡verifica@on ¡

¡ ¡

Airline ¡only ¡learns ¡the ¡user’s ¡ credit ¡card ¡data ¡ ¡ aIer ¡user ¡confirma+on ¡ ¡ Distance ¡Tracker ¡properly ¡ anonymizes ¡the ¡user’s ¡loca0on ¡

JOANA ¡ KIV ¡

slide-8
SLIDE 8

Overview ¡

  • IFlow: ¡a ¡model ¡driven ¡approach ¡for ¡developing ¡

distributed ¡apps ¡with ¡secure ¡informa0on ¡flow ¡

  • SoOware/security ¡co-­‑design ¡in ¡distributed ¡apps ¡

– Modeling ¡ – Automa0c ¡check ¡and ¡verifica0on ¡

  • Special ¡aspect: ¡limited ¡release ¡of ¡informa0on ¡

– Modeling ¡ – Verifica0on ¡

  • Prof. ¡Dr. ¡W. ¡Reif, ¡reif@isse.de ¡
slide-9
SLIDE 9

TravelPlanner: ¡components ¡ ¡

  • Prof. ¡Dr. ¡W. ¡Reif, ¡reif@isse.de ¡

Applica0on ¡components: ¡user ¡interface, ¡mobile ¡apps ¡and ¡web ¡services ¡

slide-10
SLIDE 10

TravelPlanner: ¡data ¡types ¡ ¡

  • Prof. ¡Dr. ¡W. ¡Reif, ¡reif@isse.de ¡

Data ¡types ¡and ¡message ¡classes ¡

slide-11
SLIDE 11

TravelPlanner: ¡behaviour ¡

confirma@on ¡of ¡ credit ¡card ¡release ¡

  • Prof. ¡Dr. ¡W. ¡Reif, ¡reif@isse.de ¡
slide-12
SLIDE 12

Travel ¡Planner: ¡security ¡

  • Prof. ¡Dr. ¡W. ¡Reif, ¡reif@isse.de ¡
  • Subjects ¡(user, ¡apps ¡& ¡web ¡services): ¡S ¡

STravelPlanner ¡= ¡{User, ¡Airline, ¡TravelAgency} ¡ ¡

  • Security ¡domains: ¡d ¡⊆ ¡S, ¡d ¡⊆ ¡S⨯S ¡

{User}, ¡{User, ¡Airline}, ¡{User, ¡Airline, ¡TravelAgency}, ¡ {User}-­‑>{User, ¡Airline} ¡ ¡

  • Security ¡policy: ¡ ¡
slide-13
SLIDE 13

Travel ¡Planner: ¡security ¡(cont.) ¡

  • Prof. ¡Dr. ¡W. ¡Reif, ¡reif@isse.de ¡

Assigning ¡security ¡domains ¡to ¡data ¡& ¡messages: ¡

slide-14
SLIDE 14

TravelPlanner: ¡behaviour ¡

confirma@on ¡of ¡ credit ¡card ¡release ¡

  • Prof. ¡Dr. ¡W. ¡Reif, ¡reif@isse.de ¡
slide-15
SLIDE 15

Travel ¡Planner: ¡security ¡(cont.) ¡

  • Prof. ¡Dr. ¡W. ¡Reif, ¡reif@isse.de ¡

Noninterference ¡theorem ¡ ¡

(extension ¡of ¡Rushby/van ¡der ¡Meyden): ¡

AOI: ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡alter(d1) ¡∩ ¡observe(d2) ¡≠ ¡∅ ¡→ ¡d1 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡d2 ¡

¡

RM1: ¡ ¡ ¡ ¡ ¡ ¡ ¡s1 ¡≈d ¡s2 ¡→ ¡output(s1, ¡d) ¡= ¡output(s2, ¡d) ¡ RM2: ¡ ¡ ¡ ¡ ¡ ¡ ¡s1 ¡≈dom(a) ¡s2 ¡∧ ¡s1(l) ¡= ¡s2(l) ¡∧ ¡l ¡∈ ¡alter(dom(a)) ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡→ ¡step(s1, ¡a)(l) ¡= ¡ ¡step(s2, ¡a)(l) ¡

¡

RM3: ¡ ¡ ¡ ¡ ¡ ¡ ¡step(s, ¡a)(l) ¡≠ ¡s(l) ¡→ ¡l ¡∈ ¡alter(dom(a)) ¡ ¡

¡

(prove) ¡

(true ¡by ¡construc0on) ¡ (true ¡by ¡construc0on) ¡ (true ¡by ¡construc0on) ¡

Security ¡policy ¡sa@sfied, ¡if ¡

slide-16
SLIDE 16

TravelPlanner: ¡security ¡proper@es ¡

  • Prof. ¡Dr. ¡W. ¡Reif, ¡reif@isse.de ¡
  • Components ¡(apps/services) ¡and ¡

their ¡a[ributes ¡can ¡be ¡sources ¡and ¡ sinks ¡of ¡informa0on ¡

  • Informa0on ¡flow ¡is ¡either ¡ ¡

– disallowed ¡(«noFlow»), ¡or ¡ – allowed ¡(«allowedFlow») ¡ … ¡via ¡a ¡specific ¡method ¡(«via») ¡ … ¡aBer ¡user ¡confirma@on ¡([confirma&on]) ¡

  • Proper0es ¡can ¡be ¡ ¡

– automa@cally ¡checked ¡on ¡the ¡code ¡level, ¡or ¡ – verified ¡interac@vely ¡using ¡the ¡formal ¡ model ¡

slide-17
SLIDE 17

Local ¡code ¡skeleton ¡ ¡

App1 ¡ App2 ¡ Service1 ¡ Service2 ¡

… ¡ … ¡

PlaNorm-­‑ independent ¡ ¡ IF ¡emula+on ¡

IFlow ¡Framework ¡ ¡ (3 ¡versions) ¡

TravelPlanner: ¡automa@c ¡IF ¡check ¡

  • Prof. ¡Dr. ¡W. ¡Reif, ¡reif@isse.de ¡

disallowed ¡informa0on ¡flow ¡

¡ ¡

  • 1. Generate ¡a ¡code ¡skeleton ¡as ¡a ¡

monolithic ¡Java ¡applica@on ¡ ¡

  • 2. Generate ¡and ¡run ¡informa@on ¡flow ¡

check ¡with ¡JOANA ¡(PDG-­‑based ¡IFC) ¡ ¡

  • 3. Distribute ¡applica0on ¡as ¡ ¡

Android ¡apps ¡and ¡Java ¡web ¡services ¡

check ¡with ¡JOANA ¡ Distributed ¡system ¡

App1 ¡ App2 ¡ Service2 ¡ Service1 ¡

… ¡ … ¡ deploy ¡

Android-­‑ specific ¡ Web ¡Service-­‑ specific ¡

Android-­‑ API ¡ Service-­‑ API ¡

slide-18
SLIDE 18

TravelPlanner: ¡verifica@on ¡

  • Prof. ¡Dr. ¡W. ¡Reif, ¡reif@isse.de ¡

disallowed ¡direct ¡informa0on ¡flow ¡ explicitly ¡allowed ¡informa0on ¡flow ¡ ¡ via ¡a ¡specific ¡method ¡ ¡ ¡

¬ domain(ccd) ¡⇒ ¡domain(Airline) ¡∧ ¡ ¡ domain(ccd) ¡⇒ ¡domain(declassifyCCD) ¡∧ ¡ ¡ domain(declassifyCCD) ¡⇒ ¡domain(Airline) ¡

Proof ¡obliga@ons: ¡

  • 1. Security ¡policy ¡implies ¡property ¡

¡

  • 2. Applica@on ¡model ¡sa@sfies ¡security ¡

policy ¡(noninterference ¡theorem) ¡ ¡

  • 3. declassifyCCD ¡is ¡only ¡called ¡aOer ¡

confirma@on ¡

slide-19
SLIDE 19

Overview ¡

  • IFlow: ¡a ¡model ¡driven ¡approach ¡for ¡developing ¡

distributed ¡apps ¡with ¡secure ¡informa0on ¡flow ¡

  • SoBware/security ¡co-­‑design ¡in ¡distributed ¡apps ¡

– Modeling ¡ – Automa0c ¡check ¡and ¡verifica0on ¡

  • Special ¡aspect: ¡limited ¡release ¡of ¡informa@on ¡

– Modeling ¡ – Verifica0on ¡

  • Prof. ¡Dr. ¡W. ¡Reif, ¡reif@isse.de ¡
slide-20
SLIDE 20

Distance ¡Tracker: ¡property ¡

  • Prof. ¡Dr. ¡W. ¡Reif, ¡reif@isse.de ¡

2.5 ¡km ¡

  • Tracker ¡Service ¡never ¡learns ¡the ¡user’s ¡loca0on ¡
  • Distance ¡Tracker ¡properly ¡anonymizes ¡the ¡user’s ¡loca0on ¡data ¡as ¡distance ¡
slide-21
SLIDE 21

What ¡do ¡we ¡prove? ¡

¡

  • define ¡equivalence ¡class ¡of ¡all ¡inputs ¡that ¡map ¡to ¡the ¡

same ¡output ¡

  • reason ¡about ¡size ¡of ¡the ¡classes ¡

„For ¡every ¡valid ¡output ¡there ¡are ¡enough ¡(e) ¡different ¡ inputs ¡with ¡mutually ¡disjoint ¡posi@ons“: ¡ ¡ ∀ ¡x, ¡d. ¡calcDist(x) ¡= ¡d ¡→ ¡ ¡ ∃ ¡a_set. ¡# ¡a_set ¡≥ ¡e ¡∧ ¡disjoint(a_set) ¡∧ ¡ ∀ ¡y. ¡y ¡∈ ¡a_set ¡→ ¡calcDist(y) ¡= ¡d ¡ ¡ ¡

  • Prof. ¡Dr. ¡W. ¡Reif, ¡reif@isse.de ¡
slide-22
SLIDE 22

calcDist(act ¡: ¡Ac0vity) ¡: ¡Distance ¡

  • Prof. ¡Dr. ¡W. ¡Reif, ¡reif@isse.de ¡
slide-23
SLIDE 23

Summary ¡

  • Prof. ¡Dr. ¡W. ¡Reif, ¡reif@isse.de ¡

IFlow ¡integrates ¡

  • a ¡model ¡driven ¡approach ¡(ModelFlow) ¡ ¡
  • formally ¡verified ¡informa0on ¡flow ¡proper0es ¡
  • automa0c ¡informa0on ¡flow ¡control ¡