本記事ではインシデントレスポンス(IR)における初動対応、特にファストフォレンジックを支援するツール、Unix-like Artifacts Collector(以下「UAC」と称する)[1]についてご紹介します。
UACとは
UACとは、インシデントレスポンス(IR)およびファストフォレンジックで必要な証拠となるデータを収集するツールです。軽量なシェルスクリプトで動作し、Unix系のアーティファクトの収集を自動で行います。
主要な特徴
UACは、IRでの迅速なデータ収集を可能にするための以下4つの特徴があります。
表1:UACの主要な特徴
プロファイル(モード)の選択
UACでは、調査のフェーズや目的に応じて収集するデータの範囲を選択できるよう、以下4つのプロファイル(モード)が用意されています。
表2:UACのプロファイル一覧
- 詳細な調査を目的とし、収集可能なすべてのアーティファクトを収集
- 最も時間がかかり、ファイズサイズも大きくなる
UACの実行とファストフォレンジック調査
それではUACを動かしてみます。なお、UACを実行する際は証拠の完全性を確保するために、USBなど外部メディアから実行し、ターゲットシステム内のファイルを上書きしないようにすることを推奨します。
UACの実行手順
UACのインストールは至って簡単で、Gitリポジトリからクローンするだけで必要な準備が完了します。
# Gitリポジトリからクローン
git clone https://github.com/tclahr/uac.git
# 使用するプロファイルと結果の出力先を設定してUACを実行
sudo ./uac -p <使用するプロファイル> <結果を出力するパス>
実行完了すると、結果がtar.gzに圧縮された形で出力されます。出力ファイルを解凍するとアーティファクトのカテゴリごとに分類されたフォルダを確認することできます。
それぞれのフォルダの中にはアーティファクトが格納されており、これらの情報を用いて調査を進めていくことが可能です。
なお、UACはOSやその環境に存在するツール/コマンドごとにアーティファクトの数が変化します。また、ESXiやmacOSなどOS独自のコマンドにも対応しています。
収集可能なアーティファクト
解凍後のフォルダ構成とアーティファクトの種類は以下になります。
表3:UACで収集可能なアーティファクト一覧
インストール済みパッケージに関する情報
※ パッケージがインストールされていない場合は作成されない
コアダンプファイルや、メモリダンプツールの実行結果
※ ツールやコアダンプファイルがない場合は作成されない
ルートキット検出ツール「chkrootkit」の実行結果
※ ツールがない場合は作成されない
「osquery」の実行結果(ユーザ活動、永続化、ネットワークの揮発性データなどを収集)
※ ツールがない場合は作成されない
収集可能なアーティファクトのうち、標準的な環境であれば必ず作成される5つのフォルダの内容について、抜粋して紹介します。
live_response/system
主に調査で使用する標準コマンドの実行結果がテキストファイルで出力されます。
例として、live_response/system配下にあるsystemctl_list_unit-files.txtというファイルを見てみると、systemctl list-unitsコマンドの出力結果がそのまま出力されていることが確認できます。
[root]
調査にあたり重要なファイルおよびディレクトリの構造がそのままコピーされており、ログファイルやシステムの設定ファイル等はここから確認することが可能です。
bodyfile
bodyfileフォルダにはbodyfile.txtというstatコマンドの実行結果が格納されます。このbodyfile.txtには/proc、/procfsフォルダを除いたすべてのファイルのメタデータが出力されます。
あとはパース処理を行い、ツールを用いて可視化することで調査を進めることができます。今回は例としてPlaso[2]でパース処理を行い、Kibana[3]でログの確認を行いました。
hash_executables
hash_executablesフォルダには、/proc、/procfsを除き、実行権限が付与されているすべてのファイルのSHA1とMD5のハッシュ値が出力されます。
あとは上記のファイルからハッシュ値を切り出し、VirusTotal[4]などのマルウェアDBと照合することで、システム内に存在する既知のマルウェアや攻撃ツールを特定することが可能です。今回は例としてVirusTotalのAPIを使用して、ハッシュ値をVirusTotalで検索するスクリプトを作成し、検索したハッシュ値を持つファイルが悪性判定されるかを確認しました(なお、VirusTotalは無償版だと1日上限500回、1分で4回のAPI制限があることに注意が必要です)。
まとめ
今回はUnix系のファストフォレンジックツールとしてUACを紹介しました。本ツールはUnix系の環境でファストフォレンジックに必要なアーティファクトを自動で収集することが可能です。異なるOSが混在する複雑な環境においても、均一かつ迅速な証拠収集を可能にし、IR時のツールとして有用であると考えています。
参考文献
[1] GitHub - tclahr/uac
https://github.com/tclahr/uac
[2] Parsing UAC output - UAC Documentation
https://tclahr.github.io/uac-docs/parsing_uac_output/
[3] Kibana: — データを探索、可視化、分析 | Elastic
https://www.elastic.co/jp/kibana
[4] VirusTotal
https://www.virustotal.com/gui/
執筆者プロフィール
Ao森(あおもり)※ハンドルネーム
担当領域:リスクハンティング
専門分野:インシデントレスポンス、フォレンジック
脆弱性診断やマルウェア解析業務を経て、現在はインシデント対応業務に従事。