5分で学ぶAutopsy入門
500GBのハードディスクイメージファイル(.raw、.dd、.E01形式)を受け取り、ハッカーがいつ侵入したかを特定する必要があると想像してみてください。複雑なSleuth Kitのコマンドラインと格闘する代わりに、Autopsyはデータを視覚的に観察できるグラフィカルユーザーインターフェース(GUI)を提供します。これは、フォレンジック専門家がツールセットに備えておくべき標準的なオープンソースツールです。
Linux(UbuntuまたはKali)でのインストールには、AutopsyがJavaベースで動作し、特定のシステムライブラリを必要とするため、細心の注意が必要です。以下は、分析環境を迅速にセットアップする方法です。
# システムの依存関係をインストール
sudo apt update
sudo apt install -y testdisk afflib-tools libewf-dev sleuthkit openjdk-8-jdk
# 公式GitHubからAutopsyをダウンロードして解凍
# その後、環境設定スクリプトを実行
./unix_setup.sh
# プログラムを起動
./bin/autopsy
インターフェースが起動したら、New Caseを選択し、イメージファイルへのパスを指定します。ただし、確かな証拠を見つけるには、ただクリックするだけでなく、専門的なプロセスに従う必要があります。
実戦的なデジタルフォレンジックの手順
デジタルフォレンジックにおいて、データの完全性(Integrity)は極めて重要です。決してオリジナルのハードディスク上で操作を行わないでください。 すべての分析は、法的な有効性を確保するために、コピー(イメージ)に対して行う必要があります。
ステップ1:ケースの作成とデータの読み込み
証拠の混同を避けるため、調査プロジェクトごとに個別のCaseを作成する必要があります。Data Sourceを追加する際は、Disk Image or VM Fileを選択します。
実務上のヒント:イメージファイルが100GBを超える場合は、読み取り速度が少なくとも500MB/s以上のSSDに保存してください。従来のHDDで数百万セクタをスキャンすると、初期結果が出るまで丸一日待つことになります。
ステップ2:Ingest Modulesの設定 – 分析プロセスの核心
Ingest Modulesは、生データから情報を自動的に抽出するスキャンエンジンです。すべてのモジュールを選択してリソースを浪費するのではなく、重要なモジュールに焦点を当てるべきです。
- Recent Activity: Chromeの履歴、最近開いたファイルのリスト(MRU)、接続されたUSBデバイスの履歴を抽出します。
- File Type Identification: シグネチャによってファイルを識別します。悪意のあるシェルスクリプトが「.txt」に偽装されていても、確実に見つけ出します。
- Keyword Search: 「eval」、「base64_decode」、内部IPアドレスなどの機密性の高いキーワードを素早く検索します。
- Extension Mismatch Detector: 意図的に拡張子が変更されたファイルを検出します。
ステップ3:分析と追跡(Analysis)
モジュールの実行が完了すると、データは左側のカラムに分類されます。闇雲に調べるのではなく、Views -> File Types -> Executableに注目して、不審な実行ファイル(.exe, .sh, .py)を探しましょう。
Timeline機能はこのステップで最も強力な武器です。すべての動作を時系列で整理します。例えば、午前2時15分に2GBの圧縮ファイルが作成され、その直後に異常なネットワーク接続があった場合、それはデータ流出(Data Exfiltration)の典型的な兆候です。
高度なテクニック:Hash SetsとKeyword List
大量のデータを処理する場合、手動でのフィルタリングは不可能です。ここでHash Setsの出番です。
NSRL(National Software Reference Library)のハッシュセットを使用して、何千もの「クリーンな」システムファイルを除外することで、不審なファイルだけに集中できます。逆に、Cobalt StrikeやRedLine Stealerなどのマルウェアのハッシュリストがあれば、Autopsyは被害端末内でそれらを検出した瞬間に赤色の警告を表示します。
アカウント情報やメールアドレスを探すには、正規表現(Regex)を使用します。例えば、以下の文字列はログファイルやキャッシュ内に存在するすべてのメールアドレスを抽出するのに役立ちます。
[A-z0-9._%+-]+@[A-z0-9.-]+\.[A-z]{2,6}
調査中の分析端末のセキュリティも重要です。ケース管理用やストレージサーバー用のパスワードが必要な場合は、toolcraft.app/ja/tools/security/password-generator を利用できます。このツールはブラウザ上で強力なパスワードを生成するため、機密性の高いプロジェクトでも安全です。
LinuxでAutopsyを使用する際の「鉄則」と経験則
多くのインシデント対応プロジェクトを経て、パフォーマンスを最適化するための4つの重要な注意点をまとめました。
- JavaのRAM最適化: Autopsyは非常にリソースを消費します。32GBのRAMを搭載している場合は、
autopsy.confファイルの-J-Xmx16gパラメータを調整して、少なくとも16GBをアプリケーションに割り当ててください。 - E01形式を優先: .rawファイルは作成が簡単ですが、圧縮機能やエラーチェック機能がありません。.E01(EnCase)形式はハッシュ値が組み込まれており、調査プロセス全体を通じて証拠が改ざんされていないことを保証します。
- Orphan Filesを詳しく調べる:
$OrphanFilesフォルダには、メタデータが破損したデータの断片が含まれています。ここは、ハッカーが完全に削除したつもりでいる悪意のあるコードが隠されていることが多い場所です。 - タイムゾーンの同期: 常に調査対象の端末と同じタイムゾーンを設定してください。1時間ずれるだけで、Timeline上の調査シナリオ全体が意味をなさなくなります。
Autopsyはプロの調査員だけのものではありません。システム管理者やDevOpsエンジニアであっても、サーバーがハッキングされた際や、誤ったrm -rfコマンドの後に重要なデータを復旧する必要がある際に、このスキルは状況を打開する助けになります。
結び:デジタルフォレンジックは、パズルのピースを繋ぎ合わせる芸術です。焦って結論を出さず、TimelineとKeywordを活用して、断片的なデータポイントを正確な全体像へと繋ぎ合わせてください。
