セキュリティブログ

Mac端末のフォレンジックについて 第二回「TimeMachine挙動の解析初歩」

Mac端末のフォレンジックについて 第二回「TimeMachine挙動の解析初歩」

更新日:2022.02.28

こんにちは。フォレンジック課のWDです。

今回はMac端末のフォレンジックについて取り上げようと思います。

第二回はTimeMachine挙動の解析初歩をテーマとします。

今回の記事ではフリーツールなどを利用し、どのような情報が確認できるかを取り上げたいと思います。

 

今回調査する端末は検証用の端末になります。

OSのバージョンとしてはmacOS Catalina 10.15.6を調査します。

 

今回の調査では、2020年10月まで利用した検証用の端末を、2020年7月のTimeMachineのバックアップを用いて、過去の情報で上書きした場合にどのような情報が確認できるのか、その一部を確認しましょう。

 

まずはAutoMacTCを利用します。

 

AutoMacTCとは

CrowdStrike Services チームによって公開されている、Liveシステムに対して、フォレンジックトリアージを行うことのできるツールです。

ざっくりと要約すると、ウィルスの挙動などが確認されやすい部分のログを収集するツールです。そのため、今回の調査には最適、というわけではありませんが、システム関連のログの収集を行いcsv形式にするために今回は利用します。

下記のGitで公開されています。
https://github.com/CrowdStrike/automactc

 

日本語で書かれている使用法に関してはScanNetSecurity内の記事が参考になります。
https://scan.netsecurity.ne.jp/article/2019/04/18/42235.html

 

AutoMacTCは動作環境として、pythonの2.7系を利用しているため、現在最新のMacで利用する場合には、pythonの2.7系をインストールする必要があります。

 

実際の調査依頼の際には起動しているシステムに対して、保全を行わず、データの収集作業を実施する場合には注意が必要です。例えば、今回のツールを利用するために、pythonのインストールから実施する場合には、端末の状態によっては古いログが流れてしまう場合など、調査を困難にしてしまう可能性もあります。

そのため、マルウェア等によって侵害が発生した端末に対して、今回行う作業を実施した場合には、ログなどの証跡を上書きしてしまう可能性がある点に関しては考慮に入れておく必要があります。特に内部不正の可能性が少しでもある調査の際には、より注意して調査対象の端末を取り扱う必要があります。

 

ログデータの収集と解析

Python2.7系のインストールを実施し、terminalにフルディスクアクセス権限を付与した状態で、下記のコマンドを実施することで、フルオプションでデータの収集が可能になります。

 

上記コマンドを実施後、しばらく待つとユーザディレクトリ直下に圧縮ファイルが生成されます。

解凍して内部データを確認した際には、下記のようなファイルを確認することができます。

プログラム実施中にエラーが発生した場合には、terminal上の出力では以下のように出力されます。

 

今回の調査対象のMacのOSのバージョンが10.15.6で比較的新しいため、AutoMacTCのv.1.0.0.3では、いくつかのモジュールが対応しておらず失敗していますが、重要な部分のデータに関しては確認可能です。

さて、生成された情報に関して確認していくと、~users.csvのファイルに以下のような情報を確認することができます。

複数のtime情報を保有していますが、時刻情報の整理がフォレンジックでは何よりも重要なため、まずはそれぞれの情報の意味を再確認します。

 

atime: 最後に利用した時間(Last Accessed Time)

mtime: 最後に変更した時間(Last Modified Time)

ctime: 最後にInode情報が変更された時間(Last Changed Time)

btime: 生成された時間(Birth Time)

 

上記を踏まえると画面キャプチャは7/9にシステム環境を作成後、7/28に変更が発生し10/12に最終利用している、ということが確認できます。

System Administratorの時刻情報は更新頻度が高くないため、10/12の更新は気になるところです。

また、testユーザフォルダの作成日時は7/28となっていますが、System Administratorの作成日時である7/9から7/28まで一切の更新がないのは少々不審です。

OSを更新後ユーザを作成していなかったとは考えづらいものがあります。

今回のようなTimeMachineを用いた復元作業やユーザの消去などが想定されます。

 

さて、上記の情報を確認すると、10/12前後の情報がもっとも気になるため、10/12前後の時刻情報の一覧を作成後確認していきます。

作成した時刻情報から確認できるように10/12前後ではファイルの更新が大量に行われていますが、10/12の情報のもっとも古い部分は以下のキャプチャのようになります。

 

.fseventsdの情報が更新されているのを確認できるため、.fseventsdの情報を確認します。

.fseventsdの情報を確認する際には、FSEventsParserが便利です。

 

FSEventsParserを実行する際のコマンドと実行画面のサンプルは下記に示す通りです。

今回はAPFSのデータ領域ではなく、システム領域の.fseventsdの情報をデスクトップにコピーし、tsvとして展開するためのコマンドを実行します。

 

処理が正常に終了したら、アウトプットフォルダの内部に展開されているtsvファイルを確認して、FSEventsParserの実行結果を確認していきます。

 

