カーネルパッチ保護

カーネルパッチ保護(KPP)は、通称PatchGuardとも呼ばれ、 Microsoft Windowsの64ビット(x64)版におけるカーネルへのパッチ適用を防止する機能です。2005年にWindows VistaおよびWindows Server 2003 Service Pack 1のx64版で初めて導入されました。[ 1 ]
「カーネルへのパッチ適用」とは、Windowsオペレーティングシステムの中心的なコンポーネント、つまりカーネルに対するサポートされていない変更を指します。Microsoftによると、このような変更はシステムのセキュリティ、信頼性、およびパフォーマンスを大幅に低下させる可能性があるため、Microsoftはこれまでサポートしてきませんでした。[ 1 ] Microsoftは推奨していませんが、 x86版Windowsでもカーネルへのパッチ適用は可能です。しかし、x64版Windowsでは、Microsoftはカーネルへのパッチ適用に対して追加の保護と技術的な障壁を実装することを選択しました。
32ビット(x86)版Windowsではカーネルパッチ適用が可能なため、多くのウイルス対策ソフトウェア開発者は、ウイルス対策やその他のセキュリティサービスを実装するためにカーネルパッチを利用しています。しかし、これらの手法はx64版Windowsでは機能しません。そのため、カーネルパッチ保護の登場により、ウイルス対策ソフトウェアメーカーはカーネルパッチ適用手法を使用しないようにソフトウェアを再設計する必要に迫られました。
しかし、Windows カーネルの設計上、カーネル パッチ保護ではカーネル パッチの適用を完全には防ぐことができません。[ 2 ] [ 3 ]このため、KPP は不完全な防御であり、悪意のあるソフトウェアの作成者が防御を回避する方法を簡単に見つけてしまうため、ウイルス対策ベンダーに生じる問題がメリットを上回るという批判が出ています。[ 4 ] [ 5 ]それでも、カーネル パッチ保護では、正規のソフトウェアがサポートされていない方法でカーネルにパッチを適用することで生じるシステムの安定性、信頼性、パフォーマンスの問題を防ぐことができます。
技術概要
Windowsカーネルは、デバイスドライバがカーネル自体と同じ権限レベルを持つように設計されています。 [ 6 ]デバイスドライバは、カーネル内のコアシステム構造を変更したりパッチを適用したりしないことが想定されています。 [ 1 ]しかし、x86版のWindowsでは、この想定は強制されていません。その結果、一部のx86ソフトウェア、特に特定のセキュリティプログラムやウイルス対策プログラムは、コアカーネル構造を変更するドライバをロードすることで必要なタスクを実行するように設計されています。[ 6 ] [ 7 ]
x64版Windowsでは、Microsoftはドライバーが変更できる構造体と変更できない構造体に制限を設け始めました。カーネルパッチ保護は、これらの制限を強制する技術です。カーネル内の保護されたシステム構造体が変更されていないことを定期的に確認することで機能します。変更が検出されると、Windowsはバグチェックを開始し、システムをシャットダウンします。 [ 6 ] [ 8 ]シャットダウン時にはブルースクリーンが表示され、再起動されます。対応するバグチェック番号は0x109、バグチェックコードはCRITICAL_STRUCTURE_CORRUPTIONです。禁止されている変更には以下が含まれます。[ 8 ]
- システムサービス記述子テーブルの変更
- 割り込み記述子テーブルの変更
- グローバル記述子テーブルの変更
- カーネルによって割り当てられていないカーネルスタックの使用
- カーネル自体に含まれるコードの変更またはパッチ適用[ 8 ]、またはHALまたはNDISカーネルライブラリ[ 9 ]
カーネルパッチ保護は、デバイスドライバによるカーネルの改変のみを防御します。あるデバイスドライバが別のデバイスドライバにパッチを当てることに対する防御は提供しません。[ 10 ]
結局のところ、デバイスドライバはカーネル自体と同じ権限レベルを持つため、ドライバがカーネルパッチ保護をバイパスしてカーネルにパッチを適用することを完全に防ぐことは不可能です。[ 2 ]しかし、KPPはカーネルパッチの適用を成功させる上で大きな障害となります。高度に難読化されたコードと誤解を招くシンボル名を使用することで、KPPは「隠蔽によるセキュリティ」を採用し、バイパスの試みを阻止します。[ 6 ] [ 11 ] KPPは定期的に更新されるため、「動く標的」とも言えます。一時的に有効だったバイパス手法も、次回の更新で無効になる可能性が高いからです。2005年の開発以来、マイクロソフトはこれまでにKPPの2つのメジャーアップデートをリリースしており、いずれも以前のバージョンで既知のバイパス手法を無効化するように設計されています。[ 6 ] [ 12 ] [ 13 ]
利点
カーネルへのパッチ適用は、多くの悪影響を引き起こす可能性があるため、マイクロソフトではこれまでサポートされていません。[ 7 ]カーネルパッチ保護は、次のような悪影響から保護します。
- カーネルに重大なエラーがあります。[ 14 ]
- 複数のプログラムがカーネルの同じ部分にパッチを適用しようとすることで生じる信頼性の問題。[ 15 ]
- システムセキュリティの侵害。[ 6 ]
- ルートキットはカーネルアクセスを利用してオペレーティングシステムに埋め込まれるため、削除がほぼ不可能になります。[ 14 ]
Microsoft のカーネル パッチ保護に関する FAQ では、さらに次のように説明されています。
パッチを適用するとカーネル コードが未知の未テストのコードに置き換えられるため、サード パーティ コードの品質や影響を評価する方法はありません...Microsoft のオンライン クラッシュ分析 (OCA) データの調査により、システム クラッシュはカーネルにパッチを適用する悪意のあるソフトウェアと悪意のないソフトウェアの両方によって発生することが多いことがわかっています。
— 「カーネルパッチ保護: よく寄せられる質問」 . Microsoft . 2007年1月22日. 2007年2月22日閲覧.
批判
サードパーティ製アプリケーション
マカフィーのMcAfee VirusScanやシマンテックのNorton AntiVirusなど、一部のコンピュータセキュリティソフトウェアは、x86システムのカーネルにパッチを適用することで動作していました。カスペルスキー社製のウイルス対策ソフトウェアは、 x86版Windowsでカーネルコードのパッチ適用を多用することが知られています。[ 16 ]この種のウイルス対策ソフトウェアは、カーネルパッチ保護のため、x64版Windowsでは動作しません。[ 17 ]このため、マカフィーはマイクロソフトに対し、WindowsからKPPを完全に削除するか、自社のような「信頼できる企業」が開発したソフトウェアについては例外を設けるよう求めました。[ 4 ]
シマンテックの企業向けウイルス対策ソフト[ 18 ]とノートン2010 Range以降[ 19 ]は、KPPの制限にもかかわらず、Windowsのx64エディションで動作しましたが、ゼロデイマルウェアに対する保護能力は劣っていました。競合他社のESET、[ 20 ] 、トレンドマイクロ、[ 21 ]、グリソフトAVG、[ 22 ] 、アバスト!、Avira Anti-Vir、Sophosのウイルス対策ソフトは、デフォルト設定ではカーネルにパッチを適用しませんが、「高度なプロセス保護」や「プロセスの不正終了防止」などの機能が有効になっている場合はカーネルにパッチを適用する可能性があります。[ 23 ]

