Abstract

We present efficient algorithms for time-sensitive control dependencies (CDs). If statement y is time-sensitively control dependent on statement x , then x decides not only whether y is executed but also how many timesteps after x . If y is not standard control dependent on x , but time-sensitively control dependent, then y will always be executed after x , but the execution time between x and y varies. This allows us to discover, e.g., timing leaks in security-critical software. We systematically develop properties and algorithms for time-sensitive CDs, as well as for nontermination-sensitive CDs. These work not only for standard control flow graphs (CFGs) but also for CFGs lacking a unique exit node (e.g., reactive systems). We show that Cytron’s efficient algorithm for dominance frontiers [ 10 ] can be generalized to allow efficient computation not just of classical CDs but also of time-sensitive and nontermination-sensitive CDs. We then use time-sensitive CDs and time-sensitive slicing to discover cache timing leaks in an AES implementation. Performance measurements demonstrate scalability of the approach.

Highlights

  • INTRODUCTIONTiming Leaks are a major source of software security problems today. Attacks based on timing leaks such as Spectre [22] have become known to the general public

  • AND OVERVIEWTiming Leaks are a major source of software security problems today

  • We focus on algorithms for →tscd and use a different security example: In Section 4, we will analyse an implementation of the AES cryptographic standard and discover cache leaks in this implementation

Read more

Summary

INTRODUCTION

Timing Leaks are a major source of software security problems today. Attacks based on timing leaks such as Spectre [22] have become known to the general public. Y is timing sensitively control dependent on x, written x →tscd y, if x decides when y will be executed. We focus on algorithms for →tscd and use a different security example: In Section 4, we will analyse an implementation of the AES cryptographic standard and discover cache leaks in this implementation. These infamous cache leaks have been known for some time [4], but so far no program analysis tool was able to discover such leaks.

CONTROL DEPENDENCE IN GRAPHS WITHOUT UNIQUE EXIT
Classical Control Dependence and Weak Control Dependence
Postdominance in Graphs without Unique Exit
Why Time Sensitivity Matters
Timing-sensitive Control Dependence
The Full Time-sensitive Backward Slice
TIMING SENSITIVITY FOR MICROARCHITECTURAL CFGS
ALGORITHMS
New Algorithms for MAX and SINK
Postdominance Frontiers in Graphs without Unique Exit
Timing-sensitive Postdominance Frontiers
MEASUREMENTS
FUTURE WORK
CONCLUSION
Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call