ニュース
2004/02/20 11:50:00 更新


Windows XPのカーネルに問題?

Windows XPについて、[プログラムのデバッグ] の権限を持っているユーザーが、任意のコードをカーネルモードで実行できてしまうという問題が指摘されている。

 Windows XPのカーネルについて、[プログラムのデバッグ] のユーザー権利(SeDebugPrivilege)を持っているユーザー(通常は管理者)ならば、任意のコードをカーネルモードで実行できてしまう、という問題が指摘されている。SeDebugPrivilege権限の性質を考えれば、これは脆弱性ではないという意見がある一方で、攻撃者による悪用を容易にしてしまうものだという見方もある。

 この問題を報告した“first last”と名乗る人物によると、Windows XPカーネルのデバッグに関連するAPIに問題が存在する。具体的には、ZwSystemDebugControl()が呼び出すNtSystemDebugControl()ファンクションを通じて書き込みを行うことにより、MSRレジスタを書き換えてプロセッサを完全にコントロールしたり、カーネルメモリを含むあらゆるメモリアドレスに対する読み出し/書き込みを行えるなど、ハードウェアに近いレベルで悪用が可能という。この結果、理論的には、カーネルが行えることならば何でもできてしまうことになる。

 報告者は、Windows XP Service Pack1に最新のパッチを適用した状態でこの問題を確認したとしており、Windows Server 2003にも同様の問題が存在する可能性があると指摘。実証コードも公開している。

 ただこの問題を悪用するには、攻撃者が、通常はAdministrator(管理者)に割り当てられている [プログラムのデバッグ] のユーザー権利(SeDebugPrivilege)を持っていなければならない。このため、実際にはそれほど深刻な問題とはならないという。ちなみにこの報告者によると、Microsoft側は、[プログラムのデバッグ] 権限がある以上は一連の挙動を認めており、特に修正は行わない方針という。

 いずれにしてもこの問題を機に、ユーザーに与えられているアカウント権限を確認し、「不必要なユーザーにはAdministrator権限(SeDebugPrivilege権限を含む)を与えない」「面倒ではあるが、普段はAdministrator以外のアカウントでログインする」といった、アカウントルールの見直しを検討するのが有用だろう。

[ITmedia]

Copyright © ITmedia, Inc. All Rights Reserved.