MS04-003/832483 |
MDACの未チェック・バッファの脆弱性により、コンピュータの制御を取得されてしまう危険性 |
(MDAC機能のバッファ オーバーランにより、コードが実行される) |
|
|
対応策: 早期に修正プログラムの適用作業を開始してください。 |
|
概要 |
MDAC(Microsoft Data Access Components)に未チェック・バッファの脆弱性が存在します。この脆弱性により、MDACを使用するプログラムを実行しているユーザー・アカウントの権限で、任意のプログラムが攻撃者によって実行される危険性があります。そのプログラムがローカル・システムの権限で実行されている場合、攻撃者によってシステムが破壊される可能性があります。
MDACは、Windows 2000、SQL Server 2000、Windows XP、Windows Server 2003の一部としてインストールされるほか、マイクロソフトのUniversal
Data Access関連ダウンロード・ページから単体版を入手してインストールすることも可能です。OSの一部としてデフォルトでインストールされていることから、ほとんどのコンピュータが脆弱性の影響を受けます。
・Universal Data Access関連ダウンロード・ページ:
http://www.microsoft.com/japan/msdn/data/download.asp
ただし今回の脆弱性を攻撃するには、攻撃対象とするコンピュータと同一のサブネット上でSQL Serverをシミュレートする必要があり、インターネットなど外部ネットワークから直接攻撃される可能性は低いものと思われます。これは、ネットワーク内でSQL
ServerやMDACを実行しているコンピュータのリストをブロードキャスト通信で一覧する処理部分に脆弱性が存在するためです。しかし、ほかの脆弱性と組み合わせて攻撃するワームにより、社内からの攻撃に悪用される可能性も考えられます。なるべく早期に修正プログラムの適用作業を開始してください。
|
|
対象プラットフォーム |
修正プログラムを適用するには、以下の対象プラットフォームに示されているサービスパックの適用が必要になります。
影響を受けるソフトウェア |
対象プラットフォーム |
Microsoft Data Access Components 2.5 |
MDAC 2.5 SP2/SP3(Windows 2000 SP2/SP3/SP4、Windows NT 4.0+MDAC
2.5 SP2/SP3) |
Microsoft Data Access Components 2.6 |
MDAC 2.6 SP2(Windows 2000/NT 4.0+SQL Server 2000 SP2など) |
Microsoft Data Access Components 2.7 |
MDAC 2.7/2.7 Refresh/2.7 SP1/2.7 SP1 Refresh(Windows 2000/NT
4.0+SQL Server 2000 SP3/SP3a、Windows XP SP未適用/SP1/SP1aなど) |
Microsoft Data Access Components 2.8 |
MDAC 2.8(Windows Server 2003など) |
(注意) 「対象プラットフォーム」に含まれていなくても、単体で配布されているMDAC
2.5〜2.8をインストールしている場合は、この脆弱性の影響を受けるため、修正プログラムの適用が必要となります。 |
|
詳細情報 |
MDACは、SQL ServerやMicrosoft Access、XMLなどのデータソースに対して共通の方法でアクセスする機能を提供し、プログラムによるデータベース・アクセスを支援します。
ネットワーク上のクライアントは、SQL Serverを実行しているコンピュータなどのリスト(一覧)を参照する際に、ネットワーク上のすべてのデバイスに対してブロードキャスト・リクエストを送信します。SQL
Serverなどは、このブロードキャスト・リクエストに対して、UDPポート1434番を使って応答します。MDACは、その応答を受信し、接続可能なSQL Serverなどを列挙します。
ところがMDACの応答処理に未チェック・バッファが存在するため、UDPポート1434番に対する不正なUDPパケットをMDACが受信すると、バッファ・オーバーランが発生します。これにより、MDACを使用するプログラムを実行しているユーザー・アカウントの権限で、任意のプログラムが実行される危険性があります。ただし、攻撃者がこの攻撃を悪用するには、ネットワーク上にSQL
Serverの動作をシミュレートするサーバを設置し、MDACのリクエストに対して不正なUDPパケットを返信しなければなりません。このような攻撃をインターネットから直接実行することは困難だと思われます。
|
|
DA Lab:HotFixテスティング・チームからのコメント |
修正プログラムは、UpdateEXPERTが管理対象とするすべての適用対象プラットフォームにおいて適用テストを通過しました。
■sqlsrv32.dllの言語属性
MS04-003に含まれるMS03-033の修正プログラムでは、MDAC 2.5 SP2/SP3用のsqlsrv32.dll(ODBCドライバ)の言語属性が「英語(米国)」に変更されていたことから、修正プログラムの適用によって、SQL
ServerへODBCで接続したときに表示されるメッセージが、日本語表記から英語表記になってしまうという不具合がありました。MS04-003では、MDAC
2.5 SP2/SP3用のsqlsrv32.dllの言語属性が「日本語」に戻り、この不具合も解消されました。なお、MDAC 2.6以降のsqlsrv32.dllの言語属性は「英語(米国)」など「日本語」以外となっていますが、sqlsrv32.dllの言語属性とは無関係に日本語のメッセージが表示されます。
■サービスパックの適用で修正プログラムの再適用が必要
MDACは、Windows 2000/XPやSQL Server 2000のサービスパックにも含まれています。そのため、サービスパックの適用によってMDACのバージョンが更新されることがあります。サービスパックの適用によってMDACのバージョンが変更になった場合(単体版のインストールを含む)、MS04-003の修正プログラムの再適用が必要となります。なお、各サービスパックに含まれるMDACのバージョンは以下のようになっています。
OS/SQL Server |
サービスパック |
含まれるMDACのバージョン |
Windows 2000 |
SP1 |
MDAC 2.5 SP1 |
SP2 |
MDAC 2.5 SP2 |
SP3/SP4 |
MDAC 2.5 SP3 |
Windows XP |
SP未適用 |
MDAC 2.7 |
SP1/SP1a |
MDAC 2.7 SP1 |
SQL Server 2000 |
SP1 |
MDAC 2.6 SP1 |
SP2 |
MDAC 2.6 SP2 |
SP3/SP3a |
MDAC 2.7 SP1 |
[お詫び]2004/01/15日付配信のHotFix
Alertにおいて、SQL Server 2000 SP3/SP3aに含まれるMDACのバージョンをMDAC 2.7 SP3としておりましたが、SP1の誤りです。お詫びして訂正させていただきます。
■MDACのバージョンを調べる方法
MDACは、単体で配布されているほか、各種アプリケーションなどにも添付されることがあります。そのため、コンピュータにインストールされているMDACのバージョンを調べ、修正プログラムの対象であるかどうかを知る必要があります。そのためには、マイクロソフトが提供している「Component
Checker」を利用します。以下の手順でインストールならびにバージョン・チェックが可能です。なお修正プログラムの対象となっていないMDAC 2.5 SP未適用/SP1においても、脆弱性が存在する可能性があります。対象外のMDACを利用している場合は、まずMDACを更新してから修正プログラムを適用してください。
- 以下のダウンロード・ページより、cc_pkg.exeをダウンロードし、実行します。
・Component Checkerのダウンロード・ページ:
http://www.microsoft.com/japan/msdn/data/download.asp#cck
- 自動解凍形式のファイルなので、インストール先のフォルダを指定します(デフォルトは、C:\ComponentChecker)。解凍先のフォルダにあるcc.exeがComponent
Checkerの実行ファイルです。
- cc.exeを実行し、解析タイプ(Analysis Type)を選択します。 通常は、「Perform analysis of your machine
and automatically determine the release version.」を選び、[OK]ボタンをクリックします。
- 解析が開始されます。結果が表示されるまで数秒かかります。結果は、ダイアログ・ボックスで、「The following product releases
were matched: MDAC 2.7 SP1」などと表示されます。
なお、修正プログラムは、対象とするMDACのバージョンを自動的に検出し、適用を行います。バージョンごとに修正プログラムをダウンロードする必要はありません。
|
|
追加情報(2004/01/28) |
Windows UpdateでMS04-003の修正プログラムが何度も表示される不具合 |
情報ソース |
マイクロソフト/セキュリティ関連掲示板 |
不具合の内容 |
Windows Updateサイトの検出ミス |
発生条件 |
MDAC 2.5 SP2未満/MDAC 2.6/2.6 SP1の各バージョン |
報告日 |
2004年1月23日 |
|
マイクロソフトは、古いMDAC(Microsoft Data Access Components)がインストールされたコンピュータにてWindows
Updateを実行すると、「TechNetセキュリティ情報:MS04-003(MDAC機能のバッファ オーバーランにより、コードが実行される)」の修正プログラムを適用しても、未適用として再度表示される不具合があることをトラブル・メンテナンス速報で明らかにしました。また、セキュリティ関連の掲示板において、MBSA(Microsoft
Baseline Security Analyzer:修正プログラムの適用状況などをチェックするツール)やSoftware Update Services(SUS)でも同様の問題が発生する、と報告されています。
・マイクロソフトのトラブル・メンテナンス速報:
http://www.microsoft.com/japan/support/sokuho/default.asp
この不具合は、「TechNetセキュリティ情報:MS04-003」がMDAC 2.5 SP2(MDAC 2.52)未満およびMDAC 2.6(MDAC
2.60)/MDAC 2.6 SP1(MDAC 2.61)のバージョンのMDACをサポートしていないにもかかわらず、Windows Updateに「TechNetセキュリティ情報:MS04-003」の修正プログラムが表示されてしまうために発生します。「TechNetセキュリティ情報:MS04-003」の修正プログラムはMDAC
2.5 SP1などをサポートしていないため、これらのバージョンがインストールされている環境で修正プログラムを実行しても、実際には修正プログラムは適用されません。そのため、再度Windows
Updateに接続すると、修正プログラムの適用を促されることになります。
この不具合は、「TechNetセキュリティ情報:MS04-003」の修正プログラムがサポート対象とするMDAC 2.5 SP2/2.5 SP3/2.6
SP2/2.7/2.7 SP1/2.7 SP 1 Refresh(2.7 SP1a)/2.8のいずれかにバージョンアップすることで解消可能です。
|
不具合の対象:
MDAC 2.5 SP2未満
MDAC 2.6/2.6 SP1 |
詳細:
MDACのバージョンが古いために、修正プログラムが適用できないという不具合が発生します。マイクロソフトでは、MDAC 2.5 SP2/2.5 SP3/2.6
SP2/2.7/2.7 SP1/2.7 SP1 Refresh(2.7 SP1a)/2.8の各バージョンのみをサポート対象としており、これ以外のバージョンについては修正プログラムが提供されていません。例えばMDAC
2.5 SP1などは、「TechNetセキュリティ情報:MS03-033(MDAC機能の未チェックのバッファにより、システムが侵害される)」でもサポート対象外となっており、セキュリティ的にも脆弱なバージョンとなっています。
コンピュータにインストールされているMDACのバージョンを調べる方法は、「HotFix Alert:MS04-003(MDACの未チェック・バッファの脆弱性により、コンピュータの制御を取得されてしまう危険性)」の「DA
Lab:HotFixテスティング・チームからのコメント」を参照してください。また、「サポート技術情報:835173(MDACセキュリティ修正モジュールの適用に関連する補足事項)」も参照してください。
・サポート技術情報 835173(MDACセキュリティ修正モジュールの適用に関連する補足事項):
http://support.microsoft.com/default.aspx?kbid=835173
なおDA Labでは、比較的新しく、過去の不具合の多くが修正済みであるMDAC 2.7 SP1 RefreshまたはMDAC 2.8にバージョンアップすることをお勧めします。ただしMDACをバージョンアップすると、MDACを利用してデータベースにアクセスしているアプリケーションが影響を受ける可能性があります。バージョンアップの際には事前にアプリケーションの動作検証を行ってください。MDACは、以下のURLよりダウンロード可能です。
・Universal Data Access関連ダウンロード・ページ:
http://www.microsoft.com/japan/msdn/data/download.asp
|
|
|
適用されるファイル情報 |
以下のファイルにパッチが適用されます。障害の発生が懸念される場合は、これらのファイルのバックアップを取ってください。
ファイル名 |
日付 |
バージョン |
サイズ |
JPN_Q832483_MDAC_x86.EXE |
2003/12/16 |
6.0.2600.0 |
2,096,312
|
ファイル名 |
日付 |
バージョン |
サイズ |
機能 |
展開ファイル (MDAC
2.5 SP2) |
%SystemRoot%\system32\ |
odbc32.dll |
2003/10/28 |
3.520.6101.0 |
212,992
|
Microsoft Data Access - ODBC Driver Manager |
odbcbcp.dll |
2003/10/28 |
3.70.11.46 |
24,848
|
Microsoft BCP for ODBC |
odbccp32.dll |
2003/10/27 |
3.520.6101.0 |
102,672
|
Microsoft Data Access - ODBC Installer |
sqlsrv32.dll |
2003/11/10 |
3.70.11.46 |
524,560
|
Microsoft SQL Server ODBC Driver |
展開ファイル(MDAC
2.5 SP3) |
%SystemRoot%\system32\ |
odbc32.dll |
2003/10/28 |
3.520.6301.0 |
212,992
|
Microsoft Data Access - ODBC Driver Manager |
odbcbcp.dll |
2003/10/28 |
3.70.11.46 |
24,848
|
Microsoft BCP for ODBC |
odbccp32.dll |
2003/10/27 |
3.520.6301.0 |
102,672
|
Microsoft Data Access - ODBC Installer |
sqlsrv32.dll |
2003/11/10 |
3.70.11.46 |
524,560
|
Microsoft SQL Server ODBC Driver |
展開ファイル(MDAC
2.6 SP2) |
%SystemRoot%\system32\ |
dbnetlib.dll |
2003/10/28 |
2000.80.747.0 |
86,588
|
Winsock Oriented Net DLL for SQL Clients |
odbc32.dll |
2003/10/28 |
3.520.7502.0 |
417,792
|
Microsoft Data Access - ODBC Driver Manager |
odbcbcp.dll |
2003/10/28 |
2000.80.747.0 |
29,252
|
Microsoft BCP for ODBC |
odbccp32.dll |
2003/10/28 |
3.520.7502.0 |
217,088
|
Microsoft Data Access - ODBC Installer |
sqlsrv32.dll |
2003/10/28 |
2000.80.747.0 |
455,236
|
Microsoft SQL Server ODBC Driver |
|
%ProgramFiles%\Common
Files\System\Ole DB\ |
sqloledb.dll |
2003/10/28 |
2000.80.747.0 |
479,800
|
Microsoft OLE DB Provider for SQL Server |
展開ファイル(MDAC
2.7) |
%SystemRoot%\system32\ |
dbnetlib.dll |
2003/10/27 |
2000.81.9002.0 |
61,440
|
Winsock Oriented Net DLL for SQL Clients |
odbc32.dll |
2003/10/27 |
3.520.9002.0 |
204,800
|
Microsoft Data Access - ODBC Driver Manager |
odbcbcp.dll |
2003/10/27 |
2000.81.9002.0 |
24,576
|
Microsoft BCP for ODBC |
odbccp32.dll |
2003/10/27 |
3.520.9002.0 |
94,208
|
Microsoft Data Access - ODBC Installer |
sqlsrv32.dll |
2003/10/27 |
2000.81.9002.0 |
356,352
|
Microsoft SQL Server ODBC Driver |
|
%ProgramFiles%\Common
Files\System\Ole DB\ |
oledb32.dll |
2003/10/27 |
2.70.9002.0 |
413,696
|
Microsoft Data Access - OLE DB Core Services |
sqloledb.dll |
2003/10/27 |
2000.81.9002.0 |
450,560
|
Microsoft OLE DB Provider for SQL Server |
展開ファイル(MDAC
2.7 SP1) |
%SystemRoot%\system32\ |
dbnetlib.dll |
2003/10/27 |
2000.81.9042.0 |
61,440
|
Winsock Oriented Net DLL for SQL Clients |
msdart.dll |
2003/10/27 |
2.71.9042.0 |
126,976
|
Microsoft Data Access - OLE DB Runtime Routines |
odbc32.dll |
2003/10/27 |
3.520.9042.0 |
204,800
|
Microsoft Data Access - ODBC Driver Manager |
odbcbcp.dll |
2003/10/27 |
2000.81.9042.0 |
24,576
|
Microsoft BCP for ODBC |
odbccp32.dll |
2003/10/27 |
3.520.9042.0 |
98,304
|
Microsoft Data Access - ODBC Installer |
sqlsrv32.dll |
2003/10/27 |
2000.81.9042.0 |
385,024
|
Microsoft SQL Server ODBC Driver |
|
%ProgramFiles%\Common
Files\System\Ole DB\ |
oledb32.dll |
2003/10/27 |
2.71.9042.0 |
417,792
|
Microsoft Data Access - OLE DB Core Services |
sqloledb.dll |
2003/10/27 |
2000.81.9042.0 |
471,040
|
Microsoft OLE DB Provider for SQL Server |
展開ファイル(MDAC
2.8) |
%SystemRoot%\system32\ |
odbcbcp.dll |
2003/12/12 |
2000.85.1025.0 |
24,576
|
Microsoft BCP for ODBC |
SQLSRV32.dll |
2003/11/18 |
2000.85.1025.0 |
401,408
|
Microsoft SQL Server ODBC Driver |
*JPN_Q832483_MDAC_x86.EXEには、dbnetlib_262.dll、dbnetlib_270.dllといったようにMDACのバージョンが付加されたファイル名でアーカイブされています。これらのファイルは、インストール時にファイル名が変更されます。表ではインストール後のファイル名を示しています。
|
|
確認方法 |
以下のレジストリ・キーにある値を確認してください。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\DataAccess\Q832483
・MDAC 2.5 SP2:
上記レジストリ・キーの値「IsInstalled」が「1」で、かつ値「ProductVersion」が「2.52.*.*」
・MDAC 2.5 SP3:
上記レジストリ・キーの値「IsInstalled」が「1」で、かつ値「ProductVersion」が「2.53.*.*」
・MDAC 2.6 SP2:
上記レジストリ・キーの値「IsInstalled」が「1」で、かつ値「ProductVersion」が「2.62.*.*」
・MDAC 2.7:
上記レジストリ・キーの値「IsInstalled」が「1」で、かつ値「ProductVersion」が「2.70.*.*」
・MDAC 2.7 SP1:
上記レジストリ・キーの値「IsInstalled」が「1」で、かつ値「ProductVersion」が「2.71.*.*」
・MDAC 2.8:
上記レジストリ・キーの値「IsInstalled」が「1」で、かつ値「ProductVersion」が「2.80.*.*」
|
|
修正プログラム |
手動で修正プログラムをインストールする場合は、以下のダウンロード先のリストで[日本語]を選択してください。
http://www.microsoft.com/downloads/details.aspx?FamilyId=39472EE8-C14A-47B4-BFCC-87988E062D91&displaylang=ja
|
|
参考情報 |
何らかの理由から、直ちに修正プログラムを適用できない場合には、以下に示す方法で問題を回避できます。ただしこの回避策は、脆弱性を根本的に解決するものではありません。
・UDPポート1434番のインバウンド・トラフィックの受信を遮断する
Windows 2000では、IPSecのフィルタ・ルールを利用することで、UDPポート1434番のインバウンド・トラフィックの受信を遮断することが可能です。これにより、ブロードキャスト・リクエストに対する応答を受信しなくなることから、脆弱性が回避できます。
- [管理ツール]−[サービス]で、「IPSEC Policy Agent」が有効になっており、開始されていることを確認します。デフォルトでは、自動で開始されています。
- マイクロソフトWebサイトにアクセスし、Ipsecpol.exeをダウンロードしてインストールします。 http://www.microsoft.com/windows2000/techinfo/reskit/tools/existing/
ipsecpol-o.asp
- [スタート]−[ファイル名を指定して実行]メニューを選択し、「cmd」と入力してコマンド プロンプトを起動します。
- Ipsecpol.exeをインストールしたフォルダ(デフォルトでは、%ProgramFiles%\Resource Kit\)に移動し、トラフィックを遮断する静的なポリシーを作成するため、以下のコンドを実行します。
C:\Program Files\Resource Kit> ipsecpol -w
REG -p "Block UDP 1434 Filter" -r "Block Inbound UDP 1434 Rule" -f *=0:1434:UDP
-n BLOCK -x |
これで、UDPポート1434番のインバウンド・トラフィックの受信が遮断されます。Ipsecpol.exeについては、「サポート技術情報:813878(IPSecを使用して特定のネットワーク
プロトコルとポートをブロックする方法)」を参照してください。
・サポート技術情報 813878(IPSecを使用して特定のネットワーク プロトコルとポートをブロックする方法):
http://support.microsoft.com/default.aspx?scid=kb;ja;813878
なお、この回避策を実行すると、SQLクライアントが、SQLブロードキャスト・リクエストを利用できなくなります。例えば、SQL Enterprise
Managerなどのツールは、ブロードキャスト・リクエストを使用して、サブネット上のすべてのSQL Serverインスタンスを列挙しますが、回避策の実行後は、このインスタンスに列挙されなくなる可能性があります。またシステムの起動中は、DPポート1434番のインバウンド・トラフィックの受信ブロックが働きません。そのためウイルスやワームによる攻撃に対して、脆弱になる期間が発生します。
|
|
UpdateEXPERTによる予想適用時間 |
修正プログラム名 |
50台 |
100台 |
250台 |
500台 |
JPN_Q832483_MDAC_x86.EXE |
19分 |
27分 |
53分 |
1時間36分 |
この表は、1コンソールのUpdateEXPERTで、今回の修正プログラムを適用するのにかかる時間を概算したものです。ネットワーク環境や適用するコンピュータの性能などによって適用時間は異なります。あくまでも目安としてご利用ください。
|
|
UpdateEXPERT上の表示 |
・MDAC 2.5 SP2:
[展開ビュー]−[OS]タブに「名前:JPN_Q832483_MDAC(2.5SP2)_x86.EXE」で登録
・MDAC 2.5 SP3:
[展開ビュー]−[OS]タブに「名前:JPN_Q832483_MDAC(2.5SP3)_x86.EXE」で登録
・MDAC 2.6 SP2:
[展開ビュー]−[OS]タブに「名前:JPN_Q832483_MDAC(2.6SP2)_x86.EXE」で登録
・MDAC 2.7:
[展開ビュー]−[OS]タブに「名前:JPN_Q832483_MDAC(2.7)_x86.EXE」で登録
・MDAC 2.7 SP1:
[展開ビュー]−[OS]タブに「名前:JPN_Q832483_MDAC(2.7SP1)_x86.EXE」で登録
・MDAC 2.8:
[展開ビュー]−[OS]タブに「名前:JPN_Q832483_MDAC(2.8)_x86.EXE」で登録
|
|