OS X Auditor

OS X Auditorは、無料のMac OS Xコンピュータフォレンジックツールです。
OS X Auditorは、実行中のシステムまたは分析したいシステムのコピー上で以下のアーティファクトを解析し、ハッシュ化します:
- カーネル拡張機能
- システムエージェントとデーモン
- サードパーティのエージェントとデーモン
- 旧式および非推奨のシステム・サードパーティのスタートアップ項目
- ユーザーのエージェント
- ユーザーのダウンロードファイル
- インストール済みアプリケーション
抽出する内容:
- ユーザーの隔離ファイル
- ユーザーのSafari履歴、ダウンロード、トップサイト、LastSession、HTML5データベース、ローカルストア
- ユーザーのFirefoxクッキー、ダウンロード、フォーム履歴、権限、プレース、サインオン
- ユーザーのChrome履歴とアーカイブ履歴、クッキー、ログインデータ、トップサイト、ウェブデータ、HTML5データベース、ローカルストレージ
- ユーザーのソーシャルアカウントとメールアカウント
- 監査対象システムが接続していたWiFiアクセスポイント(位置情報を特定しようと試みる)
.plistファイル自体の中で不審なキーワードも検索します。
以下のサービスで各ファイルの評判を確認できます:
- Team CymruのMHR
- VirusTotal
- 自身のローカルデータベース
以下のディレクトリからすべてのログをzipファイルに集約できます:
- /var/log (-> /private/var/log)
- /Library/logs
- ユーザーの~/Library/logs
最後に、結果は以下のように出力できます:
- シンプルなテキストログファイルとして出力(cat、パイプ、grepで処理可能…または単にgrep)
- HTMLログファイルとして出力
- Syslogサーバーに送信
著者
Jean-Philippe Teissier - @Jipe_ 他
開発状況
OS X Auditorはメンテナンス終了です - 使用すべきではありません
サポート
OS X Auditorは週末プロジェクトとして始まり、現在はメンテナンスされていません。Yelpの素晴らしいメンバーによってフォークされ、osxcollectorが作成されました。
osxcollector (https://github.com/Yelp/osxcollector) を使用することをお勧めします。
インストール方法
GitHubからすべてのファイルをコピーするだけです。
依存関係
MacでOS X Auditorを実行する場合、pyobjcを通じてOS X Foundationを利用した完全なplist解析サポートが得られます:
pyobjcをインストールできない場合、またはMac OS X以外のOSでOS X Auditorを実行する予定の場合、plist解析に問題が発生する可能性があります:
pip install biplist
pip install plist
これらの依存関係は、Pythonで動作するネイティブのplistモジュールが利用可能になった時点で削除される予定です。
実行方法
- OS X Auditorはpython >= 2.7.2 (2.7.9はOK) で正常に動作します。異なるバージョンのpythonではまだ動作しません(plistの悪夢のため)
- OS X Auditorは最新のOS Xバージョンで動作するようにメンテナンスされています。古いOS Xバージョンでも可能な限り動作します。
- 実行中のシステムで使用する場合は、root(またはsudo経由)で実行する必要があります。そうしないと、一部のシステムファイルや他のユーザーのファイルにアクセスできません。
- 環境変数からAPIキーを使用する場合(下記参照)、ユーザーの環境変数を使用するには
sudo -Eを使用する必要があります。
osxauditor.py -hと入力して利用可能なすべてのオプションを表示し、選択したオプションで実行してください。
例:[sudo -E] python osxauditor.py -a -m -l localhashes.db -H log.html
環境変数の設定
VirusTotal API:
export VT_API_KEY=aaaabbbbccccddddeeee
変更履歴
0.4.3
0.4.2
0.4.1
- 変更: LaunchAgentPlist内の汎用バックドアを検索
0.4
- 新機能: イベント(起動/シャットダウン、休止状態の入出力、sudoコマンド、USBデバイス、ttysの開閉)をシステムログから抽出し、(まだ読み取り不可の)タイムラインを作成 (-e/eventlogs)
- 新機能: ユーザーのLoginItemsを抽出
- 新機能: ユーザーのRecentItemsを抽出
- 新機能: SafariアーティファクトからLastSessionを抽出
- 新機能: システムグループとユーザーの詳細を抽出
- 修正: 誤ったos.path.join()呼び出し
- 修正: 再帰的なParsePackagesDir()のバグ
0.3.1
- 新機能: 監査対象システムのシステム名、バージョン、ビルド番号を提供
- 新機能: インストール済みアプリケーションの分析機能 (-i/--installedapps)
- 新機能: Google Chromeアーティファクトからアーカイブ履歴を抽出
- 新機能: 人間が読みやすいHTMLログレポート :)
- 修正: HTMLLog()とSYSLOGLog()が例外を処理するようになりました
- 修正: ParsePackagesDir()が再帰的になり、アプリまたはカーネル拡張機能のみを解析するようになりました。DEBUG出力も追加
- 修正: 大幅なUTF-8/UNICODE改善
- 修正: ParsePackagesDir()で.DS_Storeおよび.localizedファイルを無視するようになりました
0.3
- 新機能: -b/--browsersオプションでGoogle Chromeアーティファクト(履歴とアーカイブ履歴、クッキー、ログインデータ、トップサイト、ウェブデータ、HTML5データベース、ローカルストレージ)を解析可能
- 新機能: Airport環境設定から監査対象システムが接続していたWi-Fi APを抽出し、Geomenaを使用して位置情報を特定しようと試みます (-A/--airportprefs)。位置情報を有効にするには -g/--wifiapgeolocate を使用するか(またはコード内でGEOLOCATE_WIFI_APをTrueに設定)、行う必要があります。
- 新機能: ユーザーのソーシャルアカウントとメールアカウントを抽出 (-U/--usersaccounts)
- 修正: 特にライブシステムの監査中にロックされたSQLiteデータベースを処理可能に
- 修正: ハッシュの重複を削除
- 修正: HTML出力でのmd5識別を改善
- 変更: セクション(スタートアップ項目、パッケージディレクトリ、DBテーブルなど)が空の場合に表示して出力を明確化
- 変更: ダウンロードアーティファクト (-d/--downloads) に旧版・新版のMail.appデフォルトダウンロードディレクトリを含める
0.2.1
- 変更/修正: 非常に大きなファイルをハッシュ化するBigFileMd5()関数を実装し、MemoryError例外を回避しメモリ使用量を削減
- 修正: ParseQuarantines()内のLSQuarantineEventからのUTF-8エントリ
0.2
- 新機能: 結果をリモートsyslogdサーバーに送信 (-S)
- 新機能: 監査対象システムで見つかったすべてのログファイルのzipボールを作成 (-z)
- 変更: スタートアップアーティファクトの分析に旧式および非推奨のStartupItemsを含める
- 変更: スタートアップアーティファクトの分析にScriptingAdditionsを含める
- 変更: 隔離アーティファクトの分析にMac OS X 10.6以前の旧QuarantineEventsを含める
- 変更: Python ⟷ Objective-Cブリッジ (PyObjC) とOS X Foundationを使用したplist処理の大幅な改善
- 変更: オプションパラメータの一部変更 (-t, -l)
- 変更: ライセンスをCCからGPLに変更
- 変更: 出力ログ内のデバッグレベルがより一貫性を持つようになりました
- 変更: Bootstrap CSSの小さな変更
- 変更: VirusTotal検索をバルクモードで行うようになりました
- 修正: ProgramとProgramArgumentsキーの両方を含むplistファイルでのParseLaunchAgents()のバグ
0.1
設計と機能

