Mobile Verification Toolkit は、Amnesty International の Security Lab が公開しているフォレンジックツールです。2021 年に傭兵スパイウェアを世界中の新聞の一面に載せた調査、Pegasus プロジェクトを支えたのもこのツールです。ソースコードは公開されており、費用はかからず、誰でも自分のスマートフォンに対して実行できます。
私たちは似た種類の分析を行う商用製品を販売しています。その点を踏まえたうえでお読みください。MVT は優れたツールです。技術に自信のある人なら、これだけで十分かもしれません。このガイドは、MVT をやめるよう説得するためではなく、使いこなしてもらうために書いています。
MVT が実際に行うこと
MVT は、ウイルス対策ソフトがパソコンをスキャンするような方法でスマートフォンをスキャンするわけではありません。スマートフォンがすでに保持しているデータを取り出し、公開されている侵害の痕跡(インジケーター)と照合します。既知のスパイウェアが通信するドメイン、それが作るプロセス名、それが残すファイルパス、それが引き起こすクラッシュのパターンなどです。
この違いが、MVT の強みと限界の両方を説明しています。MVT はスマートフォンに自己診断を求めるのではなく証拠を読むので、端末上のアプリには見つけられないものを見つけられます。一方で、誰かがすでにインジケーターを公開しているものしか見つけられません。つまり、まだ誰も記録していない攻撃キャンペーンは、MVT からは見えないのです。
iOS では、iTunes または Finder のバックアップを分析します。有用な情報があるのはそこです。クラッシュログ、どのプロセスがいつネットワークを使ったかを記録するデータベース、シャットダウンを記録するシステムファイル、Safari の履歴、メッセージの添付ファイルのメタデータなどです。暗号化されたバックアップには、暗号化されていないものより格段に多くの情報が含まれます。これは多くの人にとって意外な点です。
Android では、ADB 経由で動作し、インストールされているパッケージを列挙し、システムログを取得して、同じインジケーターのセットと照合します。Android のバックアップを分析したり、APK をスキャンしたりすることもできます。
実行するために実際に必要なこと
ダウンロードページがたいてい省いている、率直な部分です。
パソコンが必要です。macOS か Linux です。Windows は正式にはサポートされておらず、WSL を使う人もいます。
Python とターミナルに慣れている必要があります。 MVT は pip でインストールします。
pip install mvt
これで、mvt-ios と mvt-android の 2 つのコマンドが使えるようになります。
暗号化された iPhone のバックアップが必要です。 macOS の Finder か iTunes で、暗号化のオプションをオンにしてバックアップを作成し、パスワードを忘れないようにしてください。MVT は分析のためにそれを復号します。
mvt-ios decrypt-backup -p PASSWORD -d decrypted/ backup-folder/
インジケーターのファイルが必要です。 MVT は公開されているセットを取得できます。
mvt-ios download-iocs
そして分析そのものです。
mvt-ios check-backup --iocs indicators.stix2 --output results/ decrypted/
Android で ADB を使う場合は、開発者向けオプションと USB デバッグを有効にしたうえで、次を実行します。
mvt-android check-adb --iocs indicators.stix2 --output results/
オプションやコマンド名はリリースごとに変わります。正確な構文については、このガイドも含めてどのチュートリアルも鵜呑みにせず、docs.mvt.re の最新のドキュメントを確認してください。
そして出力を読みます。 出力は JSON ファイルが入ったディレクトリと、一連の検出結果です。ほとんどの人が行き詰まるのはここです。ファイルはタイムラインと抽出された記録で、それを解釈するには、通常の iPhone がどう見えるかを知っていて、そうでないものに気づける必要があります。
現実的に言えば、毎日ターミナルで仕事をしている人なら午後いっぱい、そうでない人には越えられない壁です。
結果の読み方
インストールよりもこちらのほうが重要で、人はどちらの方向にも読み違えます。
検出があったら深刻ですが、それだけで意味がわかるわけではありません。 MVT は、インジケーターに一致したものに印を付けます。それが何を意味し、いつ起きたのかを確かめるのは、依然としてあなたが行うべき分析です。
検出がないことは、スマートフォンがクリーンだという意味ではありません。 指定したインジケーターに一致するものがなかった、という意味です。新しい攻撃キャンペーン、記録されていないツール、バックアップより前の感染は、どれも何も出ない結果になります。Amnesty はこの点を明言しており、これがこのツールについて最も誤解されている点です。
単に興味深いだけの発見もあります。 タイムラインには、ありふれた活動がたくさん表示されます。スマートフォンの内部を見たことがなければ、それが不安を誘うように見えることがあります。
MVT が適している場合
- ターミナルで作業していて、JSON に抵抗がない。
- 本当に標的になりうるジャーナリスト、活動家、弁護士、研究者で、手法が公開され検証可能なツールを使いたい。
- 結果に商業的な利害関係のないものを使いたい。セキュリティツールにそれを求めるのはまったく妥当なことであり、私たちを含め、誰かが販売しているどの製品に対しても MVT が持つ本当の強みです。
- 仕事として他人の端末を分析しており、根拠を示せる、記録の残る手法が必要。
適していない場合
- 不安を抱えているが技術には詳しくなく、今週中に答えが必要。
- 想定される問題が、知っている誰かがインストールした市販のストーカーウェアである。こちらは傭兵スパイウェアよりはるかに多く見られます。権限の画面に表れるので、見つけるのにフォレンジックは必要ありません。まずは Android または iPhone から始めてください。
- 弁護士や警察官、支援員に見せる記録が必要。MVT の出力は証拠にはなりますが、読みやすいレポートではありません。
- 一度きりではなく、繰り返し確認する必要がある。
Haris Shield が違う点
Haris Shield は同じ公開インジケーター、つまり MVT プロジェクトのインジケーターのセットを使っており、私たちのサーバーが毎晩、署名付きのバンドルに組み直しています。同じ痕跡の一部をパソコンから確認しますが、MVT が行うすべてを行うわけではありません。現在のバージョンは、暗号化された iPhone のバックアップを分析しません。iPhone では、スマートフォンがケーブル経由で出力するものを読み取ります。クラッシュログ、構成プロファイルとプロビジョニングプロファイル、セキュリティ設定です。sysdiagnose を読み込んだ場合はそれも分析し、ネットワーク使用状況とプロセス実行のデータベースが加わります。Android では、MVT と同じく ADB 経由で端末を読み取ります。すべての項目は仕組みのページに記載しています。
Haris Shield が取り除くのは、ターミナルでの作業です。macOS、Windows、Linux 向けのグラフィカルなアプリケーションがあり、インジケーターは自動で最新の状態に保たれ、発見ごとにリスクレベルが付いたレポートが手に入ります。レポートは PDF として保存し、ほかの人に渡すことができます。
MVT に見つけられないものを私たちが見つける、とは主張しません。iPhone では、完全な暗号化バックアップに対して実行した MVT のほうが、私たちの現在のバージョンより多くのものを読み取ります。Amnesty のインジケーターが入手できる最良のものである以上、分別のある人なら誰でもそれを土台にします。
MVT を実行できて、実行したいなら、MVT を実行してください。
何か見つかった場合
身近な誰かが関わっているかもしれないなら、すぐにスマートフォンをクリーンにしないでください。削除すると相手に知られる可能性があり、証拠も消えてしまいます。また、国家レベルの相手に狙われている可能性があるなら、これを専門にしている人たちの助けを借りてください。Amnesty の Security Lab と Access Now の Digital Security Helpline は、どちらも危険にさらされている個人を無料で支援しています。手順はインストールした相手に気づかれずにスパイウェアを削除する方法で解説しています。
まとめ
MVT は本物です。Pegasus プロジェクトを支えたツールであり、Amnesty の Security Lab が公開し、無料で、手法も公開されています。暗号化された iPhone のバックアップ、または ADB 経由の Android 端末を、公開されている侵害の痕跡と照合して分析します。
一方で、Python とターミナル、そしてフォレンジックの出力を解釈する力が前提になります。また、クリーンという結果は、与えたインジケーターに一致するものがなかったという意味にすぎません。それが自分に合っているなら、使ってください。合わないなら、ツールよりも方法のほうが大切です。検証しようとしているそのスマートフォン上で動くスキャナーを信じるのではなく、何らかの手段でパソコンから分析してください。
出典
- Mobile Verification Toolkit:mvt.re、ドキュメントは docs.mvt.re
- MVT のソースコード:github.com/mvt-project/mvt
- Amnesty International Security Lab、フォレンジック手法レポート:NSO Group の Pegasus を見つける方法:amnesty.org
- Access Now Digital Security Helpline:accessnow.org/help
関連記事:iPhone の Pegasus をチェックする方法、無料のスパイウェアチェック:本当に使える方法と詐欺の見分け方。