Is BIOS still as unprotected as it was in the 1990s?
Posted: Thu Feb 06, 2025 4:01 pm
Note: I'm not sure if this should go here or in "General Programming".
I've been reading a lot about CIH and how it was one of the few known virus strains to overwrite the BIOS ROM with junk, rendering said computer useless without a reflash. I read the source code and it seems like the way it works is:
Since most BIOSes back then were made by a few brands, and BIOS security wasn't much of a concern, writing something like CIH would work on a majority of computers. This also goes back to the quote about updating firmware without physically replacing a chip.
Assuming most computers are "well designed", then how does most firmware upgrades / BIOS flashing work? Wouldn't it be insecure if someone who had arbitrary ring 0 access, i.e. from a driver, to repurpose that driver to overwrite BIOS? Additionally, does the BIOS not have any security features in place to prevent someone from writing?
I know that there's so many different BIOS manufacturers and that there are a ton of different BIOS firmware providers, so writing CIH in the modern age would require a load of different routines for different firmware, and it'd be super tedious to do. Thanks in advance!
I've been reading a lot about CIH and how it was one of the few known virus strains to overwrite the BIOS ROM with junk, rendering said computer useless without a reflash. I read the source code and it seems like the way it works is:
- Get ring 0 by modifying the IDT & causing an exception
- Inject into other PE files
- Overwrite BIOS EEPROM from 0x000E0000 to 0x000E007F
Most modern ones sure, but many moons ago it was a coin toss whether you could update the firmware without physically replacing a chip. (yeah I'm old, talking 286/386/486 here)
Well designed computers require moving a physical jumper or motherboard switch and or a cryptographically signed firmware update.
Since most BIOSes back then were made by a few brands, and BIOS security wasn't much of a concern, writing something like CIH would work on a majority of computers. This also goes back to the quote about updating firmware without physically replacing a chip.
Assuming most computers are "well designed", then how does most firmware upgrades / BIOS flashing work? Wouldn't it be insecure if someone who had arbitrary ring 0 access, i.e. from a driver, to repurpose that driver to overwrite BIOS? Additionally, does the BIOS not have any security features in place to prevent someone from writing?
I know that there's so many different BIOS manufacturers and that there are a ton of different BIOS firmware providers, so writing CIH in the modern age would require a load of different routines for different firmware, and it'd be super tedious to do. Thanks in advance!