MB-Support

パソコン初心者のサポートページ

JPEG 処理の脆弱性


JPEG 処理 (GDI+) のバッファ オーバーランにより、コードが実行される (833987) ( MS04-028 ) の問題が注目される今日、みなさん対策はお済ですか? 数年前に比べ、 Windowsのセキュリティに関するページ が、初心者にも分かりやすくなっていますが、この件に関しては何をすれば良いのか疑問に感じるユーザーも多いと思われます。

とりあえずWindowsアップデートは当然実行する必要がありますが、それだけでは不十分。 Microsoft Office を使用している場合は、Office のアップデートも必要になります。しかし、残念ながらそれでも不十分。 結局、自分パソコンが安全な状態であるかどうかを判断できるのは、プログラマーだけなのかも知れません。



まずは Windows に標準で付属されるメールソフト、Outlook Express ( アウトルック エクスプレス 以下 OE ) でのおすすめ対策は、HTML 電子メールにある画像および外部コンテンツをブロックする方法です。 定番であり、インターネットの便利性を半減させる方法ですが、セキュリティ修正パッチが当たっていない Windows には、かなり有効です。

設定方法は、OE を開き、「ツール」→「オプション」で、「セキュリティ」タブをクリックすると、右画像のプロパティが表示されます。 ここで「画像および外部コンテンツ」について簡単に説明します。 インターネット上で「閲覧する」行為は、「ダウンロードする」事と同じです。

例えば今、このページを開いている貴方は、私のサーバーからホームページをダウンロードして、貴方が使用するInternet Explorer(インターネット エクスプローラ 以下IE ホームページ閲覧ソフト)などで、ダウンロードしたファイルを読み込ませて表示しています。これは物理的に存在する 1 枚の紙に書かれた文章や画像を閲覧する行為と結果は同じですが、文章を生成する部分は、ユーザーのパソコンに委ねられているのです。 HTML(ホームページ)は複数の部品を組み合わせて作成されます。



このページを例にすると、HTML 文章、画像ファイル、スタイルシート、Javascript(ページ上下に設置された「戻る」リンク。 このページの前に表示していたホームページアドレスを記憶させ、「戻る」をクリックして元のページに戻れる様にする仕組み)などから構成されています。

メールの「画像および外部コンテンツ」を無効にした場合、文章だけを表示するため、このページで例えると左画像を参照しているのと一緒になります( Javascript は別に無効にする必要があります)。 この変更は、メールは十分ですがホームページでは不便ですね。おそらくほとんどの人が画像を表示させていると思います。

今回の脆弱性は、この画像の中の、ホームページで最も利用されている jpeg(ジェイペグ)形式に関係しています。 ジェイペグとは圧縮技術です。 Windows に付属するペイントで作成したビットマップ画像を、ホームページで使用する事は可能ですが、先にも説明した様に、ホームページを表示させるには、各部品をダウンロードする必要があります。ダウンロードするファイルが小さい方が速くページを表示できるので、jpeg が最も使用されています。



悪意ある jpeg が仕込まれたページを参照すると、どうなるから危険なのか? 今回発覚した脆弱性は、単刀直入に言えば左のファイルです。 Windows XP 以降の Windows に標準で組み込まれています( Windows XP SP2 は問題ありません)。 このファイルの脆弱性を突いてバッファ オーバーランを発生させる仕組みです。バッファ オーバーランとは昔の CD-R ドライブなどで聞いた事があると思いますが、 一時的にデータが保管されるメモリ領域(バッファ)に、大量のデータを流し込むとオーバランしてまう事。 何と無く分かる様な気がしません?

Microsoft ではプログラム コードに新しいデータを上書きできる、プログラム内の確認されないバッファ。 プログラム コードが新しい実行可能なコードで上書きされた場合、アタッカーの指示どおりにプログラムの動作を変更する効果があると定義しています。 この脆弱性は Windows アップデートを利用する事により修復されます。

では、Windows XP 以前の Windows には関係無いのか? パソコンに Windows だけインストールされている場合は、 Internet Explorer 6 Service Pack 1 用セキュリティ問題の修正プログラム( KB833989 )のみの適用で問題無いのかも知れません。 しかし、普通はいろいろなソフトウェアをインストールしてパソコンを使っているでしょう。 そうなると WindowsXP SP2 でも問題があるので、面倒に感じます。



脆弱性が発覚したファイルは、拡張子 dll( Dynamic Link Library ダイナミック リンク ライブラリ)です。 dll ファイルとは、プログラムが頻繁に利用する機能を集めたファイルです。 正直、この手の話は苦手なのですが、プログラマーにとって重宝するファイルです。