アーティファクト
ユーザー
-
Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2
-
Library/Preferences/com.apple.LaunchServices.QuarantineEvents
-
Library/Preferences/com.apple.loginitems.plist
-
Library/Mail Downloads/
-
Library/Containers/com.apple.mail/Data/Library/Mail Downloads
-
Library/Accounts/Accounts3.sqlite
-
Library/Containers/com.apple.mail/Data/Library/Mail/V2/MailData/Accounts.plist
-
Library/Preferences/com.apple.recentitems.plist
-
Firefox
- Library/Application Support/Firefox/Profiles/
- cookies.sqlite
- downloads.sqlite
- formhistory.sqlite
- places.sqlite
- signons.sqlite
- permissions.sqlite
- addons.sqlite
- extensions.sqlite
- content-prefs.sqlite
- healthreport.sqlite
- webappsstore.sqlite
- Library/Safari/
- Downloads.plist
- History.plist
- TopSites.plist
- LastSession.plist
- Databases
- LocalStorage
- Library/Application Support/Google/Chrome/Default/
- History
- Archived History
- Cookies
- Login Data
- Top Sites
- Web Data
- databases
- Local Storage
システム
- /System/Library/LaunchAgents/
- /System/Library/LaunchDaemons/
- /System/Library/ScriptingAdditions/
- /System/Library/StartupItems/Library/ScriptingAdditions/
- /System/Library/Extensions/
- /System/Library/CoreServices/SystemVersion.plist
- /Library/LaunchAgents/
- /Library/LaunchDaemons/
- /Library/StartupItems/
- /Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist
- /Library/logs
- /var/log
- /etc/localtime
- StartupParameters.plist
- /private/var/db/dslocal/nodes/Default/groups/admin.plist
- /private/var/db/dslocal/nodes/Default/users
TODO
- /private/var/db/dslocal/nodes/Default/users からユーザー情報を抽出
関連プロジェクト
Disk Arbitrator
Disk Arbitratorは、ディスクデバイスのイメージング中に正しいフォレンジック手順が守られるよう支援するMac OS Xフォレンジックユーティリティです。Disk Arbitratorは基本的にDisk Arbitrationフレームワークのユーザーインターフェースであり、ファイルシステムの自動マウントを含むブロックストレージデバイスの管理にプログラムが参加できるようにします。有効にすると、Disk Arbitratorはファイルシステムのマウントをブロックし、読み書きとしてマウントされて証拠の完全性が損なわれるのを防ぎます。
https://github.com/aburgh/Disk-Arbitrator
Volafox
volafox(別名 'Mac OS X Memory Analysis Toolkit')はpython 2.xで開発されています。
https://code.google.com/p/volafox/
Mandiant Memoryze(tm) for the Mac
Mac用Memoryzeは、インシデント対応担当者がMacのメモリ内の悪意を発見するのに役立つ無料のメモリフォレンジックソフトウェアです。
Mac用Memoryzeはメモリイメージの取得および/または分析が可能です。分析はオフラインのメモリイメージまたはライブシステム上で実行できます。
http://www.mandiant.com/resources/download/mac-memoryze
Volatility MacMemoryForensics
https://code.google.com/p/volatility/wiki/MacMemoryForensics
ライセンス
OS X Auditor
Copyright (C) 2013-2015 Jean-Philippe Teissier
このプログラムはフリーソフトウェアです。あなたはこれを、フリーソフトウェア財団によって発行されたGNU General Public License(バージョン3、または(あなたの選択により)それ以降のバージョン)の条件下で再配布および/または改変することができます。
このプログラムは有用であることを願って配布されていますが、いかなる保証も提供されません。商品性または特定目的への適合性の黙示的保証も含まれません。詳細についてはGNU General Public Licenseを参照してください。
あなたはこのプログラムとともにGNU General Public Licenseのコピーを受け取っているはずです。そうでない場合は、http://www.gnu.org/licenses/ を参照してください。
BootstrapとJQueryにはそれぞれ独自のGPL互換ライセンスがあります。