密碼保護 BIOS(或 BIOS 的等同物)與開機管理程式可以防止可實體存取系統的未經授權使用者使用移除式的媒體進行開機或透過單一使用者模式來獲取 root 權限。不過我們應該採取來保護免受如此攻擊的保全方法取決於工作站中所存放的重要資料,以及機器的位置。
舉例來說,假如您把一台電腦留在貿易展會場中,其中沒有什麼重要的資訊,預防如此的攻擊便不是那麼必要。然而假如一個員工的筆記型電腦其中含有用於公司網路之私有且未加密的 SSH 金鑰,被遺留在同一個商展中無人看管,這將會導致整個公司的重大安全性漏洞。
在另一方面,假如工作站是位於只有經授權且信任的人可以存取的地方,也許根本不需要 保全 BIOS 與開機管理程式。
以下為使用密碼保護電腦中 BIOS 的兩個主要的原因[1]:
防止更改 BIOS 的設定 — 假如一個入侵者可以存取 BIOS,他們可以設定電腦從磁碟片或光碟片開機。這將使得他們可以進入救援模式或單一使用者模式,進而使得他們可以對系統中恣意執行工作,或者複製重要的資料。
防止系統開機 — 有些 BIOS 允許開機過程的密碼保護, 在啟用這個功能後,在 BIOS 啟動開機管理程式前,攻擊者被強迫輸入一個密碼。
因為每一個電腦製造商設定一個 BIOS 密碼的方法都不同,請查詢電腦的手冊以找出特定 的指示。
假如您忘記 BIOS 密碼,您可以重設主機板上的 jumper 或者是取出 CMOS 電池。由於這個因素,盡可能地請將電腦機殼上鎖。然而在您取出 CMOS 電池前,請查看電腦或主機板的手冊。
以下是使用密碼保護 Linux 開機管理程式的主要原因:
防止進入單一使用者模式 — 假如攻擊者可以開機進入單一使用者模式,他不需要輸入 root 密碼,就可以成為 root 使用者。
防止進入 GRUB 主控台 — 假如機器使用 GRUB 當作它的開 機管理程式,攻擊者可以使用 GRUB 編輯器介面來更改它的設定,或者是使用 cat 指令來收集資訊。
防止進入非安全的作業系統 — 假如它是一部多重開機的 系統,攻擊者可以在開機時選取一種作業系統,例如 DOS,此系統將會忽視存取控制與 檔案的權限設定。
適用於 x86 平台的 Red Hat Enterprise Linux 中含有開機管理程式 GRUB。如需關於這開機管理程式的詳細資訊,請參考 Red Hat Enterprise Linux 參考手冊 一書中的 『The GRUB Boot Loader』章節。
可以設定 GRUB 以解決 第 4.2.2 節 中所列出的前兩個 問題,只要增加一個 password 的指令到它的設定檔案中,如要如此做請先決定好一個密碼, 然後開啟一個 shell 提示符號,再以 root 身份登入,然後輸入:
/sbin/grub-md5-crypt |
在提示時,輸入 GRUB 的密碼再按下
下一步,請編輯 GRUB 的設定檔案 /boot/grub/grub.conf, 開啟這個檔案後,請在文件中主要部份的 timeout 那一行加入 下列的資訊:
password --md5 <password-hash> |
請以 /sbin/grub-md5-crypt 傳回的數值取代 <password-hash>[2]。
下次系統開機時,如果沒有按下
很不幸的,這個解決方案無法避免攻擊者開機進入多重開機環境中非安全的作業系統。 為了要防止這個情況發生,必須要編輯 /boot/grub/grub.conf 檔案的另一個部份。
請找出非安全作業系統的 title 那一行,請在下一行 增加含有 lock 的一行。
至於一部 DOS 系統,這個部份應該如下所示:
title DOS lock |
![]() | 警告 |
|---|---|
/boot/grub/grub.conf 檔案中的主要部份必須含有 password 的一行才能使這個方法運作順利,否則 攻擊者可以進入 GRUB 編輯器然後移除 lock 那一行。 |
如要為一個特定核心或作業系統建立一個不同的密碼,請增加 lock 一行到設定檔案的該節,再加上含有 password 的一行
以一個獨特密碼保護的每一節都應該如下列例子所示的這幾行開頭:
title DOS lock password --md5 <password-hash> |
| [1] | 由於每一個製造商 的系統 BIOS 都不同,有些也許不支援這些類型的密碼保護,而其他的也許可以支援一種 類型,而不支援另一種類型。 |
| [2] | GRUB 也接受未加密的密碼,不過建議您使用一個 md5 雜湊以增加安全性。 |