非常に大量に情報がありますが、興味深い情報の一つとしては選択部分の情報になります。

少し拡大します。

 

fsckのsymbolic link情報に関しての情報になります。

ファイルシステムの整合性チェック情報であるfsckのリンク情報が更新されている、という動作自体は正常なものとなりますが、他の情報が気になるため、その前後の時刻情報をもつログに関して、もう少し精査します。

 

上のキャプチャは同様のログに関して、fsck_apfsのワードを含むログに限定して情報を絞り込んだものになります。

 

少し話は逸れますが、フォレンジックを行っている際にタイムゾーンの解釈は非常に重要です。タイムゾーン情報が混在しないようにデータの整形と情報の整理を行うのもフォレンジックの中で、かなり重要度が高い作業です。システムの記録情報は設定したタイムゾーン、日本ならJSTとなりますが、システムによってはUTCでしか記録していなかったり、時刻情報が混在していたりします。

このログに関しては、UTCで記録されているためわかりづらいですが、UTC+9時間の計算を行い、JSTで示した場合だと17:24にファイルシステムチェック情報が作成されているのを確認することができます。

 

先ほどのデータで管理情報が気になったデータを実際に確認していきます。

データとしてprivate/var/log/fsck_apfs.logの中身を、最も古い情報から表示すると以下のキャプチャのようになります。

 

該当時刻にdisk I/Oが多発していたからでしょうか。一部失敗の記録があります。

もっとも重要な情報としては17:49以前の情報が一切ない点です。

 

同様にprivate/var/log/fsck_hfs.logも確認します。

こちらには失敗情報はありませんが、こちらも同じく、重要な情報としては17:49以前の情報が一切ない点です。

 

fsck_apfs.logなどのファイルシステムチェックログ情報は、基本的には自動で実行されるものですが、TimeMachineでの復元の実施を行った際には、復元した時点から以前の情報が保持されません。

 

また、今回の情報を用いると12日の17:24~17:49前後にシステム全体の初期化と上書きが行われている可能性が高いにもかかわらず、ある一定期間以前のユーザ情報が残っている点などからTimeMachineなどを用いて、古いデータの復元を実施した可能性が高いものとして考えることができます。

大規模アップデートなどの可能性なども考慮されますが、その際にはシステム更新情報などの別の情報を用いて精査していく必要があります。

 

断片的にはなりますが、今回ピックアップする情報としては以上になります。

端末がデフォルトの状態では、必ずしも端末の実行情報やエラー情報をすべて明確に何が行われたのか記録しているわけではありませんが、可能性を絞り込むことはできます。

一方で、EDRなどの各種操作ログの監査を行えるソフトでは記録されていない情報を、フォレンジック調査を実施することで確認することができたりすることもあります。

複数の情報を整理して整合性を整えることで、対象の端末で何が起こったのか、何が起こっていなかったのかという推測を固めていくのがフォレンジックの何より楽しい部分でもあります。

 

まとめ

今回はフリーツールを用いて現在使用中のシステムについてliveでのデータ収集と解析を行う手法を取りまとめました。

現在公開されているフリーツールでもMacフォレンジックの一端に触れることができるということを確認できたと思います。

今回の手法でのデータの収集と分類に関して、この手法で調査を行う際の利点は無料でデータの収集と分類が行えることにありますが、実施するシステムによっては同時に証跡を上書きしてしまう可能性もあります。

また、現在公開されているバージョンでは10.15以降のOSのバージョンに関して、対応していないモジュールもあるため、やはり証跡となりうる痕跡である、各アーティファクトなどの必要な情報の適切な取り扱いを学ぶ必要はあります。

 

AutoMacTCもFSEventsParserも内部不正やインシデント、いずれの場合も使いやすく、有用なことの多いツールですが、どのような情報をとり漏らしている可能性があるか、他にどのような場所に情報が記録されているか、それらを確認するための手法にはどのようなものがあるかについては適切に認識しておく必要があります。

また、live情報の調査では、手早く取り付ける反面、調査過程において調査可能だった情報を上書きしてしまう可能性などについても特に強く認識しておく必要があります。

 

内部不正、外部からの攻撃による侵害、いずれにせよインシデントが発生した場合、対応速度と一時情報の適切な取り扱い、何よりも情報の保全が重要となるため、普段から多様な調査手法と調査対象に慣れ親しんでいくことが重要です。

セキュリティ診断のことなら
お気軽にご相談ください
セキュリティ診断で発見された脆弱性と、具体的な内容・再現方法・リスク・対策方法を報告したレポートのサンプルをご覧いただけます。

関連記事

経験豊富なエンジニアが
セキュリティの不安を解消します

Webサービスやアプリにおけるセキュリティ上の問題点を解消し、
収益の最大化を実現する相談役としてぜひお気軽にご連絡ください。

疑問点やお見積もり依頼はこちらから

お見積もり・お問い合わせ

セキュリティ診断サービスについてのご紹介

資料ダウンロード
RECRUIT

私たちと一緒に、
脆弱性のない世界を創っていきませんか