セキュリティ・ソリューションを手がけるキプロス共和国の企業Agnitumが,「米Microsoftはカーネル・パッチ保護機能(カーネルに対するサード・パーティ製パッチの適用などを制限する機能)で競合製品を締め出している」と主張している。同社によると,「ライバル・メーカーはハッカーと同じ手法を使うしかない」という。

 AgnitumはWebサイトに掲載した記事で,Microsoftが設計したカーネル・パッチ保護機能のせいで「サード・パーティのセキュリティ・ソフトウエア企業は,自社製ソフトウエアをWindowsパソコンにインストールすることや,そのソフトウエアをメンテナンスすることが非常に難しくなる」と書いた。「状況によっては,・パッチ保護機能がサード・パーティ製セキュリティ・ソフトウエアのインストールを阻む可能性すらある」(Agnitum)

 彼らの主張によれば,複数のセキュリティ・ソフトウエア・ベンダーは,Windowsシステムを防御するために,OSそのものをコントロールできるよう,カーネルをフックしているのが現状なのだという。Agnitumは「システムを防御するために,開発者は時にカーネルに対してパッチを施すことがある」と述べている。これらのパッチは,Windowsシステムの「Service Dispatch Table」内でサービス番号を変更し,サード・パーティ製ソフトウエアのコードを指すようにする。その結果,(サービス呼び出し時に)サード・パーティのコードが呼び出され,本来のカーネル・コードの代わりに実行される。

 しかし,OSの低レベル層にフックを設けるというこの方法は,「Windows Vista」やサーバーOS「Longhorn Server」(開発コード名)に標準搭載される新しいカーネル・パッチ保護機能によって使えなくなる。既にカーネル・パッチ保護機能は,64ビット版の「Windows Server 2003 Service Pack 1」および「Windows XP」に導入されている。

 Microsoftの資料によると,システム全体や,アプリケーションまたはドライバごとにカーネル・パッチ保護機能を無効化する方法は存在しないそうだ。無効化するには,Windowsでデバッガを使うしかない。Microsoftは,アプリケーションで必要な機能を使う際には,「開発者は公開済みのアプリケーション・プログラミング・インターフェース(API)を利用する」と想定している。ところがAgnitumは,「カーネル・パッチ保護が有効になっていると,Microsoftの公開したAPIでは低レベルのシステム動作を動的に先回りして制御できない」と主張した。

 AgnitumはWebサイトに掲載した記事の最後で,以下のように指摘した。「Microsoftが提案した(公開済みAPIを使うという)解決策だと,これまでアンチウイルス・ソフトウエアを使って検出/除去できていたルートキットがWindowsをクラッシュさせるようになる。カーネル・パッチ保護機能との互換性のないセキュリティ・ソフトウエアは,インストール後に同じ現象を起こす。Microsoftによるこの対応は,無理やりユーザーをMicrosoftに依存させ,特にWindowsセキュリティについてはMicrosoftだけに依存させることが目的だろう。サード・パーティのセキュリティ製品は,過去の経験から判断するとMicrosoft製品よりも安定性が高く,より強固な保護機能を提供してきた傾向が強い。こうした製品を使うという選択肢を,Microsoftはユーザーから奪い取る」

 Microsoftのカーネル・パッチ保護機能に関するFAQにはこうある。「Windowsにカーネル・パッチ保護機能を組み込む主な意図は,Windowsカーネルの整合性を保護することである。これにより,Windowsの全体的な信頼性,性能,安全性が高まる。カーネルの整合性を保つことは,悪意のある攻撃や,パッチ適用によって生ずる意図しない信頼性面の問題からシステム全体を守るための,最も基本的な手段だ。しかし万能薬ではない」

 「ハッカーたちは,既にカーネル・パッチ保護機能の回避策を知っている。合法的なソフトウエア開発者は,これまでカーネルにパッチを適用していた自分たちのソフトウエアの機能を落とさないようにするために,ハッカーと同じ手口を使うしかないかもしれない」(Agnitum)