Linuxデジタルフォレンジック:AutopsyとTSKによる証拠の復元

Security tutorial - IT technology blog
Security tutorial - IT technology blog

月曜朝の危機:侵害後に消失したファイル

月曜日の午前8時、クリティカルな本番サーバーのCPU使用率が98%に達しています。調査のためにログインしますが、手がかりは途絶えています。ログは消去され、午前3時にEDRがフラグを立てた不審なスクリプトも姿を消しています。攻撃者は周到でした。証拠に対して rm -rf を実行し、足跡を消すためにシェル履歴を削除したのです。

標準的なシステムツールでは、これらのファイルはもう存在しないと表示されます。しかし、デジタルフォレンジックにおいて「削除」が「消去」を意味することは稀です。EXT4ファイルシステムからファイルが削除される際、Linuxカーネルは単にiノード(inode)のリンクを解除し、それらのデータブロックを将来の使用のために「空き」としてマークするだけです。実際のビットデータは、新しいプロセスによって上書きされるまで、通常はプラッタやフラッシュセル上に手つかずのまま残っています。

侵入者を捕らえるには、OS経由でファイルシステムを見るのをやめ、生のディスク(raw disk)を直接見る必要があります。このガイドでは、The Sleuth Kit (TSK) と Autopsy のグラフィカルインターフェースを使用して、タイムラインを再構築し、虚空から「ゴースト」データを引き戻す方法を探ります。

罠:稼働中のシステムを調査すべきではない理由

侵害されたマシン上で lsfindgrep といったコマンドを使用するのは、根本的な間違いです。攻撃者がファイルのリンクを解除している場合、カーネルのAPIはこれらのツールに結果を報告しません。さらに悪いことに、高度なルートキットはシステムコールをフックし、目の前にある悪意のあるプロセスを pstop から隠蔽することさえ可能です。

侵害されたシステムがオンラインであり続ける一秒一秒が、証拠を失うリスクとなります。バックグラウンドプロセス、ログのローテーション、さらにはあなた自身の調査コマンドさえも、ディスクに新しいデータを書き込みます。このアクティビティによって、削除された攻撃者のスクリプトが永久に上書きされてしまう可能性があります。効果的なフォレンジックには「デッド(オフライン)」分析が必要です。つまり、プラグを抜き、ドライブのイメージを作成し、クリーンなワークステーション上でビット単位のコピーに対して作業を行うのです。

ツールの選択:TSK vs. Autopsy

フォレンジック調査官は通常、3つのレベルの分析深度を使い分けます。

  • 手動バイナリ(Hex)分析: hexedit を使用して生のバイト値を解析します。これは非常に骨の折れる作業であり、破損したファイルヘッダーを手動で再構築する必要がある場合などのために予約されています。
  • The Sleuth Kit (TSK): CLIツールの強力なコレクション。fls はファイルエントリをリストし、icat はiノードによってデータを抽出します。高速で、自動化スクリプトに最適です。
  • Autopsy: TSKのGUIラッパー。インデックス作成、キーワード検索、視覚的なタイムライン構築といった重い処理を担当します。

ほとんどのシナリオにおいて、最も効率的なワークフローは、広範な発見フェーズに Autopsy を使用し、外科的で詳細なファイル復元に TSK を使用することです。

実践的な調査ステップ

1. フォレンジックイメージの作成

オリジナルのハードウェア上で分析を行ってはいけません。ビット単位のクローンが必要です。標準的な500GBのSATAドライブの場合、プログレスバーとハッシュ統合機能がある dc3dd を推奨します。対象のディスクが /dev/sdb にある場合は、次を実行します。

# ハッシュ生成機能を備えたrawイメージの作成
sudo dc3dd if=/dev/sdb of=evidence_disk.img hash=sha256 log=image_log.txt

SHA-256ハッシュがソースと一致することを確認してください。後でハッシュが変わってしまうと、証拠が汚染されたとみなされ、正式な監査や法的手続きで認められなくなります。

2. 環境の準備

可能であれば、ネットワークから隔離された(エアギャップ)専用のマシンでデータを分析してください。調査を開始する前に、暗号化コンテナ用に一意でエントロピーの高いパスワードを生成します。私は toolcraft.app/ja/tools/security/password-generator のツールを使用しています。これはブラウザ内でローカルに動作するため、セットアップ段階で機密性の高い資格情報がネットワークに触れることがありません。

分析用ステーションに必要なツールキットをインストールします。

sudo apt update && sudo apt install sleuthkit autopsy -y

3. TSKによる迅速な復元

本格的な Autopsy のケースに飛び込む前に、手早く成果を得たい場合があります。まず、mmls を使用してパーティションのオフセットを確認します。これにより、Linuxパーティションがどこから始まっているかが正確にわかります。

# 開始セクター(例:2048)を確認
mmls evidence_disk.img

# そのパーティション上の削除済みファイルを再帰的にリスト表示
fls -o 2048 -r -d evidence_disk.img

アスタリスク(*)が付いたエントリを探してください。iノード 45678 に不審なファイルを見つけた場合は、すぐに抽出して分析します。

icat -o 2048 evidence_disk.img 45678 > recovered_malware.bin

4. Autopsyによる詳細分析

ターミナルで autopsy と入力してインターフェースを起動します。表示されたURL(デフォルトは localhost:9999)をブラウザで開きます。新しいケースを作成し、evidence_disk.img をインポートします。

本当の威力はインジェストモジュール(Ingest Modules)にあります。「File Type Identification」と「Extension Mismatch Detector」を有効にしましょう。これらは、実行スクリプトを .jpg.txt にリネームして隠そうとする攻撃者を見つけ出します。ウェブサーバーの侵害調査では、未割り当て領域に隠された特定のIPアドレスやPHPシェルを見つけるために「Keyword Search」モジュールが不可欠です。

5. タイムラインの再構築

タイムラインビュー(Timeline View)は最も強力な武器です。すべてのファイルの作成、アクセス、修正(MAC)時刻を一つのグラフに集約します。攻撃者はしばしば「ノイズ・シグネチャ」を残します。たとえば、10秒の間に /etc//var/www/ で30〜40個のファイルが変更されている箇所などです。この瞬間を特定することで、彼らがどのようにシステムに侵入し、どのバックドアを仕掛けたのかを正確に特定できます。

フォレンジックの黄金律

調査の成功は、高度なツールよりも規律にかかっています。以下の3つのルールに従ってください。

  • ライトブロッカー(書き込み防止装置)を使用する: 物理ドライブを接続する必要がある場合は、1ビットたりとも変更されないよう、ハードウェア・ライトブロッカーを使用してください。
  • 証拠保全の連鎖(Chain of Custody)を維持する: 実行したすべてのコマンドを記録してください。ファイルを見つけた場合は、それをどのように見つけたか、元のiノードは何かを正確に文書化します。
  • 結果を検証する: Autopsy がファイルを悪意のあるものとしてフラグを立てた場合、TSK で生のバイナリを再確認し、誤検知ではないことを確認してください。

稼働中の分析からディスクレベルのフォレンジックに移行することで、推測を排除し、証拠に基づいた証明が可能になります。あなたはもはや単に混乱を片付けるシステム管理者ではありません。真実を明らかにするセキュリティのプロフェッショナルなのです。

Share: