このコラムで何度も述べているように,システムの守りを固めることは非常に重要である。しかし,不正侵入される可能性をゼロにはできない。管理者は,不正侵入された場合の対応策も用意しておく必要がある。侵入された場合,あるいはその可能性があった場合に管理者がまずなすべきことは,その証拠(痕跡)を保存することだ。そうしないと,その後の調査はもちろんのこと,攻撃者や第三者に,不正侵入があった事実を示すことが難しくなる。今回のコラムでは,証拠を保存する手順やそのためのツールなどを紹介する。

ハード・ディスクの内容をコピーする

 不正侵入*1 を受けたシステム(コンピュータ)のハード・ディスク *2 には,ほとんどの場合何らかの痕跡が残っている。これが不正侵入の証拠となる。

*1 ここでは「不正侵入」として話を進めるが,実際にはすべてのセキュリティ・インシデントが対象となる。セキュリティ・インシデントとは,コンピュータ・セキュリティに関係する人為的事象(incident)のことで,意図的および偶発的に発生する。具体的には,不正侵入に限らず,弱点探索 (ポート・スキャン)やリソースの不正使用,サービス妨害(DoS:Denial of Service)などが含まれる。
*2 一般的な例として「ハード・ディスク」としたが,読み書き可能な記憶媒体(CDやMO など)すべてが対象となる。

 証拠を保存するには,ハード・ディスクの内容を,別の記憶媒体にコピーしておく必要がある。方法としては,次の3つが考えられる。

(1)不正侵入を受けたコンピュータからハード・ディスクを取り外して,調査用のコンピュータに接続し,別の記憶媒体にその内容をコピーする。

(2)不正侵入を受けたコンピュータに別の記憶媒体を取り付け,ハード・ディスクの内容をコピーする。

(3)不正侵入を受けたコンピュータと調査用のコンピュータを,他のコンピュータが接続していない“閉じた”TCP/IPネットワーク,あるいはシリアル・ケーブルで接続して,前者のハード・ディスクの内容を,後者に取り付けた記憶媒体へコピーする。この方法は,不正侵入を受けたコンピュータが物理的に移動できない場合や,ハード・ディスクの取り付けや取り外しができない場合に適している。

 (1)から(3)のどの方法でも,ハード・ディスクの内容は別の記憶媒体へコピーできる。しかし,(2)は非常に危険な方法である。(2)では,不正侵入を受けたコンピュータの機能(OS)でコピーを行うことになるからだ。例えば,Windows 2000 Server などの場合,explorer.exe や cmd.exe が別のプログラムに置き換えられている恐れがある。

 不正侵入を受けたコンピュータを再起動したり,仕込まれた悪意あるプログラムを実行したりした場合,ハード・ディスク内の重要な証拠--ディスクのパーティション情報,ファイルのパーミッションやタイム・スタンプ,レジストリ,設定ファイルやログなど--を消去してしまう可能性があるのだ。

ツールを利用してコピーや調査を行う

 そのため,(1)あるいは(3)の方法を採ることになる。では,その場合にはどのようなツールを使用すればよいだろうか。ツールには,以下の条件が満たされねばならないと筆者は考える。

  • 読み取り元のデータを,ビット単位で正確に複製できる
  • 読み取りエラーを処理する機能が充実している(例えば,ハード・ディスクを対象とするツールの場合,破損したセクターの読み取りに失敗したときには,その記録を残すとともに,同一サイズのダミー・セクターを複製先に出力する)
  • 読み取り元のデータを変更しない
  • ツールの処理結果に再現性がある
  • チェック・サムまたはハッシュを使って,複製先データをチェックする
  • 読み取り元の記憶媒体に,不要なアクセスを行わない

 これらの条件を考慮した上で,対象とする記憶媒体をハード・ディスクに限定した場合,筆者は以下のツールを推奨したい。

  • 「dd」(UNIX用)
  • Safeback」(Windows用)

 「dd」は,多くのUNIX OSで動作するツールであり,オープン・ソースとして公開されている。ファイル・システムによらずにデータを複製できる。上記(1)および(3)のいずれの場合でも使用できる。

 dd の特徴は,RAMディスクやフロッピ・ディスク上で動作させた,最小構成のUNIX上で使用できることである。

 不正侵入されたコンピュータを,最小構成のUNIXで起動して dd を使用すれば,改変された疑いがあるOSを起動することなく,ハード・ディスク内容を別媒体にコピーできる。ハード・ディスクをわざわざ取り外す必要はない。つまり,上記(2)に近い形で,安全にコピーすることができるのだ。

 dd とともに使用する,最小構成のUNIXとしては,次のものが挙げられる。

 これらは,単にサイズが小さいだけではなく,以下の特徴がある。

  • コピー元のディスクには書き込み動作を行わない
  • ネットワーク・インタフェース・カードを利用できる
  • dd がデフォルトで含まれ,netcatやmd5等のユーティリティを容易に追加できる

 「Safeback」は,MS-DOS(あるいはGUIを含まないWindows 95/98)で動作する商用製品である。上記(1)を行う場合に特化されたツールである。単にコピーするだけではなく,ディスク内容を調査する機能も充実している。例えば,ファイル・システム構造をたどりながらディスク内容を調査できる。また,RAIDとして運用しているディスク内容の調査も可能である。

 サポートしているファイル・システムは,FAT,FAT32,NTFSのほか,一部のUFS。

「dd」ツールの使用例

 次に,dd の使用例を紹介しよう。まず,マウントしたディスクへコピーする場合である。コピー元のコンピュータを,RAMディスクの Linux から起動する。モードはシングル・ユーザー・モードである。そして,ハード・ディスクの内容を,臨時にマウントしたディスクへコピーする。

# dd if=/dev/hdb of=/mnt/zagadka/disk1.img bs=1M count=620
# dd if=/dev/hdb of=/mnt/zagadka/disk2.img bs=1M count=620 skip=621
# dd if=/dev/hdb of=/mnt/zagadka/disk3.img bs=1M count=620 skip=1241
# dd if=/dev/hdb of=/mnt/zagadka/disk4.img bs=1M count=620 skip=1861

 マウントしたディスクから CD-ROMへ記録できるように,約620Mバイトごとに別のファイルとしてコピーしている。

 以下の例では,ネットワーク接続した別のコンピュータへコピーしている。

コピー元のコンピュータ:
# dd if=/dev/hda | nc 192.168.1.204 5963

コピー先のコンピュータ:
# netcat -l -p 5963 > /mnt/zagadka/disk.img

 この例では,シングル・ユーザー・モードかつ RAMディスク上のLinuxで,コピー元のコンピュータを起動し,TCP/IPネットワーク経由でコピー先のコンピュータへデータを送信している。そして,複製先のコンピュータでは「/mnt/zagadka/disk.img」のファイルとして保存している。

 コピー先のIPアドレスは192.168.1.204であり,5963番のポートを使用している。データの送受信には「nc」と「netcat」を使用している。

証拠の保存だけでは不十分

 dd や Safeback を利用して,不正侵入の証拠を首尾よく保存できたとする。しかし,これだけでは不十分である。調査の材料として有効に活用するためには,分かりやすく文書化しておくことが不可欠である。

 例えば,文末のような“調査カルテ”を作成し,保存の過程や環境などを文書化する。これが改ざんされては元も子もないので,電子データではなく,紙などに出力しておくとよい。そして,作業にあたった人間の署名や捺印などを施しておく。

 また,証拠として保存したデータも,改ざんなどを検知できるように,MD5などでメッセージ・ダイジェストをとっておくことが不可欠だ。

 適切な調査を行うためには,証拠の保存は重要である。不正侵入などを疑いの余地なく証明するには,証拠となるデータを改ざんされないように管理する必要がある。適切な証拠と調査によって導き出された“結論”に対しては,異議を唱えることは難しいだろう。

調査カルテの例

a)複製採取に利用した方法
(1)
(3)
その他
b)上項で「その他の場合の具体的な方法」
c)複製に利用したコマンドがタイムスタンプ付きで作業履歴を出力する場合,その作業履歴
d)複製に利用したOS
シングルユーザモードのUNIX(名称,バージョン,パッチレベル)
マルチユーザモードのUNIX(名称,バージョン,パッチレベル)
PC-DOS (バージョン)
DR-DOS (バージョン)
MS-DOS (バージョン)
CUI モードの Windows 95/98/Me
その他( )
e)複製に利用したコマンド
dd
Safeback
xcopy
f)複製元から複製先への転送手順
複製元コンピュータに複製先媒体をマウント
ncおよびnetcat
シリアルポート経由接続
パラレルポート経由接続
g)調査者
例: 株式会社ラック不正アクセス対策事業本部 坂井順行 (印)
h)調査場所
例: 北海道札幌市○○区北○条西○丁目 △△ビル 502号室
i)調査対象OS・アーキテクチャ(複製元)
例: WindowsNT 3.51 SP5 日本語版 NTFS PentiumPro 200MHz
j)複製元ディスク
例: Western Digital Caviar 22100 WDAX22100-16H シリアル番号: 621014A-30A0802YLB1-7372
k)BIOS認識時のパラメータ(取り外し前)
C: xxxx
H: xxxx
S: xxxx
l)付記事項

坂井順行(SAKAI Yoriyuki)
株式会社ラック 不正アクセス対策事業本部
sakai@lac.co.jp


 IT Proセキュリティ・サイトが提供する「今週のSecurity Check [一般編]」は,その週に起きたUNIX関連およびセキュリティ全般のニュースや動向をまとめた週刊コラムです。セキュリティ・ベンダーである「株式会社ラック」のスタッフの方を執筆陣に迎え,専門家の立場から解説していただきます。