FORENSICSはじめに本記事では、iOSフォレンジックをやったことない人向けに基本的な情報をまとめてみました。取っ掛かりとしては簡単に読める内容だと思います。iOSデバイスのバックアップデータやその解析ツールについてご紹介しています。本記事では主に以下のデバイスやソフトウェアを使って検証しています。当該デバイスやバージョンでない場合同じ結果や解釈にならない可能性もありますのでご了承ください。Watch等で利用されているOSです。iOSは大きく分けて、以下の4つのシステムから構成されています。Touchは、名前からもわかるようにタッチ操作を始めとするユーザーインタフェースのシステムです。Mediaは、動画像や音楽などMedia用のシステムです。Serviceは、アプリケーションにとって必要な基本的なシステムを提供しています。OSは、ハードウェアに近いより低レイヤーなネットワークやメモリ管理、スレッドの機能などを提供しています。次に、iOSで用いられているファイルシステムについて簡単にご紹介いたします。System)と呼ばれるファイルシステムが利用されています。10.3からAPFSが導入されました。Write)のサポート、タイムスタンプがナノ秒単位まで記録するようになったりなど従来のファイルシステムに比べ大きく変わっています。詳細な情報としては以下のWebページなどが参考になると思います。SystemファイルシステムがAPFSになった事による変更点iTunesバックアップiOSデバイスにおけるデータを抽出する方法としては、物理と論理の2通りの方法があります。物理デバイスから情報を抽出するためには、機材が必要であったり、論理面でも有償のツールが必要なことが多く入門には不向きです。そこで本記事では、iTunesのバックアップデータを元にiOSデバイスのフォレンジック調査に役立つ情報をまとめていこうと思います。ホストマシンにiTunesを用いてバックアップをとっている人はそのデータをお使いできます。なければ、iOSデバイスを接続し、iTunesの画面よりバックアップをとってください。iOSデバイスのバックアップデータは、以下の場所に格納されます。Computer\MobileSync\Backup\Windowsストアアプリ経由でiTunesを入れた場合:%USERPROFILE%\Apple\MobileSync\Backupバックアップを行っている状態で、上記フォルダにアクセスするとハッシュ値が名前のフォルダがあると思います。それがバックアップデータの本体です。バックアップデータのフォルダの中には、主に以下のファイルやフォルダが格納されていると思います。Manifest.plistManifest.dbInfo.plistStatus.plist大量のフォルダManifest.plistは、主にバックアップの内容について記載されています。バックアップした日時、バックアップを暗号化しているかどうか、インストールしたアプリケーション一覧などがあげられます。Manifest.dbは、SQLiteのデータベースファイルで、バックアップデータに含まれるファイルやフォルダの情報が格納してあります。fileIDカラムには、SHA1が格納されており、これはファイル名を表しています。そのため、バックアップフォルダの中で、このハッシュ値を使って検索したりします。SQLiteでManifest.dbを読み込んだときの図です。CUIのsqlite3コマンドなどでも良いのですが、フォレンジック業務をやるときには、フィルターやソート、検索などが手軽に使えるほうが効率が良いので、こういったGUIツールを使っています。Info.plistは、主にバックアップ対象のデバイス情報について記載されています。IMEIやシリアルナンバー、最後にバックアップした日などが挙げられます。Status.plistは、主にバックアップ状況について記載されています。便利なのでダウンロードしておくことをおすすめします。iTunesバックアップ解析ツール今まで見てきたバックアップデータなどを解析する際に役立つツールをご紹介します。plutil拡張子plistのバイナリファイルの中身を解析する際には、plutilコマンドが便利です。Macの場合は標準でインストールされているのですぐに使えます。Windowsというものが存在するので、それを利用できそうです(未検証)。本来plutilコマンドはいろいろな操作ができますが、今回はフォレンジックでよく使うplistファイルを別のファイルに変換する操作をご紹介します。以下は、Info.plistファイルをxmlファイルに変換する場合の例です。plistファイルはバイナリファイルなので、こういった変換を行うことが必要となってきます。Info.xml-oオプションを忘れてしまうとplistファイル自体の中身が書き換わってしまうので注意してください。その他Pythonが利用できる環境であれば、plistlibライブラリが利用できるので、これを用いてプログラマブルに解析することも可能です。iExploreriExplorerは、高機能なiOSデバイスファイルブラウザーです。ダウンロードできます。iExplorerは、Manifest.dbなどの情報を自動でパースし、より人間にわかりやすい形で表示してくれます。これがあれば、バックアップデータの閲覧には困らないと思います。全体的に眺めたい際などは、こちらを使って足りない場合、前述したplutilコマンドなどを使って解析します。Viewerなどがあるので、使い比べてみて自分にあったものを使うと良いでしょう。おわりに今回は、iOSの基本構造やバックアップデータを用いた解析方法などについて簡単にご紹介しました。次は、気が向けば個々のアーティファクトについてより詳細にとりあげて記事を今度書こうかなと思っています。