Notes from the Intelpocalypse
Notes from the Intelpocalypse
Posted Jan 4, 2018 5:37 UTC (Thu) by sfeam (subscriber, #2841)In reply to: Notes from the Intelpocalypse by jimzhong
Parent article: Notes from the Intelpocalypse
That might narrow the timing window but I don't think it would be sufficient to prevent the attack. The analysis of Spectre shows that hundreds of instructions may be executed speculatively before the misprediction is recognized, so snooping on the cache contents would still be possible during that interval.
Posted Jan 4, 2018 7:22 UTC (Thu)
by Cyberax (✭ supporter ✭, #52523)
[Link] (11 responses)
Posted Jan 4, 2018 14:15 UTC (Thu)
by droundy (subscriber, #4559)
[Link]
Posted Jan 4, 2018 21:50 UTC (Thu)
by roc (subscriber, #30627)
[Link] (9 responses)
It would hurt performance but what else would really work?
Posted Jan 4, 2018 22:28 UTC (Thu)
by rahvin (guest, #16953)
[Link] (2 responses)
Posted Jan 4, 2018 22:40 UTC (Thu)
by roc (subscriber, #30627)
[Link] (1 responses)
Posted Jan 5, 2018 1:46 UTC (Fri)
by rahvin (guest, #16953)
[Link]
Posted Jan 4, 2018 22:51 UTC (Thu)
by sfeam (subscriber, #2841)
[Link] (1 responses)
Posted Jan 4, 2018 23:00 UTC (Thu)
by roc (subscriber, #30627)
[Link]
Posted Jan 4, 2018 22:57 UTC (Thu)
by Cyberax (✭ supporter ✭, #52523)
[Link] (1 responses)
Posted Jan 4, 2018 23:01 UTC (Thu)
by roc (subscriber, #30627)
[Link]
Posted Jan 5, 2018 0:03 UTC (Fri)
by excors (subscriber, #95769)
[Link]
Then you'd want to rearchitect software to minimise the amount of domain-switching. E.g. instead of a syscall accessing protected data from the same core as the application, it would just be a stub that sends a message to a dedicated kernel core. Neither core would have to flush their own cache, and they couldn't influence each other's cache. Obviously you'd have to get rid of cache coherence (I don't see how your proposal would be compatible with coherence either), and split shared L2/L3 caches into dynamically-adjustable per-domain partitions, and no hyperthreading, etc.
Then maybe someone will notice that DRAM chips remember the last row that was accessed, so a core can touch one of two rows and another core can detect which one responds faster, and leak information that way. Then we'll have to partition DRAM by domain too.
Eventually we might essentially have a network of tiny PCs, each with its own CPU and RAM and disk and dedicated to a single protection domain, completely isolated from each other except for an Ethernet link.
Hmm, I'm not sure that will be good enough either: Spectre gets code in one domain (e.g. the kernel) to leak data into cache that affects the timing of a memory read in another domain (e.g. userspace), but couldn't it work with a purely kernel-only cache, if you simply find an easily-timeable kernel call that performs the memory read for you? Then it doesn't matter how far removed the attacker is from the target.
Posted Jan 5, 2018 13:44 UTC (Fri)
by welinder (guest, #4699)
[Link]
I don't see tagging every memory location with an owner as a viable option.
Notes from the Intelpocalypse
Notes from the Intelpocalypse
Notes from the Intelpocalypse
Notes from the Intelpocalypse
Notes from the Intelpocalypse
Notes from the Intelpocalypse
It's worse than you think. The use of cache as a side-channel was convenient for the proof-of-concept exploits but was not necessary. Mitigation that focuses on the cache rather than the speculative execution of invalid code is necessarily incomplete. The Spectre report notes: potential countermeasures limited to the memoryu cache are likely to be insufficient, since there are other ways that that speculative execution can leak information. For example, timing effects from memory bus contention, DRAM row address selection status, availability of virtual registers, ALU activity, [...] power and EM.
Notes from the Intelpocalypse
Notes from the Intelpocalypse
Notes from the Intelpocalypse
Notes from the Intelpocalypse
Notes from the Intelpocalypse
Notes from the Intelpocalypse
the cpu chip -- memory reads that reach the main memory -- then you might get
caching effects there.
