an information flow calculus
play

An information-flow calculus for the non-security expert Alejandro - PowerPoint PPT Presentation

An information-flow calculus for the non-security expert Alejandro Russo (russo@chalmers.se) Visiting Associate Professor, Stanford, CA, U.S.A. Chalmers, Gteborg, Sweden Work-in-progress with Pablo Buiras (Chalmers), Deian Stefan (Stanford),


  1. An information-flow calculus for the non-security expert Alejandro Russo (russo@chalmers.se) Visiting Associate Professor, Stanford, CA, U.S.A. Chalmers, Göteborg, Sweden Work-in-progress with Pablo Buiras (Chalmers), Deian Stefan (Stanford), and David Mazierès (Stanford)

  2. Information-flow Scenario Preserve confidentiality even in the presence of malicious code

  3. Motivation

  4. Security measures • Access control – State-of-the-art

  5. Security lattice • It specifies the allowed flows of information secret public

  6. Example of Rules Arrows for Secure Information Flow [Li, Zdancewic 10]

  7. Information-flow Scenario

  8. Towards a Monadic Calculus Reader Monad - The attacker might observe the systems data Writer Monad - The attacker writes input to the system Informatoin-flow control is almost just about controling reading and writing side-effects

  9. Towards a Monadic Calculus Security State (floating label) Restricted interface for the State monad!

  10. A Floating Label System [Stefan et al. 11] Taint Guard

  11. Example of Rules Arrows for Secure Information Flow [Li, Zdancewic 10] Guard

  12. Example of Rules Information-Flow Security for a Core of JavaScript [Hedin, Sabelfeld 12] Taint

  13. Designing IFC Systems Read effect Write effect  newIORef  readIORef  writeIORef   modifyIORef Read effect Write effect Guard newLIORef Taint readLIORef Guard writeLIORef Taint Guard modifyLIORef

  14. The IFC Monad [Swierstra 08] data ReadEffect l a where Taint :: l -> a -> ReadEffect l a data WriteEffect l a where Guard :: l -> a -> WriteEffect l a Free (ReadEffect l) a Free (WriteEffect l) a IFC l a = Free (WriteEffect l :+: ReadEffect l) a Types reflects the behavior w.r.t taint and guard!

  15. Label Creep [Stefan et al. 11][Breeze 13] • The floating label gets too high too soon!

  16. Label Creep [Stefan et al. 11][Breeze 13] • The floating label gets too high too soon! Fresh environment

  17. A specific Local (Reader Monad) data Env l a where Ask :: (l -> a) -> Env l a Put :: l -> Env l a Extended IFC l a = Free (WriteEffect l :+: ReadEffect l :+: Env l) a local :: forall l. Label l => IFC l () -> IFC l () local m = do (s :: l) <- IFC.ask m IFC.put s return ()

  18. Is it General Enough? LIO IFC LB-Monitors

  19. Final Remarks • IFC = controlling reading and writing side-effects + a notion of scope (local) type IFC l a = Free (ReadEffect l :+: WriteEffect l :+: Env l) a • A non-security expert can have a good impression of the security checks (taint/guard) • Floating label systems seems to be more convenient than traditional LB-monitors

  20. Interested in Details? https://github.com/alejandrorusso/ifc-wg2.8.git

Recommend


More recommend