web-dev-qa-db-ja.com

TrueTypeフォント(.ttf)フォントファイルの不審なコンテンツを検出する方法

ホストに展開する前に、特定のフォントファイルをスキャンまたはリスクを評価する方法について知りました。もちろん、防御の第一線は、TrueTypeフォントの脆弱性に対してホストがパッチされていることを確認することです。

私は Google Project Zero から優れた研究を読みましたが、フォントのリスクを理解する価値があるようです。私は Tom Leekからの回答 も読んでいます。

windowsシステムにウイルスをインストールできる「悪意のあるフォント」を作成することは非常に困難ですが、それ以外の場合、Linuxシステムでは「正しく」機能します。

最後に、pythonライブラリ(FontTools)をインストールして、.ttfから人間が読める.xmlファイルに変換できるようにしました。結果のファイルには、次のような数百行のアセンブリコードがあります。攻撃者がエクスプロイトを挿入するのは、この.ttfファイルに「ヒント機構」が存在するためです。

さらに調査するために、フォント処理の脆弱性を悪用するために使用されたものなど、既知の不良な.ttfファイルと既知の良好な.ttfファイルを比較したいと思います。アセンブリについての深い知識がなければ違いを見つけるのは難しいと思いますが、そのようなことが可能であるなら、私が見てみるか、少なくともここの誰かから連絡をもらいたいです。だから、問題は:疑わしいコマンドの.ttfファイルを分析する方法を誰かが知っているか、フォント処理の脆弱性を悪用するために.ttfファイルをどこから入手するかを誰もが知っています。

9
mcgyver5

これは興味深い質問です。フォントファイルは、マルウェアまたは悪用の試みの中で悪用される可能性のある他のメディアファイルと同様です。

このようなメディアファイル内の悪意のあるブロックの検出は、署名ベースのアプローチに従います。ユーザーまたはウイルス対策ソフトウェアが疑わしいパターンを探します。

フォントファイル内の悪意のあるコードの公開コンパイルについては知りません。公開されている脆弱性データベースとエクスプロイトデータベースを利用して独自にコンパイルする必要があるかもしれません。

別のプラットフォームで信頼できないファイルを開くと、環境を公開せずに欠陥を検出できる場合があります。これは、エクスプロイトコードが通常特定のプラットフォームを対象としており、他のプラットフォームでは成功できないためです。不正なフォントファイルは、攻撃の試みの指標となる可能性があります。

フォントファイルをある形式から別の形式に変換することは、基本的にプロキシが行うことです(アプリケーションゲートウェイはこれをプロトコルで実行しています)。厳密な実装は、誤動作を検出し、変換に失敗します。厳密性の低い実装では、悪意のある部分を無視し、危険を残すことなく有効なファイルを生成します。

3
Marc Ruef