主機保護區域
此條目翻譯自其他語言維基百科,需要相關領域的編者協助校對翻譯。 |
主機保護區域(英語: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).