Skip to content

Latest commit

 

History

History
35 lines (12 loc) · 1.16 KB

File metadata and controls

35 lines (12 loc) · 1.16 KB

1-1

Given the attack plan above, how many addresses need to be flushed in the first step?

2-1

Copy your code in run_attacker from attacker-part1.c to attacker-part2.c. Does your Flush+Reload attack from Part 1 still work? Why or why not?

2-3

In our example, the attacker tries to leak the values in the array secret_part2. In a real-world attack, attackers can use Spectre to leak data located in an arbitrary address in the victim's space. Explain how an attacker can achieve such leakage.

2-4

Experiment with how often you train the branch predictor. What is the minimum number of times you need to train the branch (i.e. if offset < part2_limit) to make the attack work?

3-2

Describe the strategy you employed to extend the speculation window of the target branch in the victim.

3-3

Assume you are an attacker looking to exploit a new machine that has the same kernel module installed as the one we attacked in this part. What information would you need to know about this new machine to port your attack? Could it be possible to determine this infomration experimentally? Briefly describe in 5 sentences or less.