DriveCrypt Security Model Bypass and Incorrect BIOS API Usage
25 Aug. 2008
Summary
DriveCrypt is an "Ideal to encrypt USB-disks/sticks, secondary disks /partitions, CDs, DVDs, containers etc. DriveCrypt also allows to hide data in music files and create hidden containers/ partitions: By entering the correct password, the disks open, if however you are forced to reveal a password, you could reveal a pre-configured fake password and the disk will open showing fake, prepared information". The password checking routine of DriveCrypt fails to sanitize the BIOS keyboard buffer before and after reading passwords.
Vulnerable Systems:
* Secu Star's DriveCrypt Plus Pack version 3.9
DriveCrypt's pre-boot authentication routines use the BIOS API to read user input via the keyboard. The BIOS internally copies the keystrokes in a RAM structure called the BIOS Keyboard buffer inside the BIOS Data Area. This buffer is not flushed after use, resulting in potential plain text password leakage once the OS is fully booted, assuming the attacker can read the password at physical memory location 0x40:0x1e. It is also possible for a root user to reboot the computer by instrumenting the BIOS keyboard buffer in spite of the full disk encryption.
Impact:
1) Plain text password disclosure.
The required privileges to perform this operation are OS dependent, from unprivileged users under Windows (any), to root under most Unix.
2) A privileged attacker able to write to the MBR and knowing the password (for instance thanks to 1), is able to reboot the computer in spite of the password prompted at boot time (and in spite of disk encryption) by initializing the BIOS keyboard buffer with the correct password (using an intermediary bootloader that will in turn run DriveCrypt).