サイト内の現在位置

Unix系のファストフォレンジックツール「UAC」

NECセキュリティブログ

2025年10月24日

本記事ではインシデントレスポンス(IR)における初動対応、特にファストフォレンジックを支援するツール、Unix-like Artifacts Collector(以下「UAC」と称する)new window[1]についてご紹介します。

目次

UACとは

UACとは、インシデントレスポンス(IR)およびファストフォレンジックで必要な証拠となるデータを収集するツールです。軽量なシェルスクリプトで動作し、Unix系のアーティファクトの収集を自動で行います。

主要な特徴

UACは、IRでの迅速なデータ収集を可能にするための以下4つの特徴があります。

表1:UACの主要な特徴
特徴 詳細
クロスプラットフォーム対応 Linux、macOS、ESXi、AIX、FreeBSD、NetBSD、OpenBSD、NetScaler、SolarisといったUnix系のOSで動作
ソフトウェアのインストール不要 外部ライブラリへの依存性がなく、ターゲットシステムへのソフトウェア等のインストールも不要
揮発性の原則の遵守 揮発性の原則に従い、実行中のプロセス、メモリなど、揮発性の高いデータから優先的に収集
高いカスタマイズ性 収集するデータの種類や方法はYAMLファイルで定義されており、カスタマイズ可能

プロファイル(モード)の選択

UACでは、調査のフェーズや目的に応じて収集するデータの範囲を選択できるよう、以下4つのプロファイル(モード)が用意されています。

表2:UACのプロファイル一覧
プロファイル 目的/特徴
full
  • 詳細な調査を目的とし、収集可能なすべてのアーティファクトを収集
  • 最も時間がかかり、ファイズサイズも大きくなる
ir_triage ファストフォレンジックを目的とし、揮発性の高いものと特に調査に必要なアーティファクトに絞って収集
offline オフライン環境(マウントされたディスクイメージなど)でアーティファクトを収集
offline_ir_triage offlineの中でも特に調査に必要なアーティファクトに絞って収集

UACの実行とファストフォレンジック調査

それではUACを動かしてみます。なお、UACを実行する際は証拠の完全性を確保するために、USBなど外部メディアから実行し、ターゲットシステム内のファイルを上書きしないようにすることを推奨します。

UACの実行手順

UACのインストールは至って簡単で、Gitリポジトリからクローンするだけで必要な準備が完了します。

# Gitリポジトリからクローン
git clone https://github.com/tclahr/uac.git

# 使用するプロファイルと結果の出力先を設定してUACを実行
sudo ./uac -p <使用するプロファイル> <結果を出力するパス>

図1:UbuntuでのUACの実行画面

実行完了すると、結果がtar.gzに圧縮された形で出力されます。出力ファイルを解凍するとアーティファクトのカテゴリごとに分類されたフォルダを確認することできます。

図2:UACの出力結果(tar.gz)を解凍後のフォルダ構成

それぞれのフォルダの中にはアーティファクトが格納されており、これらの情報を用いて調査を進めていくことが可能です。

図3:UACの出力結果(live_response/system)

なお、UACはOSやその環境に存在するツール/コマンドごとにアーティファクトの数が変化します。また、ESXiやmacOSなどOS独自のコマンドにも対応しています。

図4:live_response/vmsフォルダ(ESXiで使用可能なesxcliコマンドの出力結果)
図5:network/plutil_-p_library-preferences-systemconfiguration-preferences.plist.txt(macOSで使用可能なplutilコマンドの出力結果)

収集可能なアーティファクト

解凍後のフォルダ構成とアーティファクトの種類は以下になります。

表3:UACで収集可能なアーティファクト一覧
フォルダ名 アーティファクトの種類
live_response コンテナ、ハードウェア、ネットワーク、パッケージ、プロセス、ストレージ、システム、vmsに関する揮発性データ
system 異常な権限・ファイル属性を持つファイル、書き込み可能なファイル、隠しファイル等
[root] ログ等の重要なファイルやディレクトリをそのままコピーしたもの
bodyfile ファイルシステムのメタデータ
hash_executables 実行可能ファイルのハッシュ値(MD5/SHA256)
packages インストール済みパッケージに関する情報
  • パッケージがインストールされていない場合は作成されない
memory_dump コアダンプファイルや、メモリダンプツールの実行結果
  • ツールやコアダンプファイルがない場合は作成されない
chkrootkit ルートキット検出ツール「chkrootkit」の実行結果
  • ツールがない場合は作成されない
osquery 「osquery」の実行結果(ユーザ活動、永続化、ネットワークの揮発性データなどを収集)
  • ツールがない場合は作成されない

収集可能なアーティファクトのうち、標準的な環境であれば必ず作成される5つのフォルダの内容について、抜粋して紹介します。

live_response/system
主に調査で使用する標準コマンドの実行結果がテキストファイルで出力されます。
例として、live_response/system配下にあるsystemctl_list_unit-files.txtというファイルを見てみると、systemctl list-unitsコマンドの出力結果がそのまま出力されていることが確認できます。

図6:live_response/system/systemctl_list_unit-files.txtの中身

[root]
調査にあたり重要なファイルおよびディレクトリの構造がそのままコピーされており、ログファイルやシステムの設定ファイル等はここから確認することが可能です。

図7:[root]ディレクトリの中身
図8:[root]/var/logディレクトリの中身

bodyfile
bodyfileフォルダにはbodyfile.txtというstatコマンドの実行結果が格納されます。このbodyfile.txtには/proc、/procfsフォルダを除いたすべてのファイルのメタデータが出力されます。

図9:bodyfile/bodyfile.txtの中身

あとはパース処理を行い、ツールを用いて可視化することで調査を進めることができます。今回は例としてPlasonew window[2]でパース処理を行い、Kibananew window[3]でログの確認を行いました。

図10:bodyfile.txtを投入後のKibanaの画面

hash_executables
hash_executablesフォルダには、/proc、/procfsを除き、実行権限が付与されているすべてのファイルのSHA1とMD5のハッシュ値が出力されます。

図11:hash_executables/hash_executables.md5の中身

あとは上記のファイルからハッシュ値を切り出し、VirusTotalnew window[4]などのマルウェアDBと照合することで、システム内に存在する既知のマルウェアや攻撃ツールを特定することが可能です。今回は例としてVirusTotalのAPIを使用して、ハッシュ値をVirusTotalで検索するスクリプトを作成し、検索したハッシュ値を持つファイルが悪性判定されるかを確認しました(なお、VirusTotalは無償版だと1日上限500回、1分で4回のAPI制限があることに注意が必要です)。

図12:ハッシュ値検索ツールの実行結果

まとめ

今回はUnix系のファストフォレンジックツールとしてUACを紹介しました。本ツールはUnix系の環境でファストフォレンジックに必要なアーティファクトを自動で収集することが可能です。異なるOSが混在する複雑な環境においても、均一かつ迅速な証拠収集を可能にし、IR時のツールとして有用であると考えています。

参考文献

執筆者プロフィール

Ao森(あおもり)※ハンドルネーム
担当領域:リスクハンティング
専門分野:インシデントレスポンス、フォレンジック

脆弱性診断やマルウェア解析業務を経て、現在はインシデント対応業務に従事。

執筆者の他の記事を読む

アクセスランキング