El controlador IDE tiene registros que contienen datos que se pueden consultar mediante comandos ATA . Los datos devueltos brindan información sobre la unidad conectada al controlador. Hay tres comandos ATA involucrados en la creación y el uso de un área protegida del host. Los comandos son:
IDENTIFICAR DISPOSITIVO
ESTABLECER DIRECCIÓN MÁXIMA
LEER LA DIRECCIÓN NATIVA MAX
Los sistemas operativos utilizan el comando IDENTIFY DEVICE para averiguar el espacio direccionable de un disco duro. El comando IDENTIFY DEVICE consulta un registro particular en el controlador IDE para establecer el tamaño de una unidad.
Sin embargo, este registro se puede cambiar utilizando el comando SET MAX ADDRESS ATA. Si el valor del registro se establece en un valor menor que el tamaño real del disco duro, se crea efectivamente un área protegida del host. Está protegida porque el sistema operativo funcionará solo con el valor del registro que devuelve el comando IDENTIFY DEVICE y, por lo tanto, normalmente no podrá acceder a las partes del disco que se encuentran dentro del HPA.
El HPA es útil solo si otro software o firmware (por ejemplo, BIOS o UEFI ) puede usarlo. El software y el firmware que pueden usar el HPA se conocen como "compatibles con HPA". El comando ATA que utilizan estas entidades se llama READ NATIVE MAX ADDRESS. Este comando accede a un registro que contiene el tamaño real del disco duro. Para usar el área, el programa compatible con HPA que controla cambia el valor del registro leído por IDENTIFY DEVICE al que se encuentra en el registro leído por READ NATIVE MAX ADDRESS. Cuando se completan sus operaciones, el registro leído por IDENTIFY DEVICE vuelve a su valor falso original.
Usar
En el momento en que se implementó por primera vez el HPA en el firmware de disco duro, algunos BIOS tenían dificultades para arrancar con discos duros grandes. Entonces se podía configurar un HPA inicial (mediante algunos puentes en el disco duro) para limitar la cantidad de cilindros a 4095 o 4096 para que se iniciara el BIOS más antiguo. Luego, era tarea del gestor de arranque restablecer el HPA para que el sistema operativo pudiera ver todo el espacio de almacenamiento del disco duro.
Varias utilidades de arranque y diagnóstico pueden utilizar HPA, normalmente junto con el BIOS . Un ejemplo de esta implementación es Phoenix FirstBIOS, que utiliza Boot Engineering Extension Record ( BEER ) y Protected Area Run Time Interface Extension Services ( PARTIES ). [2] Otro ejemplo es el instalador Gujin que puede instalar el gestor de arranque en BEER, nombrando esa pseudopartición /dev/hda0 o /dev/sdb0; entonces solo los arranques en frío (desde el apagado) tendrán éxito porque los arranques en caliente (desde Control-Alt-Delete) no podrán leer el HPA.
Los fabricantes de computadoras pueden usar el área para contener un sistema operativo precargado para fines de instalación y recuperación (en lugar de proporcionar medios DVD o CD).
Las notebooks Dell ocultan la utilidad Dell MediaDirect en HPA. Las notebooks IBM ThinkPad y LG ocultan el software de restauración del sistema en HPA.
Varios proveedores de servicios de recuperación y monitoreo de equipos robados también utilizan HPA. Por ejemplo, la empresa de seguridad para computadoras portátiles CompuTrace utiliza HPA para cargar software que informa a sus servidores cada vez que la máquina se inicia en una red. HPA les resulta útil porque incluso cuando se formatea el disco duro de una computadora portátil robada, el HPA permanece intacto.
El HPA también se puede utilizar para almacenar datos que se consideran ilegales y, por lo tanto, son de interés para los equipos de investigación forense informática del gobierno y la policía . [3]
Se sabe que algunos gabinetes de unidades externas específicos de un proveedor (por ejemplo, Maxtor, propiedad de Seagate desde 2006) utilizan HPA para limitar la capacidad de los discos duros de reemplazo desconocidos instalados en el gabinete. Cuando esto ocurre, la unidad puede parecer de tamaño limitado (por ejemplo, 128 GB), lo que puede parecer un problema de BIOS o de superposición dinámica de unidades (DDO). En este caso, se deben utilizar utilidades de software (ver a continuación) que utilizan READ NATIVE MAX ADDRESS y SET MAX ADDRESS para cambiar el tamaño informado de la unidad a su tamaño nativo y evitar usar el gabinete externo nuevamente con la unidad afectada.
Algunos rootkits se esconden en el HPA para evitar ser detectados por software anti-rootkit y antivirus . [2]
Algunas vulnerabilidades de la NSA utilizan el HPA [4] para la persistencia de la aplicación.
Identificación y manipulación
La identificación de HPA en un disco duro se puede lograr mediante varias herramientas y métodos:
The Sleuth Kit (software gratuito y abierto) de Brian Carrier (la identificación HPA actualmente solo es compatible con Linux).
Tenga en cuenta que la función HPA se puede ocultar mediante comandos DCO (la documentación solo indica si el HPA no está en uso) y se puede "congelar" (hasta el próximo apagado del disco duro) o proteger con contraseña. [ cita requerida ]