次のページ 前のページ 目次へ

3. 物理的なセキュリティ

最初に考慮すべきセキュリティの層は, コンピュータシステムの物理的なセキュリティです. 誰がマシンへ直接触ることができるのか? 触ることができるべきなのか? また, 彼らがマシンをいじれないよう守れるのか? あるいは守るべきなのか?

物理的なセキュリティがどの程度必要になるかは, 大抵の場合, 状況や予算によって決まります.

もしあなたがマシンを自分の家で使っているのならば, たぶん注意すべきことはあまりないでしょう (子供やうるさい親戚からマシンを守る必要はあるかもしれませんが). 研究室ならば, かなり注意しなければならないでしょうが, ユーザはそのマシンで仕事をできる必要があります. そのためには以下の各章が参考になるでしょう. あなたがオフィスにいるならば, 終業後やあなたが席を離れているときに マシンを安全にしておく必要があるかもしれませんし, その必要は無いかもしれません. 会社によっては, コンソールを放置することはクビにされる程の規則違反です.

ドアの施錠やケーブル, 鍵付きのキャビネット, ビデオ監視装置等のわかりやすい物理的な防御方法は全て良い考えなのですが, このドキュメントの守備範囲ではありません :-)

3.1 コンピュータへの施錠

最近の PC ケースの多くには「鍵」が付いています. 普通はケースの前面に鍵穴があり, 鍵を施錠か解除の位置にセットできるようになっています. ケースの鍵によって, 何者かが PC を盗んだり, ケースを開けて直接ハードウェアをいじったり盗んだりすることを防ぐことができます. ケースによっては, 他の誰かのフロッピーディスクや他の機器によるマシンの再起動を防ぐことができます.

マザーボードのサポートやケースの作りによっては, ケースの鍵で色々なことができます. 多くの PC ではケースを開けるためにはこれを壊さなくてはなりません. また, 新しいキーボードやマウスを挿せないものもあります. 詳しくはマザーボードやケースの説明書を読んでください. 通常, 鍵の質はとても低く, 攻撃者は偽造によって簡単に破ることができるのですが, それでも鍵はとても便利な機能になり得ます.

マシンによっては(特に Sun SPARC や Macintosh), 背面にドングル(dongle) が付いていて, これを通してケーブルを繋げば, ケーブルを切るかケースを壊さなければ攻撃者はケーブルを繋ぐことができません. これらに単に南京錠や連結錠を付けることで, マシンを盗もうとしている人への大きな抑止効果が得られます.

3.2 BIOS のセキュリティ

BIOS はもっともハードウェアに近いレベルのソフトウェアで, x86 ベースのハードウェアの設定及び操作を行います. LILO 等のブートローダは, BIOS にアクセスして Linux マシンをどうやってブートさせるか指示します. Linux の他のプラットフォームでも同様のソフトウェアがあります (Mac や 新しい Sun の OpenFirmware, Sun の boot PROM 等). BIOS の設定で, 攻撃者がマシンを再起動して Linux システムを操作するのを防ぐことができます.

多くの PC BIOS では起動パスワードの設定をすることができます. これはそんなに安全ではありません (BIOS はリセットすることができますし, ケースを開けられるなら取り外すこともできるでしょう) が, 抑止効果は大きいでしょう (時間かせぎにもなりますし, システムをいじった痕跡も残るからです). 同様に S/Linux (SPARC(tm)プロセッサのマシン用の Linux)では, EEPROM を設定して起動パスワードをかけることができます. これで侵入者を足止めできるかもしれません.

多くの x86 マシンの BIOS では, この他にも役立つセキュリティ設定を色々指定できます. BIOS のマニュアルを調べるか, 次回のマシン起動時にチェックしてみましょう. 例えば, フロッピーディスクでの起動を禁止できる BIOS もありますし, 一部の設定にパスワードをかけることができる BIOS もあります.

注意: サーバマシンを管理していて, 起動パスワードを設定している場合, 人がいないとマシンは起動しません. 停電などの時は, マシンの所に行ってパスワードを打ち込んでやる必要があることを覚えておきましょう. ;-(

3.3 ブートローダのセキュリティ

色々なブートローダにも起動パスワードを設定することができます. 例えば LILO を使っている場合には, passwordrestricted の設定を調べてみましょう. password は起動時にパスワードを要求するようにします. restricted の場合は, LILO プロンプトに対してオプション (single等) を指定した場合だけ起動パスワードを要求するようになります.

lilo.conf のオンラインマニュアルより:

password=password
       起動イメージごとのオプション `password=...' (下記参照) を
       すべてのイメージに適用します.

restricted
       起動イメージごとのオプション `restricted' (下記参照) を
       すべてのイメージに適用します.

       password=password
              イメージをパスワードで保護します.

       restricted
              起動イメージにコマンドラインでパラメータを指定したとき
              (例: single) だけパスワードを要求します.

パスワードを設定したら, これを忘れてはならないことに注意してください. :-) また, 気合いの入った攻撃者に対しては, このようなパスワードは単なる足止め程度にしかならないことも忘れてはいけません. この方法では誰かがフロッピーディスクから起動して ルートパーティションをマウントすることを防ぐことはできません. ブートローダと組み合わせたセキュリティ手法を使う場合には, コンピュータの BIOS でフロッピーディスクからの起動を無効にすることができますし, BIOS をパスワード保護することもできます.

