Surviving reformats by infecting the hard disk firmware
malwaretech.com
malwaretech.com
Skeptical about this -- especially the claim that it's "completely undetectable". One of the projects[1] we've worked on for 01.org now ships with UEFI SCT[2], which was designed to address this very issue.
Flash LUV to a USB and run the suites.. the tests will write to a folder on the USB, both "raw" and "parsed" results, so you can essentially have a log[3] of any issues.
[1] https://github.com/01org/luv-yocto
[2] http://firmware.intel.com/blog/linux-uefi-validation-project-incorporate-uefi-sct
[3] https://01.org/linux-uefi-validationAs the author explains in his slides, only the first read of the MBR will return the bootkit. Subsequent reads will return the legit MBR. So a compromised OS attempting to check its own MBR will see legit data. But an OS booted from another boot device can read the MBR one time and can immediately see the MBR contains non-standard code (eg. not the standard Windows or Grub boot loader) and can conclude it is compromised.
I mean, 20 years ago there might have been space constraints, but these days that hardly seems like a worry. So why isn't secure firmware the standard?
Or will it take some malware being publicly released to get the hardware companies to take notice?
I mean, 20 years ago there might have been some benefits, but these days that doesn't really matter. So why is jailbreaking so prevalent?
Or will it take some malware being publicly released to get the customers to take notice?
I don't think there's any real equivalent for hard drive firmware.
And large companies like Facebook do redesign servers. I don't know if they specifically use new hard drive firmware, but I wouldn't be surprised.
For stuff like routers and mp3 players, I've replaced firmware.
"The biggest change was allowing only one drive per tray to be powered on at a time. In fact, to ensure that a software bug doesn’t power all drives on by mistake and blow fuses in a data center, we updated the firmware in the drive controller to enforce this constraint."
There's been plenty of speculation that this is similar to how Amazon Glacier works - lots of mostly unpowered disks, with custom firmware.
I presume when they're buying in suitable quantity, they can get direct manufacturer support with these sorts of modifications.
[1] https://code.facebook.com/posts/1433093613662262/-under-the-...
There might be an argument that it should require knowing the serial number or something that's only printed on the disk, so it couldn't be done by malware.
Anyway, I wonder about the feasibility of writing your own firmware like this. The stuff is so complicated that it seems impractical to do it usefully on a production-ready level without the cooperation of the manufacturer. In an ideal world the firmware would be open source and we could tweak it as we wished, but absent that, it seems like more of an abstract concern.
As long as customers are buying the product and not requiring this feature it will not be made available as it will require using a 16MB EEPROM instead of the 8MB one.
Seriously though, signed firmware is something that is inevitable but also easy to delay with some shady dealing. With NSA buying a non trivial number of disks to store their illegal collections, they could easily induce disk manufacturers to put off introducing firmware signing.
How hard a single pin/paper-clip button that protects all critical files unless it's depressed and when it's depressed let's you install new firmware, OS and whatever else.
See https://laur.ie/blog/2015/06/ssds-a-gift-and-a-curse/ for an example of the pain of being unable to flash yourself: "An awesome contractor for Samsung agreed that if we drove over batches of drives (luckily, they are incredibly close to our datacenter) they would flash them and return them the next day."
What happens when companies get sick of having to flip the switch? They would leave it in the insecure position all the time.
Okay, but how is that worse than now?
That situation sounds strictly better: things like user work stations, which tend to be the entry points to corporate network for malware stay in a higher security mode and have their HDD firmware updated less often; things like servers in racks are in the same situations, and ops continues on just live they have been.
It wouldn't surprise me to see a mechanism allowing a drive controller to reflash itself from its own storage media, but I would expect the actual stored code to live in the controller chip. Even if the storage device is an SSD, the NAND-flash chips used for storage won't be visible in the controller's address space the same way its own flash is.
The classics are MBR and BIOS.
These days IPMI BMC and storage device firmware are becoming popular.
However, we also have PCI device firmware (eg. GPU firmware, network card firmware), connected firewire device firmware, USB input device firmware... others?