5

ユーザーが投稿した画像を表示する Web サイトがあります。ブラウザー レンダリング エンジンの 0-day 脆弱性を悪用する可能性のある画像をアップロードする賢明な人がいることに懸念を抱いています。さらに、メタデータの画像 (EXIF データなど) を消去し、それらを無損失の方法でさらに圧縮しようとします (PNG および JPEG には、このようなコマンド ライン ユーティリティがいくつかあります)。

上記を念頭に置いて、私の質問は次のとおりです。上記のシナリオに対応する C/C++ ライブラリはありますか? また、解析 -> パージ -> サニタイズ -> 圧縮 -> 書き込みの完全なパイプラインが 単一のライブラリで利用できない場合でも、少なくとも 解析 -> パージ -> サニタイズ -> 書き込みパイプライン (圧縮なし) を実装できますか? JPEG/PNG/GIF をサポートするライブラリは?

4

2 に答える 2

6

要件を満たすことは不可能です。使用する画像読み取りライブラリの 1 つにゼロデイ脆弱性がある場合、受信ファイルを解析してサニタイズしようとすると、コードが悪用される可能性があります。画像が受信されるとすぐに「事前サニタイズ」することで、悪用のポイントを後ではなく前に移動するだけです。

唯一役立つのは、サンドボックス内の着信画像を解析してサニタイズすることです。これにより、少なくとも脆弱性があった場合、サンドボックスに封じ込めることができます。サンドボックスは、chroot環境 (または非常に偏執狂的な場合は VM) で特権のないユーザーとして実行される別のプロセスである可能性があり、インターフェースはバイトストリーム インとサニタイズされたイメージ アウトのみで構成されます。

サニタイズ自体は、 ImageMagickで画像を開き、それをラスターにデコードし、再エンコードして標準形式 (PNG や JPEG など) で出力するのと同じくらい簡単です。入力と出力の両方が非可逆形式 (JPEG など) の場合、この変換は非可逆になることに注意してください。

于 2012-04-17T18:28:52.920 に答える