LILO 以外のブートローダ(grub, silo, milo, linload 等)のセキュリティ関連情報をご存知ならば, ぜひお知らせください.

注意: サーバマシンにパスワードを設定した場合, 人がいないとマシンは起動しなくなります. 停電などの場合でも, マシンのところに行ってパスワードを打ち込まなければならないことは 覚えておきましょう. ;-(

3.4 xlock と vlock

頻繁にマシンから離れて出歩くならば, コンソールに「鍵」を掛け, 誰もマシンをいじったり, 作業の様子を覗けないようにしておくと良いでしょう. このようなプログラムとして, xlockvlock の 2 つを紹介します.

xlock は X のディスプレイをロックします. X をサポートしている Linux ディストリビューションならば, 普通 xlock はインストールされているでしょう. オプションについてはオンラインマニュアルを参照してほしいのですが, 大まかに説明すると, ロックしたいコンソール上の xterm から xlock を起動すると, ディスプレイがロックされ, パスワードを入力しないと解除できなくなります.

vlock は Linux の仮想コンソールの一部 あるいは全てをロックするための簡単なプログラムです. 現在作業中のコンソールを 1 つだけロックすることもできますし, 全てをロックすることもできます. 仮想コンソールを 1 つロックしている場合, 他の人はコンソールを使うことができます. ですが, ロックされている仮想端末はロックが解除されるまでは使うことができません. vlock は Red Hat Linux には入っていますが, 入っていないディストリビューションもあるかもしれません.

当然ながら, コンソールをロックすれば何者かにあなたの作業をいじられるのを 防ぐことはできますが, マシンを再起動されたりしてやりかけの作業が壊されることは防げません. また, ネットワーク上の他のマシンからコンソールを ロックしたマシンにアクセスして問題を起こすことを防ぐこともできません.

さらに重要な点としては, 誰かが X ウィンドウシステムから完全に抜けて 通常の仮想コンソールのログインプロンプトに行くことや, X11 を起動した仮想コンソールに行き X をサスペンドさせ, ユーザの権限を奪ってしまうことを防げない点が挙げられます. ですから, 完全に xdm の制御下において使うことだけを考えるのがよいでしょう.

3.5 物理的な攻撃を受けたことの発見

まずは, マシンをいつ再起動したのか必ず記録するようにしましょう. Linux は頑健で安定な OS ですから, あなたがマシンを再起動するのは OS のアップグレードやハードウェアの交換等の時だけでしょう. あなたが知らないうちにマシンが再起動されていたら, これは侵入者に悪用されたことの印かもしれません. 侵入者がマシンに物理的な攻撃をする手段の多くは, マシンを再起動したり, 電源を切ったりしなければならないからです.

ケースやコンピュータ周辺をいじられた兆候が無いかどうかチェックしましょう. 侵入者は普通ログから痕跡を消しますが, これらを全てチェックし, 矛盾が無いか調べるのも良いでしょう.

ログのデータを安全な場所 (きちんと守られたネットワーク内部の専用のログサーバ等) に置くのも良い考えです. あるマシンが悪用された場合には, ログデータはほとんど役に立たなくなるからです. というのも, 侵入者は大抵ログも書き換えてしまうからです.

syslog デーモンを設定して, ログを自動的に中央のログサーバに送るようにすることもできますが, これは通常は暗号化されずに送られます. したがって, 侵入者は転送されているデータを見ることができます. これにより, 公にするつもりのないネットワーク関係の情報が洩れてしまうかもしれません. データを送る際に暗号化することができる syslog デーモンもあります.

syslog のメッセージの偽造は容易である点にも注意してください. これを悪用するためのプログラムも出回っています. syslog はローカルホストから出されたと言っている ネットワーク経由のログエントリであっても, 本当の送信元を示すことなく受け付けてしまいます.

ログを調べる際には以下の点に注意します.

システムログデータについては, この HOWTO 内の 後の章で説明します.


次のページ 前のページ 目次へ