Software Observable Side Channels Flashcards

1
Q

Causes of software observable SCs?

A

Finite total amount (memory, cache size, etc) and finite throughput (number of cache accesses, memory channels, etc)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

How to get Software Observable SC onto target system?

A
  • time shared system (multi accounts on same device), malicious user can get info about others
  • personal computers, cell phones - apps are sandboxed, so malicious app can get info about other apps
  • cloud computing - must RE how provider assigns VMs => usually based on resource usage => create VM with matching profile to target
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

what are Memoization-Based Optimizations?

A

Improve performance based on temporal locality (what recently happened is likely to happen again). Usually table stores the results of a time-consuming operation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Types of Memoization-Based Optimizations?

A

Non-speculative (tagged lookup, i.e. cache) => miss takes longer than a hit
Speculative (i.e. branch prediction) => each entry contains info about params and outcome => misprediction is expensive and causes a penalty

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

general approach to Memoization-Based attack

A

Premise: parameters of victim’s operation contain sensitive information => sensitive information determines which table entry is used

  1. Attacker does operations to occupy specific table entries
  2. Depending on sensitive data, victim tries to occupy same entries => evicting attacker’s data
  3. Attacker repeats operation and times it to see which entries were evicted
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

how does cache set associativity make a SC harder or easier?

A

Less entries in a set ==> more information is leaked

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

how to prevent cache side channels?

A
  1. Timing between memory accesses should not depend on sensitive data
  2. Addresses of memory accesses should not depend on sensitive data
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

how to measure side channels

A
  • Use system calls to get the time
  • Use hardware performance counters (count things such as cache misses)
  • Use other hardware tables (TLB, branch pred tables, LLC, cache coherence dirs)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly