Securing Memory at EPYC Scale
blog.cloudflare.com
blog.cloudflare.com
Yesterday, Intel announced that Multi-Key Total Memory Encryption is coming to CPUs (https://arstechnica.com/gadgets/2020/02/intel-promises-full-...) and it's very exciting to see this space heat up.
If you're interested in embedded systems and data security is interesting to you, we are hiring! (send me an email - mahmoud @ linux dot com).
Again, if this interests you, we would love to talk to you! mahmoud -@- linux dot com!
Anything breaking security of your OS kernel or some trusted process will still be able to steal all your data, since it's executing on the CPU with access to the keys.
Any attacker with physical access can still grab a hold of some PCIe or LPC port somewhere and try to convince your IOMMU to let it DMA out all memory. Or just manipulate the BIOS to install a permanent rootkit.
Why is this not using per-page or per-process keys, in some kind of secure storage? That'd actually add another barrier even if the kernel is already compromised. And the CPU does actually support this... but only for VMs with SEV, it seems. Would be nice to extend this.
I don't know how often forensics teams bother freezing the memory; it's not always necessary.
SME was initially developed for game consoles[1], and was designed to protect security keys used for DRM against hardware probing. The feature makes sense in that environment, or any environment where the computer may realistically fall into the hands of an adversary (e.g., a laptop) while still running.
Plain SME on a server doesn't really make sense for DRAM unless your threat model needs to protect against extremely sophisticated attackers (although if there's no real performance hit, you may as well just enable it). However, it would be useful on a system with NVDIMMs.
[1] https://www.crn.com/news/components-peripherals/amd-s-xbox-p...
Even if it is no-cost performance wise, it still costs energy, which translates to heat and CO2.
> protect against extremely sophisticated attackers
I agree, and I'm very doubtful whether any attacker with this level of sophistication and access (i.e. physical to the DIMMs) won't have quite a few other venues of attack that are still viable.
This is extremely useful for cloud providers that provide Virtual Private Servers.
(Add: another reason to extend this to per-process or per-page encryption, since that would work on containers too.)
Not true. AWS is still largely on Xen, and most others are using KVM. Serverless (Lamdba) is a different story, but EC2 instances are largely Xen VM's, not containers.
I visited Cloudflare’s Austin office. The door to the office is an old unlocked door with a glass pane and an old deadbolt. There is no reception desk or even anyone watching the door. I was able to walk in completely unnoticed and walk around for a couple minutes trying to get someone’s attention to figure out where I needed to go (not the best job interview experience, but that’s a different topic), while desks full of unattended and unlocked computers were fully available to me.
For a company that bills itself as an internet security company, it wasn’t very inspiring security.
edit to add: this was over a year ago so it’s possible things have improved since then. My understanding is that the Austin office is relatively new so maybe at the time they were still working out the kinks (still not great security but more understandable at least)
Regarding the reception desk, it shouldn't matter if it's a shared building. Unless it's a small company (CF is not), even in shared buildings it's common to have at least one person sitting at a desk in the office suite to act as a gatekeeper and assist visitors, etc.