Posts Tagged ‘sleuthkit’

Host Protected Area (HPA)

|

El “Host Protected Area” (HPA) es un espacio del disco duro que puede ser usado para almacenar datos y que tiene la particularidad de que los datos contenidos en dicha area no pueden ser vistos por el Sistema operativo y se situan en la parte final del mismo.

HPA fue añadida en el estandard ATA-4 y se basa en el uso de comandos ATA. Estos comandos devuelven información sobre el disco duro, veamos unos ejemplos:

READ_NATIVE_MAX_ADDRESS: devuelve la mayor dirección física.
IDENTIFY_DEVICE: devuelve el número de sectores a los que el usuario puede acceder.
SET_MAX_ADDRESS: establece la dirección máxima a la que el usuario puede acceder.

En la práctica es muy sencillo detectar cuando un disco duro tiene habilitado HPA, simplemente ver si coinciden la dirección máxima del disco (READ_NATIVE_MAX_ADDRESS) y la dirección máxima de acceso del usuario (IDENTIFY_DEVICE).
Hay que tener que cuenta que los cambios en el HPA son volátiles, se pierden al reiniciar. Es posible deshacer el direccionamiento máximo del usuario para acceder a la HPA y al reiciniar el sistema el valor de IDENTIFY_DEVICE será restablecido.

A continuación vemos el uso del binario disk_stat perteneciente al Sleuthkit con el que podemos detectar si un disco duro tiene habilitada HPA:

[root@wendigo HPA]# disk_stat /dev/sda3
Maximum Disk Sector: 268435454
Maximum User Sector: 268435449

** HPA Detected (Sectors 268435450 – 268435454) **

En el caso de discos duros Hitachi hay una herramienta que permite controlar y modificar una gran variedad de parámetros, se trata de Feature Tool.

Para trastear con el parametro SET_MAX_ADDRESS hay un pequeño programa escrito en C, se trata de setmax.c.
Como recomendación si queréis trastear os recomiendo hacerlo sobre un disco duro que no contenga datos muy valiosos ;)

== Head of the class: Device Configuration Overlay (DCO) ==

“Device Configuration Overlay” (DCO) fue añadido en el estandard ATA-6 y incorpora nuevas características que un disco puede o no implementar. Ocupa el espacio en disco inmediatamente posterior al HPA. Algunas de las características que incorpora son los siguientes comandos:

DEVICE_CONFIGURATION_IDENTIFY: devuelve las características actuales del disco y su tamaño.
DEVICE_CONFIGURATION_SET: establece el DCO
DEVICE_CONFIGURATION_RSET: elimina el DCO

Hay que tener el cuenta que los cambios en DCO son permanentes, se mantienen tras un reinicio del sistema.
En la práctica para detectar si un disco duro tiene habiliatdo DCO, simplemente hay que comprobar si coinciden la dirección máxima del disco(READ_NATIVE_MAX_ADDRESS) y la dirección máxima del disco utilizando los comandos DCO (DEVICE_CONFIGURATION_IDENTIFY).

== Referencias ==

File System Forensic Analysis, ISBN 0-32-126817-2
http://en.wikipedia.org/wiki/Host_Protected_Area
http://www.hitachigst.com/hdd/support/download.htm
http://www.thinkwiki.org/wiki/Hidden_Protected_Area
http://www.sleuthkit.org/
http://www.win.tue.nl/~aeb/linux/setmax.c