技術は目覚ましく進化し、私たちは今までになかったような方法でメディアを作成したり、映像化したりできるようになりました。今日、私たちは Blender のようなツールを使って、映像作成やモデリング、3D コンテンツのアニメーション化を行うことができます。オープンソース ソフトウェアの Blender は無料で公開されていることから多くのユーザが利用しています。一方で、攻撃者にとっては脆弱性を見つけるための監視対象として魅力的な標的にもなっています。Blender のユーザ基盤を考慮すると、こうした脆弱性を悪用した侵害が行われた場合の影響はかなり深刻になる恐れがあります。Blender への攻撃によって足がかりを得た攻撃者が、組織のネットワークへのさらなる攻撃を行う可能性があるためです。
本日 Talos は、Blender で発見された複数の脆弱性を公開します。これらの脆弱性により、Blender を実行する影響を受けたホストで任意のコードが実行される危険性があります。いずれかの脆弱性をトリガーするように細工されたファイルをユーザが Blender で開くと、脆弱性がエクスプロイトされ、システムが侵害されます。
Talos は責任を持って Blender にこれらの脆弱性情報を提供し、修正を提案しました。ところが、Blender は「こうした問題に一つ一つ対応するのは時間の無駄にもなる」として、脆弱性への対応を拒否したのです。その結果、現在これらの脆弱性に対処するソフトウェア更新プログラムはありません。さらに言うと、Blender の開発者たちは、「Blender でファイルを開くことは、Python インタープリタでファイルを開くことと同様とみなされるべきであり、ソースの送信元を『信頼する』必要がある」という考えをとっています。
攻撃のシナリオ
エクスプロイトの具体的な条件は脆弱性によって異なりますが、通常はユーザに Blender でサポートされるファイルを自身のローカル システム上で開かせる必要があります。攻撃者はこうした脆弱性を攻撃の手段として利用し、ソーシャル エンジニアリングとスペア フィッシング メールを併せてリモートでエクスプロイトし、標的を感染させます。攻撃者がエクスプロイトを行う他の方法として、悪意のあるファイルを GitHub、Google Drive、Dropbox などのサイトにアップロードし、標的のユーザと共有するというシナリオが考えられます。
Talos は過去のブログで、特定のソフトウェアを実行する、特定のユーザを狙ってフィッシング メールを送信する電子メール ベースの攻撃について書きました。 類似するシナリオとして、Blender を利用する組織のユーザにフィッシング メールが送信されるというケースは大いに発生する可能性があります。これは、ユーザに添付ファイルを開かせるために攻撃者がソーシャル エンジニアリングを使用して巧みにユーザを信用させていることからも、特に可能性が高いといえます。
脆弱性の詳細
この脆弱性は、Cory Duplantis および他の Talos メンバーによって発見されました
Blender では、任意のコード実行につながる恐れのある複数の脆弱性が発見されました。こうした脆弱性は、Blender でファイルが不適切に解析されたり、処理されたりした結果として発現し、複数の整数オーバーフローまたはバッファ オーバーフロー状態を創り出します。以下は、脆弱性と問題の簡単な説明を一覧にしたものです。各脆弱性の詳細はそれぞれの脆弱性アドバイザリを参照して下さい。
- TALOS-2017-0406– Blender Sequencer imb_loadtiff の整数オーバーフローによりコードが実行される脆弱性
Blender の .tiff ファイル読み込み機能に存在する整数オーバーフローの脆弱性です。 - TALOS-2017-0407– Blender Sequencer imb_loadpng の整数オーバーフローによりコードが実行される脆弱性
Blender の .png ファイル読み込み機能に存在する整数オーバーフローの脆弱性です。 - TALOS-2017-0408– Blender Sequencer imb_loadiris の整数オーバーフローによりコードが実行される脆弱性
Blender の .iris ファイル読み込み機能に存在する整数オーバーフローの脆弱性です。 - TALOS-2017-0409– Blender Sequencer dpxOpen のバッファ オーバーフローによりコードが実行される脆弱性
Blender の DPX ファイル(.cin)の読み込み機能に存在するバッファ オーバーフローの脆弱性です。 - TALOS-2017-0410– Blender Sequencer imb_load_dpx_cineon の整数オーバーフローによりコードが実行される脆弱性
Blender の DPX ファイル(.cin)読み込み機能に存在する整数オーバーフローの脆弱性です。 - TALOS-2017-0411– Blender Sequencer imb_loadhdr の整数オーバーフローによりコードが実行される脆弱性
Blender の RADIANCE ファイル(.hdr)読み込み機能に存在する整数オーバーフローの脆弱性です。 - TALOS-2017-0412– Blender Sequencer imb_bmp_decode の整数オーバーフローによりコードが実行される脆弱性
Blender の .bmp ファイル読み込み機能に存在する整数オーバーフローの脆弱性です。 - TALOS-2017-0413– Blender Sequencer imb_get_anim_type ストリームの整数オーバーフローによりコードが実行される脆弱性
Blender の .avi ファイルのアニメーションを再生する機能に存在する整数オーバーフローの脆弱性です。 - TALOS-2017-0414– Blender Sequencer avi_format_convert の整数オーバーフローによりコードが実行される脆弱性
Blender の .avi ファイルのアニメーションを再生する機能に存在する整数オーバーフローの脆弱性です。 - TALOS-2017-0415– Blender のディレクトリ参照におけるサムネイル ビューアの整数オーバーフローによりコードが実行される脆弱性
Blender のディレクトリ参照におけるサムネイル ビューア機能に存在する整数オーバーフローの脆弱性です。 - TALOS-2017-0425– Blender BKE_image_acquire_ibuf の整数オーバーフローによりコードが実行される脆弱性
Blender の画像読み込み機能に存在する整数オーバーフローの脆弱性です。 - TALOS-2017-0433– Blender vcol_to_fcol の整数オーバーフローによりコードが実行される脆弱性
.blend ファイル内の従来のメッシュ属性を更新する機能に存在する整数オーバーフローの脆弱性です。 - TALOS-2017-0434– Blender Object CustomData_external_read の整数オーバーフローによりコードが実行される脆弱性
Blender が .blender ファイル内で「Mesh」オブジェクトから「CustomData」レイヤを処理する方法に存在する整数オーバーフローの脆弱性です。 - TALOS-2017-0438– Blender BKE_mesh_calc_normals_tessface の整数オーバーフローによりコードが実行される脆弱性
Blender が .blend ファイルの古いバージョンを読み込む際に「Mesh」オブジェクト内で基準値を修正する方法に存在する整数オーバーフローの脆弱性です。 - TALOS-2017-0451– Blender customData_add_layer__internal の整数オーバーフローによりコードが実行される脆弱性
従来のメッシュ属性「tface」のアップグレード機能に存在する整数オーバーフローの脆弱性です。 - TALOS-2017-0452– Blender multires_load_old_dm base vertex map の整数オーバーフローによりコードが実行される脆弱性
Blender が「Multires」構造を含む古いファイル バージョンを開くときの処理方法に存在する整数オーバーフローの脆弱性です。 - TALOS-2017-0453– Blender modifier_mdef_compact_influences の整数オーバーフローによりコードが実行される脆弱性
Blender が「bindcos」構造を含む古いファイル バージョンを開くときの処理方法に存在する整数オーバーフローの脆弱性です。 - TALOS-2017-0454– Blender BKE_curve_bevelList_make の整数オーバーフローによりコードが実行される脆弱性
Blender がカーブをポリゴンに変換する方法に存在する脆弱性です。 - TALOS-2017-0455– Blender BKE_vfont_to_curve_ex の整数オーバーフローによりコードが実行される脆弱性
Blender がフォントとしてレンダリングされたテキストをカーブに変換する方法に存在する脆弱性です。 - TALOS-2017-0456– Blender draw_new_particle_system PART_DRAW_AXIS の整数オーバーフローによりコードが実行される脆弱性
Blender がパーティクル オブジェクトを描画する方法に存在する脆弱性です。 - TALOS-2017-0457– Blender mesh_calc_modifiers eModifierTypeType_OnlyDeform の整数オーバーフローによりコードが実行される脆弱性
Blender が特定のオブジェクト修飾をメッシュに適用する方法に存在する脆弱性です。
これらの脆弱性の詳細情報やその他のセキュリティ アドバイザリを確認するのには、Talos の Web サイトにある脆弱性情報のポータルをご覧下さい。
まとめ
アプリケーションの規模と複雑さが増すにつれて、ソフトウェアに脆弱性が存在することは例外的なことではなく、普通のことになってきています。プログラムを使った方法でソフトウェアの脆弱性を識別することは大きな課題ですが、お客様の安全を確保し、お客様を保護する上では重要な役割を果たします。攻撃者がエクスプロイトを試みる可能性のある攻撃媒体を事前に特定できるからです。Talos はこれからも、お客様のセキュリティを保護するため、さらに重要なこととして、より広範なインターネット コミュニティを保護するために、ソフトウェアの脆弱性を特定してまいります。
カバレッジ
Talos では、Blender の脆弱性を悪用しようとする試みを検出するため、以下の Snort ルールをリリースしています。今後、脆弱性に関する新たな情報が追加されるまでの間は、ルールが追加されたり、現行のルールが変更されたりする場合がありますのでご注意ください。Firepower のお客様は、SRU を更新して最新のルール セットをお使いください。オープンソース Snort サブスクライバ ルール セットをお使いであれば、Snort.org で購入可能な最新のルール パックをダウンロードすることで、システムを最新状態に維持できます。
Snort ルール
- 16716
- 43399
- 44167-44168
- 44186-44187
- 44223-44230
- 44237-44266
- 44269-44270
- 44287-44288
- 44318-44319
- 44376-44377
- 44397-44398
- 44441-44442
- 44444-44449
本稿は 2018年1月11日に Talos Group のブログに投稿された「Vulnerability Spotlight: Multiple Unpatched Vulnerabilities in Blender Identified」の抄訳です。