- Forensicsに使用できそうなので、メモ
Unified Log
- デバッグとパフォーマンス分析のためにアプリからテレメトリーをキャプチャします。
手順
-
Terminal
で以下を実行する。
Montereyは「5」のようです。
ディレクトリ名はなんでも良さげ。
mkdir log
cp -r /private/var/db/diagnostics/ log
cp -r /private/var/db/uuidtext/ log
/usr/libexec/PlistBuddy -c "Add:OSArchiveVersion integer 5" log/info.plist
mv log log.logarchive
- 作成した
info.plist
の内容。
vim
などで作成しても問題なし。
同じディレクトリに保存。
info.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>OSArchiveVersion</key>
<integer>5</integer>
</dict>
</plist>
log showコマンド
- ログの見方は分かっていないので、とりあえず、参考のコマンドをメモ。
--info
か--debug
がないと、デフォルトのログレベルが対象になる。
--archive FileName
で対象のlogarchiveファイルを指定すること。
--predicate
で出力をフィルターできる。
- ログから
sudo
を含むものを出力
log show --archive log.logarchive --predicate 'process == "sudo"'
- プロセスを指定して出力
log show --archive log.logarchive --predicate 'processID == 26220'
-
sudo
コマンドの実行履歴を出力
log show --archive log.logarchive --predicate 'process == "sudo" and eventMessage contains "COMMAND="'
- リモート接続だろうか。
log show --archive log.logarchive --predicate 'process == "sudo" and eventMessage contains "TTY="'
- リモートで
su
やsudo
を実行した履歴の出力だろうか。
log show --archive log.logarchive --predicate '(process == "su" or process == "sudo") and eventMessage contains "tty"'
-
kernel
とSnadbox
を含むエントリーを出力。
log show --archive log.logarchive --predicate 'processImagePath contains "kernel" and senderImagePath contains "Sandbox" and eventMessage contains "file-read-xattr"'
-
Microsoft
を含むエントリーを出力。
log show --archive log.logarchive --predicate 'processImagePath contains "kernel" and senderImagePath contains "Sandbox" and eventMessage contains "file-read-xattr" and eventMessage contains "Microsoft"'
- スクリーンロック
log show --archive log.logarchive --predicate 'eventMessage contains "com.apple.sessionagent.screenIs"'
- ログイン
log show --archive log.logarchive --predicate 'processImagePath contains "loginwindow" and eventMessage contains "com.apple.sessionDidLogin"'
参考サイト