例えば、複数のソウトフェアが 1 つのパソコンに存在するとしましょう。 その複数のソウトフェアが共通して利用できるファイルになります。 メリットは同じファイルを利用する事でメモリ領域を節約できるため、プログラマーでは無い我々一般ユーザーにとっても、結果的に処理速度の向上で重宝しているはずです。 dllファイルは種類が沢山ありますが、脆弱性があるのは Microsoft が提供する GDI( Graphics Device Interface)+ のバージョン 5.1.3102.1355 以前のdllです。

OS である Windows に組み込まれた GDIPLUS.DLL は、Windows アップデートで対処できますが、dll ファイルの性質上、必要とされるソウトフェアをインストールした場合、OSとは別に組み込まれます。 例えば、Microsoft Office や、その他市販のソフト、またはフリーソフトなど。 GDIPLUS.DLL の提供元は Microsoft ですが再配布可能なため、パソコンにソウトフェアをインストールする時に、GDIPLUS.DLL を独自で組み込む場合があります。

上で説明した、共通作業を集約した dll ファイルである以上、複数の GDIPLUS.DLL がパソコンに存在している時点では問題ありません。 また、本来はオペレーティングシステムにより提供されるバージョンを優先的に使用する設計です。 この設計が正しく動作していれば、Windows XP 以降の OS の場合は、Windowsアップデートで対処可能です( OS が上手く管理してくれていると考えて良いと思います)。

しかし、ソフトウェアによっては、そのソフトをインストールした時に独自に組み合わせた GDIPLUS.DLL を使用するように設計されている物があります。 その中に Microsoft Office 製品があるため、Office のアップデートをする必要がありますし、Windows XP 以前の影響を受けないOSも、Office をインストールした事により、Office のアップデートをする必要があります。



ここまで来ると分かると思いますが、問題はその他の判明していないソフトです。 パソコンに組み込まれたデバイスのアプリケーションくらいは、メーカーのホームページで情報収集できますが、その他のソフトウェアとなると、自分のパソコンに何が入っているかさえ分からない人もいるでしょう。

また、分かったとしても、凄い大変な確認作業をする必要がありますね。ちなみに脆弱性がある Microsoft GDI+( GDIPLUS.DLL )は、修正されたバージョン GDIPLUS.DLL( 5.1.3102.1360 )を Microsoft の Platform SDK Redistributable: GDI+ でダウンロードできます (圧縮ファイルなので解凍する必要あり)。



この複雑な GDIPLUS.DLL の脆弱性を発見して修正するツールが Microsoft から提供されている GDI+ 検出ツール (GDI+ Detection Tool) です。

Windows アップデートバージョン5では高速インストールに含まれるツールなので、ほとんどのユーザーが実行したと思います。 Windows アップデートでツールを使用するのは1回きりなので、gdiplus_dnld.exe をデスクトップなどにダウンロードした方が良いと思います。

このツールを実行すると、Microsoft GDI+ 脆弱性の有無を教えてくれ、発見された場合は JPEG 処理 (GDI+) のセキュリティ更新プログラムでコンピュータを更新する方法 に飛ぶ設定です。 だったら最初からこのページの上から下までアップデートを実行した方が早いかも知れません。



そしてもう一つ重要な事が・・・・このツールは Microsoft 製品のみ対応です。 OS にせよ IE せよ、脆弱性が多数発覚するソフトではありますが、Microsoft 製品自体は、Windows アップデートによりセキュリティの管理が最初から簡単なのです(企業の場合で多数のパソコンを管理する場合は知りませんが)。

Office 製品にしても、Windows アップデートの上に Officeアップデート へ誘導するリンクがあり、「アップデートの確認」をクリックするだけなので簡単です。 今必要なのは、Windows プラットフォーム上にインストールされた各ソフトウェアの Microsoft GDI+ の脆弱性対処です。




次に頼ったツールは、海外の GDI Scan。 脆弱な gdiplus.dll バージョン、sxs.dll 、wsxs.dl l、mso.dll を検出してくれます。 マイクロソフト セキュリティ情報 ( MS04-028 ) : よく寄せられる質問によると、更新が必要なのは、バージョン 5.1.3102.1355 以前の Gdiplus.dll 、バージョン 10.0.6714.0 以前の Mso.dll( Office XP セキュリティ アップデート )、 バージョン 6.0.2800.1411 以前の Vgx.dllとあります。 この作業は、Windows および Office アップデートを終えた後に実行して下さい。 GDI Scan には、Graphical User Interface 版の「download GUI version (Ver. 2.1) 」と「command line version」があり、通常は前者をダウンロードします。



ダウンロードした gdiscan.exe をダブルクリックすると GDI Scan が起動するので( WindowsXP SP2 の場合は警告が表示されるので「実行」をクリックします)、あとは「Scan」ボタンをクリックするだけです。 脆弱な gdiplus.dll が発見されると、赤文字で表示され、脆弱性の可能性があるファイルは、茶色で表示されます。ここで赤文字が表示されない場合は、とりあえずひと段落して良いでしょう。

