3 ms·
>I feel that exfiltrating memory at a few hundred bytes/sec makes it extremely impractical. Not at all - you don't sequentially dump all of kernel space - you
by ChrisLomont 4y ago
>I feel that exfiltrating memory at a few hundred bytes/sec makes it extremely impractical.
Not at all - you don't sequentially dump all of kernel space - you probabilistically sample it and make guesses of where to look next based on the fingerprints you already have seen. It takes not long at all to find useful stuff.
Find a block that matches a known library? Ok, that entire section is known. Find a page table? Golden - you quickly walk it and you now know how everything else is laid out. Find any of zillions of known structures? Now you can walk those nicely.
I've written code to do kernel reconstruction over the PCI bus from an external security monitor - it's not hard or slow to reconstruct all of memory efficiently and without having to sample much simply by using tricks like these.
It's just like playing Battleship, except you can do it much more accurately with perfect knowledge of probabilities.
- icedchai 4y agoHaving access to a PCI bus is a bit different than what we're talking about here. Explain to me how are you going to "quickly" walk a page table or other known data structure if you don't have direct control over what you can read?
- ChrisLomont 4y agoTheir paper states "RETBLEED can leak arbitrary kernel data from an unprivileged process with all the mitigations up on various Intel and AMD systems." They control the branch target buffer so can point to whatever they want.
- icedchai 4y agoIt's still not going to be quick!
- ChrisLomont 4y agoDo you have experience in this? I do. What fraction of memory samples do you estimate you'd need to find structures of interest?
- icedchai 4y agoNot much! I've played around with the exploits / POC code posted on github.