マイクロソフトは、ハイパーバイザ仮想化ソフトウェアのためになど、時折制限を緩和することは知られているものの、例外を設けてカーネルパッチ保護を弱めることはありません。 [ 10 ] [ 24 ]その代わりに、マイクロソフトはサードパーティ企業と協力して、セキュリティソフトウェアがカーネルにパッチを適用せずに必要なタスクを実行できるようにする新しいアプリケーションプログラミングインターフェイスを作成しました。[ 15 ]これらの新しいインターフェイスは、Windows Vista Service Pack 1に含まれていました。[ 25 ]
弱点
Windowsカーネルの設計上、カーネルパッチ保護はカーネルパッチ適用を完全に防ぐことはできません。[ 2 ]このため、コンピュータセキュリティプロバイダーのマカフィーとシマンテックは、KPPは不完全な防御であり、悪意のあるソフトウェアはKPPの防御を回避する方法を簡単に見つけ、サードパーティのセキュリティソフトウェアはシステムを防御する自由度が低くなるため、セキュリティプロバイダーに生じる問題がメリットを上回ると述べています。[ 4 ] [ 5 ]
2006年1月、「skape」および「Skywing」という偽名で知られるセキュリティ研究者が、カーネルパッチ保護をバイパスできる可能性のある理論的な方法を説明したレポートを発表しました。 [ 26 ] Skywingは2007年1月にKPPバージョン2のバイパスに関する2番目のレポートを発表し、[ 27 ] 2007年9月にはKPPバージョン3に関する3番目のレポートを発表しました。 [ 28 ]また、2006年10月にはセキュリティ企業AuthentiumがKPPをバイパスする実用的な方法を開発した。[ 29 ]
それにもかかわらず、マイクロソフトは、標準的なセキュリティレスポンスセンターのプロセスの一環として、KPPをバイパスできるような欠陥をすべて取り除くことに尽力していると述べています。[ 30 ]この声明に沿って、マイクロソフトはこれまでにKPPの2つの主要なアップデートをリリースしており、それぞれが以前のバージョンで既知のバイパス手法を打破するように設計されています。[ 6 ] [ 12 ] [ 13 ]
反トラスト行為
2006年、欧州委員会はカーネルパッチ保護(KPP)について、反競争的であると懸念を表明した。[ 31 ]しかし、マイクロソフトのウイルス対策製品であるWindows Live OneCareには、KPPに対する特別な例外規定はなかった。Windows Live OneCareは、カーネルパッチ適用以外の方法を用いて(そして常にそうしてきたように)ウイルス対策サービスを提供していた。[ 32 ]しかし、他の理由により、Windows Live OneCareのx64版は2007年11月15日まで提供されなかった。[ 33 ]
参考文献
- ^ a b c「カーネルパッチ保護: よく寄せられる質問」 . Microsoft . 2007年1月22日. 2007年7月30日閲覧。
- ^ a b c skape; Skywing (2005年12月). 「はじめに」 . Windows x64でPatchGuardをバイパスする方法. Uninformed. 2016年8月17日時点のオリジナルよりアーカイブ。2007年9月20日閲覧。
- ^ dushane (2023-04-03), PatchGuardBypass 、 2023-04-03取得
- ^ a b Gewirtz, David (2006). 「Windows Vistaウイルス対策大戦争」 . OutlookPower. 2013年2月1日時点のオリジナルよりアーカイブ。 2013年7月8日閲覧。「システムはすでに脆弱です。PatchGuardへのハッキングは既に発生しています。システムはすでに脆弱です。PatchGuardはイノベーションを阻害する効果があります。悪意のある者は常にイノベーションを起こします。マイクロソフトはセキュリティ業界の手を縛り、イノベーションを阻害すべきではありません。私たちは、悪意のある者よりも優れたイノベーションを起こすことを懸念しています。」—クリス・パデン、シマンテック コーポレートコミュニケーションチーム マネージャー
- ^ a b c d e f g Skywing (2007年9月). 「はじめに」 . PatchGuard Reloaded: PatchGuardバージョン3の簡潔な分析. Uninformed. 2016年3月3日時点のオリジナルよりアーカイブ。 2007年9月20日閲覧。
- ^ a b Schofield, Jack (2006年9月28日). 「ウイルス対策ベンダー、ヨーロッパでVistaをめぐり脅威を表明」 . The Guardian . 2007年9月20日閲覧。「これは私たちがサポートしたことも、承認したこともありません。これはセキュリティ上の問題、不安定性、パフォーマンス上の問題を引き起こし、カーネルに変更を加えるたびに、彼らの製品が壊れてしまいます。」—ベン・ファティ、マイクロソフトのセキュリティ技術部門コーポレートバイスプレジデント
- ^ a b c「x64ベースシステムのパッチ適用ポリシー」 Microsoft 2007年1月22日2007年9月20日閲覧。
- ^ skape; Skywing (2005年12月). 「システムイメージ」 . Windows x64でのPatchGuardのバイパス. Uninformed. 2016年8月17日時点のオリジナルよりアーカイブ。2007年9月21日閲覧。
- ^ a b Skywing (2007年1月). 「結論」 . Subverting PatchGuard Version 2. Uninformed. 2016年3月4日時点のオリジナルよりアーカイブ。 2007年9月21日閲覧。
- ^ Skywing (2006年12月). 「誤解を招くシンボル名」 . Subverting PatchGuard Version 2. Uninformed. 2016年3月3日時点のオリジナルよりアーカイブ。2007年9月20日閲覧。
- ^ a b Microsoft (2006年6月). 「カーネルパッチ保護を強化するための更新プログラム」 .マイクロソフトセキュリティアドバイザリ (914784) . Microsoft . 2007年9月21日閲覧。
- ^ a b Microsoft (2007年8月). 「カーネルパッチ保護を強化するための更新プログラム」 .マイクロソフトセキュリティアドバイザリ (932596) . Microsoft . 2007年9月21日閲覧。
- ^ a b Field, Scott (2006年8月11日). 「カーネルパッチ保護の概要」 . Windows Vistaセキュリティブログ. Microsoft . 2006年11月30日閲覧。
- ^ a bジム・オールチン(2006年10月20日). 「マイクロソフト幹部、Windows Vistaのセキュリティに関する最近の市場の混乱を説明」 . Microsoft . 2006年11月30日閲覧。
- ^ Skywing (2006年6月). 「非エクスポート、非システムサービスカーネル関数へのパッチ適用」 .彼らは何を考えていたのか? ウイルス対策ソフトウェアの失敗. Uninformed . 2007年9月21日閲覧。
- ^ Montalbano, Elizabeth (2006年10月6日). 「McAfee、Vistaのセキュリティ機能に不満」 . PC World . 2007年4月5日時点のオリジナルよりアーカイブ。 2006年11月30日閲覧。
- ^ 「Symantec AntiVirus Corporate Edition: システム要件」Symantec 、2006年。2007年5月15日時点のオリジナルよりアーカイブ。 2006年11月30日閲覧。
- ^ 「Symantec Internet Security製品ページ」 . Symantec . 2011年. 2011年1月26日閲覧。
- ^ 「次世代64ビットコンピューター向けの高性能脅威保護」 ESET、2008年11月20日。 2008年11月20日時点のオリジナルよりアーカイブ。
- ^ 「最小システム要件」 . Trend Micro USA. 2012年2月8日時点のオリジナルよりアーカイブ。2007年10月5日閲覧。
- ^ 「AVG アンチウイルスおよびインターネットセキュリティ - サポートされているプラットフォーム」。Grisoft 。2007年8月27日時点のオリジナルよりアーカイブ。2007年10月5日閲覧。
- ^ Jaques, Robert (2006年10月23日). 「SymantecとMcAfeeはVistaに向けて『もっと準備すべきだった』」 vnunet.com. 2007年9月27日時点のオリジナルよりアーカイブ。 2006年11月30日閲覧。
- ^ McMillan, Robert (2007年1月19日). 「研究者:PatchGuardホットフィックスはMicrosoftに利益をもたらす」 InfoWorld . 2007年9月21日閲覧。
- ^ 「Windows Vista Service Pack 1 の主な変更点」。Microsoft 。 2008年。 2008年5月3日時点のオリジナルよりアーカイブ。 2008年3月20日閲覧。
- ^ skape; Skywing (2005年12月1日). 「Windows x64でPatchGuardをバイパスする」 . Uninformed. 2017年8月1日時点のオリジナルよりアーカイブ。2008年6月2日閲覧。
- ^ Skywing (2006年12月). 「Subverting PatchGuard Version 2」 . Uninformed . 2008年6月2日閲覧。
- ^ Skywing (2007年9月). 「PatchGuard Reloaded: PatchGuardバージョン3の簡潔な分析」 . Uninformed . 2008年6月2日閲覧。
- ^ Hines, Matt (2006年10月25日). 「Microsoft、Vista PatchGuardのハッキングを非難」 . eWEEK . 2016年4月2日閲覧。
- ^ Gewirtz, David (2006). 「Windows Vistaウイルス対策大戦争」 . OutlookPower. 2007年9月4日時点のオリジナルよりアーカイブ。 2006年11月30日閲覧。
- ^ Espiner, Tom (2006年10月25日). 「EC Vistaの反トラスト法に関する懸念が具体化」 . silicon.com. 2007年2月2日時点のオリジナルよりアーカイブ。2006年11月30日閲覧。
- ^ Jones, Jeff (2006年8月12日). 「Windows Vista x64 セキュリティ – パート2 – Patchguard」 . Jeff Jones セキュリティブログ. Microsoft . 2008年12月9日時点のオリジナルよりアーカイブ。 2007年3月11日閲覧。
- ^ White, Nick (2007年11月14日). 「すべての加入者向けにWindows Live OneCareの次期バージョンへのアップグレードを発表」 . Windows Vistaチームブログ. Microsoft . 2008年2月1日時点のオリジナルよりアーカイブ。 2007年11月14日閲覧。
外部リンク
- PatchGuardの真実:シマンテックが不満を言い続ける理由
- カーネルパッチ保護の紹介
- マイクロソフト幹部がWindows Vistaのセキュリティに関する最近の市場の混乱を説明
- カーネルパッチ保護: よくある質問
- Windows Vista x64 セキュリティ – パート2 – Patchguard 2008年12月9日アーカイブ- Wayback Machine
Uninformed.orgの記事:
バイパスアプローチ
- KPP Destroyer(ソースコードを含む) - 2015
- PatchGuard 3 を回避するための動作するドライバ (ソースコードを含む) - 2008 2011-12-18 にWayback Machineでアーカイブ
- バイナリエディタでPatchGuardをバイパスする - 2009
Microsoft セキュリティ アドバイザリ: