- 「メモリ整合性」は、Windowsのセキュリティ機能の一つで、悪意のあるプログラムがドライバーとして紛れ込んで、メモリを改ざんしていないか起動前にチェックする機能です。
- 事前に仮想環境でドライバーのコードを実行して検証し、不審なドライバーがあれば無効化します。
YouTube動画でも話しています。
1. 「メモリ整合性」の警告?
Windows PCを使っていると、画面下のタスクトレイに「デバイス セキュリティ」の警告マークが表示されることがあります。
デバイス セキュリティ
メモリ整合性はオフです。お使いのデバイスは脆弱な状態にある可能性があります。
[設定に移動] [無視]
1-1. 「メモリ整合性」とドライバー
「メモリ整合性(memory integrity)」は、コンピュータのメモリ(RAM)の内容が意図せず改ざんされていないことを確認する仕組みです。
- メモリに保存されているデータが、書き込まれた時と同じ状態を保っているか検知する
- プログラムコードを含まないメモリ領域での実行を防ぐ(DEP:データ実行防止)
目的は、悪意のあるドライバーなどのマルウェアから、システムを保護するためです。
ドライバーのコードを隔離された仮想環境で実行し、事前に安全性を検証します。
ドライバーに特別な対策が必要なのは、システムに近いレベルで動作するプログラムだからです。
ドライバーに不正なコードが含まれてしまっているときの対策になるんだね。
カーネルと直接やり取りするため、問題があるとシステム全体に影響を与える可能性があります。
2. コア分離と仮想環境
「メモリ整合性」は、設定メニューの「プライバシーとセキュリティ」ー「Windows セキュリティ」ー「デバイスセキュリティ」にある「コア分離(core isolation)」で設定します。
「コア分離」は、Windowsのセキュリティ機能の一つです。
「ハードウェア仮想化技術」を利用して、コンピューターのプロセスをOSとデバイスから分離します。
これは、マルウェアや他の攻撃からOSとデバイスを保護するためです。
TPM 2.0(セキュリティプロセッサ)の搭載し、セキュアブートが有効などの条件を満たすと、利用できます。
2-1. ハードウェア仮想化技術が活用されている
「ハードウェア仮想化技術」は、物理的なコンピュータハードウェア上に仮想的な環境(仮想マシン)を作り出す技術です。
各仮想マシンは独立したメモリ空間を持つため、プログラムが変更できるメモリの範囲を限定できます。
これにより、メモリ改ざんのリスクを減らしています。
また、仮想マシンはハイパーバイザーによって、より細かな動作の監視や制御も可能です。
ちなみに、「メモリ整合性」の検証は、システムへの負荷を最小限に抑えるために、CPUのハイパーバイザー機能を使用して行われます。
従来は、コンピュータの中で仮想的なコンピュータを動作させるのは、処理が複雑になるため遅くなってしまう問題点がありました。
特に、近年 CPUによる仮想化支援機能の進化(Intel VT-x/AMD-V)で、オーバーヘッドが大幅に削減され、実用性が向上しました。
現在、仮想化技術は様々な場面で活用されています。
- コンテナ技術
Dockerが代表的で、アプリケーションの開発・デプロイが容易になりました - クラウドコンピューティング
AWS、Azure、GCPなどのクラウドサービスの基盤技術 - デスクトップ仮想化(VDI)
テレワークやBYODの実現に重要な役割 - セキュリティ機能
コア分離やブラウザの分離実行環境 - 開発・テスト環境
異なるOS環境でのテストが容易
3. デバイスによっては未対応の場合もある
ただし、現時点では、すべてのPCや周辺機器、ドライバーが対応しているわけではありません。
もし、ドライバーが対応していない場合、その周辺機器は使えなくなってしまいます。
また、有効にすると、システムの処理速度が若干低下する可能性もあります。
対応可能な環境では有効にすることが推奨されていますが、現時点では急を要する対策というわけでもありません。
将来的な脅威に備えるための「予防的な」セキュリティ機能として位置づけられています。