
SwiftベースのmacOSインシデント対応フレームワーク。ファイルシステムのタイムスタンプ、ブラウザデータ、統合ログ、永続化メカニズム、プロセスツリーなどのホストアーティファクトを収集・分析し、組み込みの分析機能とタイムライン生成機能を備えています。

Aftermathは、Swiftベースのオープンソースインシデントレスポンスフレームワークです。
Aftermathは、防御側が侵害されたホストからデータを収集し、その後分析するために活用できます。AftermathはMDMから展開するのが理想的ですが、感染したユーザーのコマンドラインから独立して実行することも可能です。
Aftermathは最初に一連のモジュールを実行して収集を行います。出力は、-o または --output オプションで指定した場所に書き込まれるか、デフォルトでは /tmp ディレクトリに書き込まれます。
収集が完了すると、最終的なzip/アーカイブファイルをエンドユーザーのディスクから取得できます。このファイルは、--analyze 引数をアーカイブファイルに指定して分析できます。分析結果は /tmp ディレクトリに書き込まれます。管理者はその分析ディレクトリを解凍して、ローカルに収集されたデータベースのパース済みビュー、ファイルの作成日・最終アクセス日・最終変更日(利用可能な場合)のタイムライン、およびファイルメタデータ、データベース変更、ブラウザ情報を含むストーリーラインを確認し、感染経路を追跡することができます。
Aftermathをローカルでビルドするには、リポジトリからクローンします
git clone https://github.com/jamf/aftermath.git
Aftermathディレクトリに cd します
cd <Aftermathディレクトリへのパス>
Xcodeを使ってビルドします
xcodebuild -scheme "aftermath"
Releaseフォルダに cd します
cd build/Release
aftermathを実行します
sudo ./aftermath
Aftermathを実行するには、root権限と*フルディスクアクセス(FDA)*が必要です。FDAは、実行中のターミナルアプリケーションに付与できます。
Aftermathのデフォルトの使用法は次の通りです
sudo ./aftermath
特定のオプションを指定する場合
sudo ./aftermath [option1] [option2]
例
sudo ./aftermath -o /Users/user/Desktop --deep
sudo ./aftermath --analyze <収集zipへのパス>
ユーザーは --logs または -l 引数を使用して、統一口グ述語が記述されたテキストファイルをAftermathに渡すことができます。Aftermathに渡すファイルはテキストファイルである必要があり、各述語は改行で区切られている必要があります。さらに、各行は辞書オブジェクトになります。辞書のキーは、ユーザーがこの述語を呼びたい任意の名前になります。例えば、すべてのログインイベントを表示したい場合、述語を作成して login_events というタイトルを付けます。
login_events: processImagePath contains "loginwindow" and eventMessage contains "com.apple.sessionDidLogin
tcc: process == "tccd"
eslogger と tcpdump は追加のスレッドで実行され、可能な限り多くのデータを収集することを目的としているため、aftermathが終了すると同時に終了します。そのため、esloggerのJSONファイルまたはtcpdumpで生成されたpcapファイルの最終行が切り詰められる可能性があります。
リリース ページで Aftermath.pkg を入手できます。このpkgは署名され、公証されています。aftermathバイナリを /usr/local/bin/ にインストールします。これがMDM経由で展開する理想的な方法です。bin にインストールされるため、aftermathを次のように実行できます。
sudo aftermath [option1] [option2]
aftermathバイナリをアンインストールするには、リリース から AftermathUninstaller.pkg を実行します。これによりバイナリがアンインストールされ、aftermath --cleanup も実行されてaftermathディレクトリが削除されます。--output コマンドを使用して他の場所にaftermathディレクトリが存在する場合は、それらのディレクトリを削除するのはユーザー/管理者の責任です。
--analyze -> analyze the results of the Aftermath results
usage: --analyze <path_to_aftermath_collection_file>
--collect-dirs -> specify locations of (space-separated) directories to dump those raw files
usage: --collect-dirs <path_to_dir> <path_to_another_dir>
--deep or -d -> perform a deep scan of the file system for modified and accessed timestamped metadata
WARNING: This will be a time-intensive, memory-consuming scan.
--disable -> disable a set of aftermath features that may collect personal user data
Available features to disable: browsers -> collecting browser information | browser-killswitch -> force-closes browers | -> databases -> tcc & lsquarantine databases | filesystem -> walking the filesystem for timestamps | proc-info -> collecting process information via TrueTree and eslogger | slack -> slack data | ul -> unified logging modules | all -> all aforementioned options
usage: --disable browsers browser-killswitch databases filesystem proc-info slack
--disable all
--es-logs -> specify which Endpoint Security events (space-separated) to collect (defaults are: create exec mmap). To disable, see --disable es-logs
usage: --es-logs setuid unmount write
--logs -> specify an external text file with unified log predicates (as dictionary objects) to parse
usage: --logs /Users/<USER>/Desktop/myPredicates.txt
-o or --output -> specify an output location for Aftermath collection results (defaults to /tmp)
usage: -o Users/user/Desktop
--pretty -> colorize Terminal output
--cleanup -> remove Aftermath folders from default locations ("/tmp", "/var/folders/zz/)
このプロジェクトは、Jaron Bradleyによって作成およびライセンスされているオープンソースのTrueTreeプロジェクトを活用しています。