SPN通信 2010年12月24日

修正されたタスクスケジューラの脆弱性


みなさん、こんにちは。 SPNの塩月です。

今回からスタートした「SPN通信」は、みなさんにホットでクールなセキュリティ情報をお届けするものです。これから1週間に一回程度のペースで配信していければと考えておりますので、よろしくお付き合いくださいますよう、お願いいたします。

さて、先週の水曜日にマイクロソフトから月例のセキュリティ更新プログラム (セキュリティパッチ)が提供されましたが、みなさんはもうすでに適用されましたでしょうか? 今月はセキュリティ情報の数が17、修正する脆弱性の数は40と、かなり大規模なセキュリティ更新になっています。今回は、これら12月のセキュリティ更新プログラムで修正された脆弱性の一つである「タスクスケジューラの脆弱性(MS10-092)」についてお話したいと思います。

  マイクロソフト セキュリティ情報 MS10-092
  タスクスケジューラの脆弱性により、特権が昇格される(2305420)
  http://www.microsoft.com/japan/technet/security/bulletin/MS10-092.mspx
タスクスケジューラとは、あらかじめ定めたスケジュールやイベント発生をトリガーとして、プログラムの起動やメール送信などを行うWindowsの基本機能です。例えば「週に一回、決められた時刻にデータバックアッププログラムを起動する」といった目的で使用されます。今回修正された脆弱性は、スケジュールされたタスクを不正に書き換えることにより、一般ユーザがシステム権限等の高い権限を奪うことができるというものです。いわゆる権限昇格の脆弱性ですね。Vista、7、および2008といったWindows OSが対象ですので、XPや2003は影響を受けません。またこの脆弱性は、Stuxnetワームが感染後、システム 権限に昇格する際に利用していたとされており、攻撃用のプログラムもパッチが提供される前からインターネット上に公開されていました。
  Stuxnet under the Microscope
  http://www.eset.com/resources/white-papers/Stuxnet_Under_the_Microscope.pdf
上記文書によると、この脆弱性を利用した攻撃手法の考え方自体は極めてシンプルです。Vista以降、タスクスケジューラでタスクを登録すると、タスクの設定情報を記述したXMLファイルが作成されるのですが、その中にはタスクを実行するユーザ名も記述されています。そこで一般ユーザでタスクを登録し、そのXMLファイル中のユーザ名(自分のユーザ名)をLocalSystem(システム権限のユーザ名)に変更することにより、システム権限でプログラムを実行させるというのが基本的なシナリオです。

当然、このような書き換えが自由にできてしまうと問題ですので、タスクスケジューラはXMLファイルの整合性を検査する仕組みを持っています。ただし、整合性検査で使用していたのがCRC32によるチェックサムであったことが今回の脆弱性の原因でした。CRC32はその性質上、同じチェックサムを持つ元データを作成することが容易にできるため、偶発的なファイルの損壊を検出するには有効であっても意図的な改ざんを検出するには適していないと言われています。つまり、オリジナルのXMLファイルのCRC32チェックサムを計算し、ユーザ名を書き換えた後に、同じチェックサムになるようにXMLファイルの末尾に適当なコメント行を挿入することで、タスクスケジューラの整合性検査をくぐりぬけることが可能だったのです。

12月のセキュリティ更新では、この他にもすでに攻撃手法や攻撃プログラムが公開されている危険度の高い脆弱性が修正されています。年末のあわただしい時期とは思いますが、お休みに入る前にぜひともお使いのWindowsに対するセキュリティ更新の適用を行っていただければと思います。

それではみなさん、またお会いしましょう。

合同会社セキュリティ・プロフェッショナルズ・ネットワーク
代表社員 塩月誠人


※ 本サイトに掲載されている社名、団体名、製品名等は、それぞれ各社・各団体の商標または登録商標です。

Copyright (C) 2010 Security Professionals Network Inc. All Rights Reserved.