Fine-Grained Analysis of Physically Observable Side Channels Flashcards
What is HDBSCAN?
Tool designed to help identify repetitive code patterns in a frequency over time graph.
How does HDBSCAN quantitatively analyze a graph?
It transforms a frequency over time graph based on density / sparsity of signals and uses a minimum spanning tree to sort them.
How do we find a match in HDBSCAN?
HDBSCAN creates a table of harmonics sorted by time, we check our signal with each entry in the graph
What is an alternative to HDBSCAN?
Dimension reduction
What are the two phases of dimension reduction?
- Phase I: average of short-Fourier transfers to reduce noise
- Phase II: reduce number of samples (tracking all frequency components can cause high overhead)
Three types of loops and their spectral representation
- Fixed - fixed time == high peak at one frequency
- Control flow == two peaks (one for if, one for else)
- Nested == wide peak (since the timing can vary)
How does malware affect loops?
If code is inserted or removed from a loop, the timing will go up or down and the spectral peaks will move left or right (shift in frequency)
EDDIE
Tool designed to detect malware inserted/removed from loops.
How does EDDIE work?
Create reference set for each loop and then compare live data to it
How well does EDDIE perform?
Fastest to detect anomalies in fixed, then control flow, then nested
Pro / con of time domain analysis
pro: good for fine-grained analysis to see program flow
con: does not scale
In time domain analysis, what granularity can we track on?
individual instruction, blocks, or control flow
How do we determine which branch was taken?
peak in graph of moving median slope is the start of a branch, and you can find the branch since it is a fixed-distance away. 1. Train data then 2. use ML at runtime to determine which branch was taken
How well does our branch predictor work?
Works perfectly on large differences, works okay-to-well on 1 instruction differences depending on measurement frequency
Potential drawback of ML
scale!