【スポンサーリンク】

セキュリティ対策ソフトとカーネルモード

追記予定の注意書き

この項目は、随時追記します。なにかのヒントになれば嬉しいです。

セキュリティ対策ソフトは、OSが提供する機能を活用して、セキュリティ対策を行っています。

しかし、このような強い機能は、システムが独占する方向に進んでいます。

セキュリティ対策ソフトとカーネルモード

システム標準のセキュリティが「正規軍」なら、サードパーティ製のセキュリティ対策ソフトは「傭兵部隊」なんだね。

特典ダウンロード
【ちいラボ読者特典】印刷してすぐ使える!
\記事が役に立ったらシェアしてね/
【スポンサーリンク】

1. カーネルモードドライバー

カーネルモードドライバー

セキュリティ対策ソフトは、プログラムの不審な動作を監視できるっていうけど、どうしてそんなことができるの?

ほかのプログラムの動作がわかるって、考えたら怖いし、セキュリティ上どうなの?

セキュリティ対策ソフトは、Windowsの「カーネルモードドライバー」として動作することで、プログラムの動作を監視する WindowsAPIを使っています。

一般のアプリケーションは「ユーザーモード」で動作します。
一方、セキュリティ対策ソフトは、システムを保護するためにほかのソフトを監視する上位の権限が必要です。
そこで、「カーネルモードドライバー」を使います。

カーネルモードドライバーは、OSの中核的な部分(カーネル)で実行される特別なソフトウェアです。

  1. 最高の権限レベルで動作し、ハードウェアやシステムリソースに直接アクセスできる
  2. システムの重要な機能を制御・監視できる
    • プロセスの作成と終了
    • ファイルの作成・変更・削除
    • レジストリの変更
    • ネットワーク通信
  3. システムの安定性に大きく影響するため、開発には高度な技術と注意が必要

この監視機能は、Windowsが正規のセキュリティソフトにのみ許可した特別な権限です。
一般のアプリケーションには与えられていません。

1-1. カーネルAPIの例

プロセス監視関連:

  • PsLookupProcessByProcessId:
    プロセスIDからPEPROCESSオブジェクトを取得
  • SeLocateProcessImageName:
    プロセスの実行ファイルパスを取得
  • ObDereferenceObject:
    オブジェクトの参照を解放

ファイルシステム監視関連:

  • FltGetFileNameInformation:
    ファイル名情報を取得
  • FltReleaseFileNameInformation:
    ファイル名情報を解放
  • IRP_MJ_CREATE: ファイル作成操作の識別子

レジストリ監視関連:

  • REG_NOTIFY_CLASS:
    レジストリ操作の種類を判別
  • RegNtPreCreateKey:
    レジストリキー作成前の通知

これらのAPIは、Windows Driver Kitに含まれるカーネルモードドライバー開発用のものです。

2. OSはカーネルAPIの使用を制限していく

なお、Windows 11ではセキュリティ強化のため、一部のカーネルAPIの使用に制限が加えられています。

  • ドライバー署名の厳格化
    Microsoft認証されたデジタル署名が必須
  • カーネルメモリへのアクセス制限
    Direct Memory Accessの制限
  • APIアクセスの制限
    特権操作の実行には追加の認証が必要

Windows 11ではセキュリティが強化され、Microsoftによって認証されたセキュリティソフトのみがこれらの機能を使えるようになっています。

不正なプログラムが監視機能を悪用できないようになっています。


QRコードを読み込むと、関連記事を確認できます。

セキュリティ対策ソフトとカーネルモード
【スポンサーリンク】
タイトルとURLをコピーしました