主機保護區域
此條目翻譯自其他語言維基百科,需要相關領域的編者協助校對翻譯。 |
主機保護區域(英語:host protected area,縮寫HPA)也稱主機保護區,是普通硬碟或固態硬碟上的一個作業系統一般不可見的區域,於2001年在ATA-4標準CXV (T13)中引入。[1]
工作方式
IDE控制器具有可以使用ATA命令來查詢數據的多個暫存器。返回的數據給出了有關連接到控制器的驅動器的資訊。共有三個ATA命令涉及建立和使用主機保護區,它們是:
- IDENTIFY DEVICE
- SET MAX ADDRESS
- READ NATIVE MAX ADDRESS
作業系統使用「IDENTIFY DEVICE」命令來尋找硬碟機的可定址空間。而「IDENTIFY DEVICE」命令會查詢IDE控制器上的特定暫存器來確定驅動器的大小。
該暫存器可以通過SET MAX ADDRESS ATA命令更改。如果將該值設置為小於實際硬碟大小,則有效地建立了一個主機保護區域。因為作業系統只能處理由「IDENTIFY DEVICE」命令返回的暫存器值,通常無法定址HPA內的驅動器部分,所以該區域受到保護。
只有其他軟件或韌體(如BIOS)能夠使用主機保護區域時,該技術才能發揮作用。此類軟件被稱為「HPA aware」。它們使用ATA命令「READ NATIVE MAX ADDRESS」,該命令會訪問包含硬碟真實大小的暫存器。要使用主機保護區域時,此類軟件會使用READ NATIVE MAX ADDRESS代替IDENTIFY DEVICE的暫存器值。
使用
- 在HPA最早在硬碟韌體上被實現時,當時的某些BIOS難以通過大容量硬碟啟動。此時可以通過硬碟上的某些跳線來設置一個初始HPA,將柱面數限制為4095或4096,以便早期的BIOS啟動。然後引導載入程式再重設HPA,以便作業系統看到完整的硬碟儲存空間。
- 各種引導和診斷工具可以使用HPA,這通常配合BIOS。Phoenix FirstBIOS就是此種實現的一個例子,其中使用了啟動工程擴充記錄(Boot Engineering Extension Record,縮寫BEER)和保護區執行時介面擴充服務(Protected Area Run Time Interface Extension Services,縮寫PARTIES)。[2]另一個例子是Gujin安裝程式,它可以在BEER中安裝引導程式,命名偽分區為/dev/hda0或/dev/sdb0;這樣只有冷啟動(斷電再開機)才能成功,因為熱啟動(Control-Alt-Delete)將無法讀取HPA。
- 電腦製造商可以使用此區域來容納預裝的作業系統,以用於安裝和恢復,從而代替提供DVD或CD光碟。
- 戴爾手提電腦在HPA中隱藏Dell MediaDirect實用工具。IBM和LG手提電腦在HPA中隱藏系統恢復軟件。
- 各防盜找回和監控服務供應商也會利用HPA。例如,手提電腦安全公司Computrace使用HPA來載入向伺服器報告機器啟動的軟件。HPA的優勢是即便被盜的手提電腦硬碟被格式化,HPA也不會改變。
- HPA也可能被用來儲存不合法的數據以逃避取證。[3]
- 部分Rootkit在HPA中隱藏以躲避反Rootkit和反病毒保安軟件。
- 某些NSA攻擊工具使用HPA[4]實現應用程式持久化。
辨識和操控
有許多工具和方法可以辨識硬碟機上的HPA。
HPA功能可以通過DCO隱藏, 並且可以「凍結」(至下次硬碟關機)或受到密碼保護。
辨識工具
- ATATool by Data Synergy
- The Sleuth Ki
- EnCase by Guidance Software
- Forensic Toolkit by Access Data
辨識方法
Windows程式ATATool可以檢測HPA。例如,使用下列命令檢視第一個磁碟是否具有HPA:
ATATOOL /INFO \\.\PhysicalDrive0
在Linux中有多種方法可以檢測是否存在HPA。較新版本的Linux在系統啟動時如果檢測到HPA,將顯示一條訊息,例如:
dmesg | less [...] hdb: Host Protected Area detected. current capacity is 12000 sectors (6 MB) native capacity is 120103200 sectors (61492 MB)
使用下列參數呼叫程式hdparm(版本 >= 8.0)將檢測sdX上的HPA:
hdparm -N /dev/sdX
操控方法
Windows程式ATATool可以用來建立一個HPA。例如,建立一個10GB HPA:
Linux程式hdparm(版本 >= 8.0)使用下列參數呼叫 可以建立一個HPA:(sdX:目標驅動器,#:非HPA可見磁區數量)
hdparm -N p# /dev/sdX
參見
參考資料
- ^ Host Protected Areas (PDF). [2018-04-14]. (原始內容存檔 (PDF)於2020-10-20).
- ^ Blunden, Bill. The Rootkit Arsenal: Escape and Evasion in the Dark Corners of the System. 1st ed. Jones & Bartlett Publishers, 2009 p.538
- ^ Nelson, Bill; Phillips, Amelia; Steuart, Christopher. Guide to computer forensics and investigations 4th. Boston: Course Technology, Cengage Learning. 2010: 334. ISBN 1-435-49883-6.
- ^ 存档副本. [2018-04-14]. (原始內容存檔於2020-10-30).