右画像では脆弱性の可能性があるファイルとして茶色で表示されていますが、 パスがサービスパック(個別のアップデートなども含む)を適用した時に作成される、アンインストールを前提としたフォルダなので問題ありません( Windows 2000 以前のバージョンでは、これらのフォルダを検索しない設定になっていますが、Windows XP には対応していない様です)。



GDI Scan は脆弱な gdiplus.dll の場所教えてくれるツールですが、さらに自動で安全な gdiplus.dll バージョンに更新してくれるツールが、 GDIPLUS.DLL更新プログラム UpdateGDI+ Ver. 0.1 です。

使い方は upgdi01.zip をダウンロードして解凍します。 UpdatGdi.exe をダブルクリックすると( Windows XP SP2 の場合は警告が表示されるので「実行」をクリックします)、「gdiplus.dll の検索と置き換えをはじめます」と表示されるので「OK」をクリックすれば稼動します。 ( Windows XP SP2 の場合は警告が表示されるので「実行」をクリックします)

ダウンロードして解凍した段階で UpdateGDI+ を実行した場合は、gdiplus.dll の検索とレポート表示になりますが、UpdatGdi.exe と同一フォルダに Microsoft が提供している安全な gdiplus.dll 5.1.3102.1360 (xpsp2.040109-1800) を設置する事により、自動で置き換えてくれます。



しかし・・・これっていわゆる、「スタート」→「検索」→「ファイルやフォルダ」で「ファイルとフォルダ全て」を選択して、「gdiplus.dll」を片っ端から検索して gdiplus.dll 5.1.3102.1360 ( xpsp2.040109-1800 ) に手動で置き換えてしまう行為に匹敵します。 サードパーティが配布したdllファイルを置き換えてしまって、動作的に問題はないのだろうか? サードパーティ製ソフトウェアのプログラム自体を修正しないでいいのだろうか?

プログラムを全く知らない管理人にはかなり怖い行為です。 UpdateGDI+ の作成者が自身のページに掲載されていますが、「マイクロソフトがこのように更新するべきだといっているわけではありませんので、更新した結果関係するプログラムが正常に動作するかどうかは保証外」。



そこでふと思った事。このプログラムを提供していると言う事は、プログラマーである。 プログラマーがサードパーティ製の gdiplus.dll を更新してしまうソフトを配布しているという事は、更新自体にあんまり問題はなさそうであると思われます(ファイルの位置を変更しているわけでは無いし)。 勇気が沸いたので、あえてソフトを使用せずに自己責任でハードディスクに存在する gdiplus.dll を安全なバージョンに手動で上書きしてみました。

管理人のハードディスクには 4 つの gdiplus.dl lが存在して、Windows アップデートを終えた後に脆弱なdllは2つでした。上書きを実行すると恐ろしい警告が表示されましたが無視して再起動した結果、特に以上はありませんでした。 (実際にこの作業を対策案として説明しているソフトメーカーもあります。ようするに、ソフトのアップデートとして対策済の gdiplus.dll を再配布するのではなく、 ソフトを使用しているユーザーが Microsoft から対策済の gdiplus.dll をダウンロードして手動でやってくれと・・・)



念のため Microsoft が開発者向けに提供している情報、 GDI+ を利用している製品のセキュリティ対策方法についてよく寄せられる質問 (FAQ) を参照すると、対策済みの GDI+ の再配布モジュールの提供を説明しているので問題はないでしょう。

最後に、脆弱なgdiplus.dllがパソコン内に存在する自体は問題ありません。JPEG処理に脆弱なgdiplus.dllを使用するソフトだけに問題があります。 例えば、 マクロメディア製品 は JPEG イメージをプロセスする用途で GDIPLUS.DLL を使用しないので問題になりません。



この脆弱性を悪用した jpeg が仕込まれたページがあるのか無いのかは今の所不明です。 今まで通り、海外ネタが先行しているので、日本での影響も不明です(無いのかも知れない・・・・)。 遅かれ速かれワームやウイルスとして出現した場合、悪用される内容は千差万別。 が、ワームやウイルスとなった時点で、セキュリティソフトも何らかの対策に乗り出すでしょう。

ちなみに、画像関係にワームやウイルスなどを仕込まれた場合、一番困るのは男性諸君です。 男である以上、アダルトサイトの徘徊は切っても切れない性分。 今までのこの手のネタは、海外では流行したかも知れませんが、日本ではどうだろうか? と思われる仕掛けが多数ありました。しかし、画像に仕込まれた場合は最悪です。 言葉の国境を越えるのは至難ですが、むふふ画像の国境を越えるのは容易だからです。





BTOパソコン・ゲームPC・自作パソコンなら【TSUKUMO】 - 自作PCに必要なパーツ、豊富な品揃え

Copyright © 2017 MB-Support パソコン初心者のサポートページ All Rights Reserved.

管理人サイト閲覧方法プライバシーポリシー著作権/免責事項