多くのファイル形式は、例えばJPEGが撮影された写真を表示するように、コンテンツを表示するだけでなく、メタデータを含むことがあります。これらの隠された情報は、OSINT調査やペネトレーションテストの際に非常に貴重です。いくつかの事例と、これらの一見隠された情報を抽出するためのツールについて見ていきましょう。
写真のメタデータを消去しない
ユーザーがプロフィールに投稿する写真からメタデータを消去しなかった時代は過ぎ去りました。未削除のGPS座標を抽出することは、例えばユーザーの住所を暴露することで、重大なプライバシー侵害となり得ました。現在、ソーシャルメディアは写真からメタデータを削除していますが、他の種類のアプリケーションではしばしばそうではありません。この点に注意を払うことが、テスト中にソフトウェアのユーザーをドイツのテレビジャーナリストが遭遇したような状況から守るために重要です。彼女はこのような写真をインターネットに投稿しました:
好奇心旺盛なインターネットユーザーはこの写真をダウンロードし、そのメタデータを確認しました。そこには、従来の情報に加えて、さらに多くの情報が含まれていることが判明しました。この写真の上記の切り抜きを行う際に、グラフィックプログラムはオリジナルの写真をサムネイル形式で保存し、より広い画角を示していました – これは明らかに多くの情報を公開していました。
FOCA – ドキュメントのメタデータの一括検出
GPS座標や写真の隠れたサムネイルを抽出することは「単なる」プライバシー侵害に過ぎません。しかし、ドキュメントのメタデータをチェックすると、ペネトレーションテストの際に大いに役立つ情報が見つかることがあります。これらのファイルを手動で探し、確認するには多くの時間がかかります。FOCA (Fingerprinting Organizations with Collected Archives) ツールは、このプロセスを自動化します。指定されたドメインに対して、FOCAはMicrosoft Office、Open Office、PDFなどのドキュメントを検索し、それらのメタデータを抽出します。
ドキュメントのメタデータ自体には、そのドキュメントを作成したユーザーのログイン情報が含まれていることがあります。この情報は、テスト中のアプリケーションでそのユーザーのアカウントにログインしようとする際に利用される可能性があります。
また、そこに含まれる可能性のある他の重要なデータとしては、ファイルを作成するために使用されたソフトウェアとそのバージョンに関する情報があります。この情報を利用して、既存のエクスプロイトを活用してシステムをさらに侵入することができるかもしれません。
ソフトウェア情報に加えて、ドキュメントにはオペレーティングシステムのバージョンに関する注記も残されていることがあります。この情報もまた、ペネトレーションテストの際に非常に役立ちます。なぜなら、これで私たちはどのシステムに対してマルウェアのコードをコンパイルするべきかが分かるからです。
ドキュメントのメタデータに含まれるもう一つの興味深い情報は、ネットワークプリンタの場所に関するものです。これにより、攻撃者はネットワークインフラをマッピングし、プリンタへの攻撃を行うことができるかもしれません。
ツールのダウンロードはこちらから – https://github.com/ElevenPaths/FOCA
ExifTool Scanner – ペネトレーションテスト中の自動化
以前に説明したツールは、既に検索エンジンによってインデックスされたドキュメントを検索する独立したスキャナーとして機能しますが、手動でのリコノサンスには役立ちません。しばしばドキュメントは一時的なアクセスとして生成されるためです。この場合、Burp SuiteのプラグインであるExifTool Scannerが役立ちます。このプラグインは、メタデータを含むファイルが出現するかどうかを受動的に監視し、役立つ情報を抽出します。ある監査では、テスト対象のアプリケーションが動的にPDFを生成するツールと、それが実行されているシステムのバージョンに関する情報を残していました。
ツールはBApp StoreおよびGitHubで見つけることができます – https://github.com/portswigger/exiftool-scanner
面白いことに – メタデータの削除は危険な場合もある
2021年、GitLabはメタデータの削除が原因でサーバー上でのリモートコード実行につながるバグを発見し、20,000ドルを支払いました。画像のメタデータに次のコードを挿入するだけでした:
(metadata
(Copyright "\
" . qx{echo vakzz >/tmp/vakzz} . \
" b ") )
脆弱なバージョンのExifToolは、exiftool/lib/Image/ExifTool/DjVu.pmの31行目で、$(Perl変数)や@(Perl配列)を使用する属性を削除するために、セキュリティを確保するための検証を行います。これは、この内容が次に34行目のeval関数でコードとして実行されるためです。脆弱な関数を呼び出すには、ペイロードを含む注記を含む正しいDjVuファイルを作成し、eval関数によってPerlコードとして実行されるようにします。
このバグについての詳細はこちらを参照してください: A Case Study on CVE-2021-22204: ExifTool RCE