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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend