4.2. BIOS とブートローダのセキュリティ

BIOS (または、BIOS に相当するもの)及びブートローダのパスワード保護で、システムに物理的にアクセスできる許可のないユーザーが、リムーバブルメディアを使用してブートしたり、シングルユーザーモードから root を取得してブートするのを防ぐことができます。ただし、セキュリティ対策として、ワークステーションが保持する情報の機密度やマシンの設置場所の両方に従って、このような攻撃に対して防護するものを採用します。

例えば、マシンがトレードショーで使用されるため機密情報が保存されていない場合は、このような攻撃を防止することは極めて重要なことにはならないかもしれません。しかし、会社のネットワーク用にプライベートで暗号化されていない SSHキーを持っている雇用者のノートブック型 PC を、そのトレードショーで放置した場合、会社全体のあらゆる部署に大きなセキュリティ侵害を招く可能性があります。

一方、許可のある人や信頼できる人しかアクセスできない場所にワークステーションが配置されている場合、BIOS やブートローダにセキュリティを施行する必要はまったくないかもしれません。

4.2.1. BIOS パスワード

以下に、コンピュータの BIOS を保護するパスワードに関する2つの主な理由を示します [1]

  1. BIOS 設定への変更を防止する — 侵入者が BIOS にアクセスした場合、ディスケットや CD-ROM からブートすることができます。これにより、侵入者はレスキューモードないしはシングルユーザーモードで入り込むことが可能になり、そしてシステムに勝手なプログラムを埋めこんだり、機密データをコピーすることができるようになってしまいます。

  2. システムのブートを防止する — BIOS のなかには、ブートプロセスのパスワード保護ができるものがあります。起動すると、攻撃者は BIOSがブートローダを起動する前にパスワードの入力を強要されます。

BIOSパスワードの設定方法についてはコンピュータのメーカーにより異なるため、特定の説明についてはコンピュータのマニュアルを参照してください。

BIOS パスワードを忘れてしまった場合、マザーボード上のジャンパでリセットするか、CMOS バッテリを取り外すことができます。このため、できればコンピュータケースをロックするようにした方がよいでしょう。ただし、CMOS バッテリを外す前に、コンピュータまたはマザーボードのマニュアルを参照してください。

4.2.1.1. x86 以外のプラットフォームにセキュリティを施行する

他のアーキテクチャは異なるプログラムを使って、x86システムの BIOS にほぼ値する低レベルのタスクを実行します。例えば、Intel® Itanium™のコンピュータはEFI (Extensible Firmware Interface)シェルを使用します。

他のアーキテクチャの BIOS に相当するプログラムのパスワード保護については、メーカーの説明書を参照してください。

4.2.2. ブートローダのパスワード

以下に、Linuxブートローダを保護するパスワードの主な理由を示します:

  1. シングルユーザーモードヘのアクセスを防止する— 攻撃者がシングルユーザーモードでブートできる場合、root パスワードを要求されずに自動的に root ユーザーとしてログインできます。

  2. GRUBコンソールヘのアクセスを防止する — マシンがGRUB をそのブートローダとして使用する場合、攻撃者は GRUBエディタ インターフェースを使用してその設定を変更したり、catコマンドを使って情報を収集することができます。

  3. セキュアでないオペレーティングシステムへのアクセスを防止する — デュアルブートシステムである場合、攻撃者はブート時にアクセス制御やファイルパーミッションを無視する DOS などのオペレーティングシステムを選択することができます。

x86 プラットフォーム用に Red Hat Enterprise Linuxで配付されるブートローダは、GRUB です。GRUB の詳細については、 Red Hat Enterprise Linux リファレンスガイドにあるGRUB ブートローダの章を参照してください。

4.2.2.1. GRUB を保護するパスワード

GRUB は、その設定ファイルにパスワードディレクティブを追加すると、 項4.2.2に記載されている最初の2点に対処します。これを行なうには、まずパスワードを決め、シェルプロンプトを開きます。root としてログインして次のように入力します。

/sbin/grub-md5-crypt

パスワードを要求されたら、GRUBパスワードを入力して[エンター] を押します。パスワードの MD5ハッシュを返してきます。

次に、GRUB の設定ファイル/boot/grub/grub.confを編集します。ファイルを開き、ドキュメントのメインセクションにある timeout行の下に次の行を追加します。

password --md5 <password-hash>

<password-hash>には、/sbin/grub-md5-cryptで返された値を入れます。[2]

次回システムが起動すると、GRUBメニューは、最初に[p]を押してその後に GRUBパスワードを入れないと、エディタやコマンドインターフェースへのアクセスを許可しなくなります。

残念ながら、このソリューションでは、デュアルブート環境でのセキュアではないオペレーティングシステムへ攻撃者がブートするのは防止しません。このため、/boot/grub/grub.confファイルの別の部分を編集する必要があります。

セキュアではないオペレーティングシステムの title 行を探して、その下に直接 lockという行を追加します。

DOSシステムなら、節は次のように始まります。

title DOS
lock

警告警告
 

この方法が正常に機能するためには、password行が /boot/grub/grub.confファイルのメインセクションに表示されていなければなりません。これがないと、攻撃者は GRUBエディタインターフェースにアクセスして lock 行を削除できることになります。

特定のカーネルまたはオペレーティングシステム用に別のパスワードを作成するには、その節に lock 行とその後にパスワード行を付けて追加します。

固有のパスワードで保護された各節は、以下の例のような始まりになります:

title DOS
lock
password --md5 <password-hash>

注記

[1]

システムの BIOS はメーカーによって異なるため、どのタイプのパスワード保護もサポートしないものもあれば、特定タイプはサポートするが他タイプはサポートしないものもあります

[2]

GRUBは暗号化されていないパスワードも受け付けますが、セキュリティを強化するために md5ハッシュを使用することをおすすめします。