complete information flow tracking from gates up
play

Complete Information Flow Tracking from Gates Up Mohit Tiwari, Xun - PowerPoint PPT Presentation

Complete Information Flow Tracking from Gates Up Mohit Tiwari, Xun Li, Hassan M G Wassel, Frederic T Chong, Timothy Sherwood Presented by Mengjia Yan Based on slides from Mohit Tiwari Goal: Non-Interference High Low Low system Sink


  1. Analysis Technique: GLIFT a a b b t t Conservative. If one of a and b is tainted, the output is tainted. o o t AND Shadow AND for labels

  2. Motivation: Require Precise Information Flow 010101… D Q reset clock • Conventional OR-ing of labels monotonic

  3. Motivation: Require Precise Information Flow 010101… D Q reset clock • Conventional OR-ing of labels monotonic

  4. Motivation: Require Precise Information Flow 010101… D Q reset clock • Conventional OR-ing of labels monotonic

  5. Motivation: Require Precise Information Flow 010101… D Q reset clock • Conventional OR-ing of labels monotonic

  6. Motivation: Require Precise Information Flow 010101… D Q reset clock • Conventional OR-ing of labels monotonic

  7. Motivation: Require Precise Information Flow 010101… D Q reset clock • Conventional OR-ing of labels monotonic

  8. Precise Information Flow: AND Gate untainted tainted a b o 0 0 0 0 0 a b o 0

  9. Precise Information Flow: AND Gate untainted tainted a b o 0 1 0 0 0 a b 0 1 0 o 0

  10. Precise Information Flow: AND Gate untainted tainted a b o 0 1 0 0 0 When a=0, b can not affect a b 0 1 0 the value of the output. à no-interference o 0

  11. Precise Information Flow: AND Gate untainted tainted a b o 0 1 0 0 0 When a=0, b can not affect a b 0 1 0 the value of the output. 1 0 0 à no-interference 1 1 1 o 0 0 0 0 0 0 1

  12. Precise Information Flow: AND Gate untainted tainted a b o 0 1 0 0 0 When a=0, b can not affect a b 0 1 0 the value of the output. 1 0 0 à no-interference 1 1 1 o 0 0 0 0 0 0 1 Use both inputs and input labels

  13. Analysis Technique: GLIFT a b t b a t a a b b t t o o t o t

  14. Sound Composition of Shadow Logic a b s t1 t2 o

  15. Sound Composition of Shadow Logic s s a t b t s a s b t t t1 t2 o t

  16. MUX: Gatekeeper of trust b a b a a b s * 1 0 s s o o o

  17. MUX: Gatekeeper of trust b a b a a b s * 1 0 s s o o o

  18. MUX: Gatekeeper of trust b a b a a b s * 1 0 s s o o o

  19. Implicit Information Flows: Taint Explosion +4 PC jump target is jump? Instr Mem R2 Reg File through R1 decode

  20. Implicit Information Flows: Taint Explosion if (secret==1) +4 out = 1 PC tmp = 5 jump target is jump? Instr Mem R2 Reg File through R1 decode

  21. Implicit Information Flows: Taint Explosion if (secret==1) +4 out = 1 PC tmp = 5 jump target is jump? Instr Mem R2 Reg File through R1 decode

  22. Implicit Information Flows: Taint Explosion if (secret==1) +4 out = 1 PC PC tmp = 5 jump target is jump? Instr Mem R2 Reg File through R1 decode Conditional execution taints critical state (PC)

  23. Implicit Information Flows: Taint Explosion if (secret==1) +4 out = 1 PC PC tmp = 5 jump target is jump? Instr Mem R2 Reg File through R1 decode Conditional execution taints critical state (PC)

  24. Implicit Information Flows: Taint Explosion if (secret==1) +4 out = 1 PC PC tmp = 5 jump target is jump? Instr Mem R2 Reg File through R1 decode Conditional execution taints critical state (PC)

  25. Implicit Information Flows: Taint Explosion if (secret==1) +4 out = 1 PC PC tmp = 5 jump target is jump? Instr Mem R2 Reg File through R1 decode Conditional execution taints critical state (PC)

  26. Implicit Information Flows: Taint Explosion if (secret==1) +4 out out = 1 PC PC tmp tmp = 5 jump target is jump? Instr Mem R2 Reg File through R1 decode Conditional execution taints critical state (PC)

  27. Convert Implicit Flow to Explicit Flow if (secret==1) out = 1 +4 tmp = 5 PC jump target is jump? P0 = secret Instr Mem (P0) out = 1 tmp = 5 R2 Reg File through R1 decode 6.888 Fall 2020 22

  28. Convert Implicit Flow to Explicit Flow if (secret==1) out = 1 +4 tmp = 5 PC jump target is jump? P0 = secret Instr Mem (P0) out = 1 tmp = 5 R2 Reg File through R1 decode 6.888 Fall 2020 22

  29. Convert Implicit Flow to Explicit Flow if (secret==1) out = 1 +4 tmp = 5 PC jump target is jump? P0 = secret Instr Mem (P0) out = 1 P0 tmp = 5 R2 Reg File through R1 decode 6.888 Fall 2020 22

  30. Convert Implicit Flow to Explicit Flow if (secret==1) out = 1 +4 tmp = 5 PC jump target is jump? P0 = secret Instr Mem (P0) out = 1 P0 tmp = 5 R2 Reg out File through R1 decode 6.888 Fall 2020 22

  31. Convert Implicit Flow to Explicit Flow if (secret==1) out = 1 +4 tmp = 5 PC jump target is jump? P0 = secret P0 = secret Instr Mem (P0) out = 1 (P0) out = 1 P0 tmp = 5 tmp = 5 R2 Reg out File through R1 decode 6.888 Fall 2020 22

  32. Convert Implicit Flow to Explicit Flow if (secret==1) out = 1 +4 tmp = 5 PC jump target is jump? P0 = secret Instr Mem (P0) out = 1 5 P0 tmp = 5 R2 Reg out File through R1 decode 6.888 Fall 2020 23

  33. Convert Implicit Flow to Explicit Flow if (secret==1) out = 1 +4 tmp = 5 PC jump target is jump? P0 = secret Instr Mem (P0) out = 1 5 P0 tmp = 5 R2 Reg out File through R1 decode 6.888 Fall 2020 23

  34. Convert Implicit Flow to Explicit Flow if (secret==1) out = 1 +4 tmp = 5 PC jump target is jump? P0 = secret Instr Mem (P0) out = 1 5 P0 tmp = 5 R2 Reg out File tmp through R1 decode 6.888 Fall 2020 23

  35. Convert Implicit Flow to Explicit Flow if (secret==1) out = 1 +4 tmp = 5 PC jump target is jump? P0 = secret P0 = secret Instr Mem (P0) out = 1 (P0) out = 1 5 P0 tmp = 5 tmp = 5 R2 Reg out File tmp through R1 decode 6.888 Fall 2020 23

  36. Similar Mechanisms for Loop/Load/Store • Variable length loops à fixed size loops (bounding) • Indirect loads/stores à Direct loads/stores 6.888 Fall 2020 24

  37. Similar Mechanisms for Loop/Load/Store • Variable length loops à fixed size loops (bounding) • Indirect loads/stores à Direct loads/stores - Harder to program and inefficient + Verifiable system 6.888 Fall 2020 24

  38. Similar Mechanisms for Loop/Load/Store • Variable length loops à fixed size loops (bounding) • Indirect loads/stores à Direct loads/stores - Harder to program and inefficient + Verifiable system • Recommend to read their follow-on work: • Execution Leases: A Hardware-Supported Mechanism for Enforcing Strong Non-Interference ; Tiwari et al.; MICRO’09 6.888 Fall 2020 24

  39. Evaluation + Security - Area overhead/Power consumption - Performance overhead - Programmability 6.888 Fall 2020 25

  40. Evaluation + Security - Area overhead/Power consumption - Performance overhead - Programmability Appropriate use cases: • When critical or sensitive operations need to be performed, a co-processor augmented with these abilities could be an attractive option. 6.888 Fall 2020 25

  41. Discussion Questions

  42. Discussion Questions on Taint Tracking • Who designates an input as untrusted/trusted? Where in the architecture/implementation does an input first get marked as untrustworthy? 6.888 Fall 2020 27

  43. Discussion Questions on Taint Tracking • Who designates an input as untrusted/trusted? Where in the architecture/implementation does an input first get marked as untrustworthy? • Can/should there be a method of promoting data from untrusted to trusted? (from High to Low) 6.888 Fall 2020 27

  44. Discussion Questions on Taint Tracking • Who designates an input as untrusted/trusted? Where in the architecture/implementation does an input first get marked as untrustworthy? • Can/should there be a method of promoting data from untrusted to trusted? (from High to Low) • How does the GLIFT method handle optimizations such as out-of-order execution, speculation etc? Will the proposed architecture be able to detect covert and side channel attacks such as Meltdown and Spectre? 6.888 Fall 2020 27

  45. Example MLS System Example Satellite Application. [Tzvetan Metodi, Aerospace Corp.] Interrupt Handlers (Non-sensitive) Command Kernel and Time I/O Mission Mission Crypto Telemetry Diagnostics Keeping Secret Secret Unclass. Interface

  46. Example MLS System Example Satellite Application. [Tzvetan Metodi, Aerospace Corp.] Interrupt Handlers (Non-sensitive) Command Kernel and Time I/O Mission Mission Crypto Telemetry Diagnostics Keeping Secret Secret Unclass. Interface Primary Execution Schedule Execution Time Note: Since this is not a real schedule, the processes are not in any sensible execution order

  47. Example MLS System Example Satellite Application. [Tzvetan Metodi, Aerospace Corp.] Interrupt Handlers (Sensitive) Interrupt Handlers (Non-sensitive) Command Kernel and Time I/O Mission Mission Crypto Telemetry Diagnostics Keeping Secret Secret Unclass. Interface Primary Execution Schedule Execution Time Note: Since this is not a real schedule, the processes are not in any sensible execution order

  48. Example MLS System Example Satellite Application. [Tzvetan Metodi, Aerospace Corp.] Interrupt Handlers (Sensitive) Interrupt Handlers (Non-sensitive) Command Kernel and Time I/O Mission Mission Crypto Telemetry Diagnostics Keeping Secret Secret Unclass. Interface Primary Execution Schedule Execution Time Note: Since this is not a real schedule, the processes are not in any sensible execution order Non-sensitive Sensitive

  49. Example: Satellite System

  50. Example: Satellite System Untrusted & Secret Trusted & Secret Untrusted & Unclassified Trusted & Unclassified

  51. Example: Satellite System Untrusted & Secret Trusted & Secret Untrusted & Unclassified Trusted & Unclassified Kernel, Interrupt Handlers (Unclassified), Time Keeping Programs

  52. Example: Satellite System Untrusted & Secret Trusted & Secret Untrusted & Unclassified Diagnostics, Telemetry Interfaces Trusted & Unclassified Kernel, Interrupt Handlers (Unclassified), Time Keeping Programs

  53. Example: Satellite System Untrusted & Secret Trusted & Secret Untrusted & Unclassified Custom code on Secret data Diagnostics, Telemetry Interfaces Trusted & Unclassified Kernel, Interrupt Handlers (Unclassified), Time Keeping Programs

  54. Example: Satellite System Untrusted & Secret Libraries (e.g. encryption) that operate on Secret data Trusted & Secret Untrusted & Unclassified Custom code on Secret data Diagnostics, Telemetry Interfaces Trusted & Unclassified Kernel, Interrupt Handlers (Unclassified), Time Keeping Programs

  55. Discussion Questions on Use Cases • One specific use case: What if we needed to load in a new firmware blob to compute a new function. Could we send it in encrypted and have a way of validating and then trusting it? 6.888 Fall 2020 30

  56. Discussion Questions on Use Cases • One specific use case: What if we needed to load in a new firmware blob to compute a new function. Could we send it in encrypted and have a way of validating and then trusting it? • In the end, it seems the ISA is the secure step, and the trust bits are just useful in validating the design. (Does the restricted ISA make program secure against side channels?) 6.888 Fall 2020 30

  57. Discussion Questions on Use Cases • One specific use case: What if we needed to load in a new firmware blob to compute a new function. Could we send it in encrypted and have a way of validating and then trusting it? • In the end, it seems the ISA is the secure step, and the trust bits are just useful in validating the design. (Does the restricted ISA make program secure against side channels?) • This kind of processor would be a pain to program. If most applications on it are small, important kernels, such as AES, would it not be better to produce a specially tuned ASIC/IP core? 6.888 Fall 2020 30

  58. Discussion Questions on Use Cases • One specific use case: What if we needed to load in a new firmware blob to compute a new function. Could we send it in encrypted and have a way of validating and then trusting it? • In the end, it seems the ISA is the secure step, and the trust bits are just useful in validating the design. (Does the restricted ISA make program secure against side channels?) • This kind of processor would be a pain to program. If most applications on it are small, important kernels, such as AES, would it not be better to produce a specially tuned ASIC/IP core? • Are there any programs or algorithms that are rendered impossible (or extremely difficult) to write as a result of the limitations that they've placed on loops? 6.888 Fall 2020 30

  59. Discussion Questions on Future Work • Rather than implementing a CPU with this restricted ISA, since this is used only for edge case computation, could an FPGA-based enclave in a traditional CPU be used with this ISA instead as a cost-effective implementation? 6.888 Fall 2020 31

  60. Discussion Questions on Future Work • Rather than implementing a CPU with this restricted ISA, since this is used only for edge case computation, could an FPGA-based enclave in a traditional CPU be used with this ISA instead as a cost-effective implementation? • Rather than apply the concept of gate level flow tracking to the ISA, I envision further work that could apply the same concepts to FPGA tooling. 6.888 Fall 2020 31

Recommend


More recommend