** 本記事は、Driving lessons: The kernel drivers in Sophos Intercept X Advanced の翻訳です。最新の情報は英語記事をご覧ください。**
「カーネル空間」 (メモリ、ハードウェア、リソース管理、ストレージに直接アクセスできる、オペレーティングシステムの最高権限のレイヤー) で動作することは、セキュリティ製品にとって極めて重要です。セキュリティ製品はカーネル空間で動作することにより、「ユーザー空間」 (アプリケーションが実行される非特権環境) を監視し、環境内で実行されるマルウェアが検出を迂回しようとしたとしても、そのマルウェアから保護することができます。それだけでなく、カーネルにアクセスできるセキュリティ製品は、カーネル内のより狡猾な脅威に対抗できます。たとえば、以前にもお伝えしたように、攻撃者の中には、カーネル空間にアクセスし、その高いアクセスレベルを利用する目的で、BYOVD (Bring Your Own Vulnerable Driver: 脆弱なドライバーの持ち込み) 攻撃を用いる、あるいは悪意のあるドライバーに暗号署名させようとする者もいます。
しかし、セキュリティの観点からは、カーネル空間での動作にはそれなりのリスクが伴います。カーネルドライバーへの不正なアップデートなど、この環境で間違った手順が実行されれば、さまざまな障害を引き起こす可能性があります。オペレーティングシステムが最初にロードされる起動時に問題のドライバーが起動する場合、影響を受けたホストをリカバリモードで起動し、マシンを正常に起動できるようにする必要が生じるなど、影響が長期化する可能性があります。
ソフォスの Intercept X Advanced は、リリース 2024.2 の時点で 5 つのカーネルドライバーを使用しています。すべてのドライバーは、該当するフラグを有効または無効にして徹底的にテスト*されており、新しいフラグは無効にして出荷されています。(Sophos Intercept X と Sophos Central は、新機能を段階的に有効にするために機能フラグを使用します。機能フラグは Sophos Central を介して導入されます。新機能は通常、機能フラグによって「保護」されます (フラグが有効になっていない限りオフになります)。ですので、機能は段階的に提供が開始され (段階的ロールアウト)、一般提供される前に修正が加わる可能性があります。
本記事では透明性を重視し、これらのドライバーが何なのか、何をするのか、いつ起動されるのか、どのように署名されるのか、何がインプット(入力)されるのかを解説します。また、中断のリスクを最小化するために、ソフォスがこれらのドライバーに施した安全策を紹介し (前述の段階的ロールアウトなど。記事後半の例を参照)、お客様がドライバーを構成する際に利用可能なオプションについても説明します。
なお、Intercept X Advanced とそのすべてのコンポーネント (カーネルドライバーを含む) は、2017年 12月 14日から外部のバグ報奨金プログラムに含まれています。ソフォスは、外部のバグ報奨金申請を通じた厳しい検査を歓迎し、研究コミュニティとのコラボレーション文化を育んでいます。
*「テスト」とは、Microsoft が提供するツールや検証機能を含むさまざまな内部テストを指します。
概要
以下の表は、Intercept X Advanced リリース 2024.2に含まれる 5 つのカーネルドライバーの概要です。
ドライバー | バージョン | タイプ | 開始タイプ | Microsoft の署名 | 署名 | 説明 |
SophosEL.sys | 3.2.0.1150
|
カーネルドライバー | 早期起動ブート開始 | あり | ELAMP* | Sophos ELAM ドライバー: 悪意のあるブート開始ドライバーの実行を防止する |
SophosED.sys | 3.3.0.1727
|
ファイルシステムドライバー | ブート開始 | あり | WHCP+ | ソフォスの主要なマルウェア対策ドライバー |
Sntp.sys | 1.15.1121
|
ネットワークフィルタドライバー | System Start | あり | WHCP+ | Sophos Network Threat Protection ドライバー |
Hmpalert.sys | 3.9.4.990
|
ファイルシステムドライバー | システム開始
|
あり | WHCP+ | Sophos HitmanPro.Alert ドライバー |
SophosZtnaTap.sys | 9.24.6.3
|
ネットワークフィルタドライバー | オンデマンド | あり | WHCP+ | Sophos Zero Trust Network Access (ZTNA) Tap ドライバー |
表 1: Intercept X Advanced 2024.2 のカーネルドライバーの概要
* Microsoft Windows Early Launch Anti-malware Publisher
+ Microsoft Windows Hardware Compatibility Publisher
図 1: ユーザー空間/カーネルの境界と Intercept X Advanced コンポーネントの動作場所の概念図
SophosEL.sys
このドライバーの役割: SophosEL.sys は、ソフォスの Early Launch Anti-Malware (ELAM: 早期起動マルウェア対策) ドライバーです。
インプット: このドライバーには、マシン起動時に開始ドライバーとして実行されないようにする必要がある不正なドライバーのブロックリストが入力されます。このブロックリストは以下のレジストリキーにあり、悪意のあるドライバーを検出すると、ソフォスのユーザー空間の脅威検出ロジックによって設定されます。SophosEL.sys は次の起動サイクルでこのドライバーがロードされないようにします。
インプット | 説明 | 保護 |
HKLM\SYSTEM\CurrentControlSet\Services\Sophos ELAM\Config | 既知の不正なドライバーのブロックリスト | DACL、ソフォスの改ざん防止機能 |
お客様のオプション: お客様は、Sophos Central から脅威対策ポリシーの修復と許可項目を構成できます。
追加の対策: Microsoft またはソフォスが署名したドライバーは、クリーンアップ/ブロックの対象外となります。
SophosED.sys
このドライバーの役割: SophosED.sys (エンドポイント防御) はブート開始ドライバーで、ELAM 処理中、他の多くのカーネルドライバーがロードされる前、Windows ユーザー空間が初期化される前、システムドライブがマウントされる前に開始されます。役割は主に次の 3 つです。
- Sophos のインストール環境と構成の改ざん防止
- システムアクティビティイベントを Sophos ユーザー空間のコンポーネントに公開し、保護と検出を行う
- 下位のシステムアクティビティイベントをソフォスのイベントジャーナルに記録し、事後のフォレンジックと分析に利用する
インプット: SophosED.sys はファイルシステムが利用可能になる前に開始するため、サービスキーを介してすべての構成が提供されます。なお、以下のインプットはすべて HKLM\SYSTEM\CurrentControlSet\Services\Sophos Endpoint Defense の下にあります。
フィルタードライバーの高度インプット
SophosED.sys は、Microsoft によって割り当てられ承認された複数の高度 (ドライバーの「スタック」上でのドライバーの位置を定義する一意の識別子で、「低い」ドライバーほどベアメタルに近い) でミニフィルタードライバーとして Windows に登録されます。
インプット | 説明 | 保護 |
HKLM\SYSTEM\CurrentControlSet\Services\Sophos Endpoint Defense\Instances\ | Microsoft が割り当てた複数の高度 | DACL、ソフォスの改ざん防止機能 |
Tamper Protectionのインプット
Sophos Tamper Protection は、お客様のポリシー、ソフォスの機能フラグ、エージェントに組み込まれた署名済みマニフェストの組み合わせによって構成されます。
インプット | 説明 | 保護 |
HKLM\SYSTEM\CurrentControlSet\Services\Sophos Endpoint Defense\TamperProtection\Config\ | お客様のポリシー (オン/オフ、構成パスワード*) | DACL、ソフォスの改ざん防止機能 |
HKLM\SYSTEM\CurrentControlSet\Services\Sophos Endpoint Defense\TamperProtection\Components\
HKLM\SYSTEM\CurrentControlSet\Services\Sophos Endpoint Defense\TamperProtection\Services\ |
保護対象のキー、フォルダー、サービスなどのマニフェスト | 署名済み、ロード前にドライバーが確認 |
* 構成パスワードは PBKDF2-SHA512 とソルトでハッシュ化されます
システムアクティビティイベントのインプット
Sophos Central Threat Protection ポリシーは複数の構成オプションをサポートしており、ソフォスのユーザー空間プロセスが SophosED.sys レジストリキーに書き込むことで、ドライバーがロードされたタイミングで構成オプションが利用可能になります。
インプット | 説明 | 保護 |
HKLM\SYSTEM\CurrentControlSet\Services\Sophos Endpoint Defense\Scanning\Config\ | お客様のポリシー (オン/オフ、除外など多数) | DACL、ソフォスの改ざん防止機能 |
HKLM\SYSTEM\CurrentControlSet\Services\Sophos Endpoint Defense\EndpointFlags\ | ソフォスの機能フラグ (各種) | DACL、ソフォスの改ざん防止機能 |
イベントジャーナルのインプット
インプット | 説明 | 保護 |
HLKM\SYSTEM\CurrentControlSet\Services\Sophos Endpoint Defense\EventJournal\Config\ | お客様のポリシー (除外、ディスク制限) | DACL、ソフォスの改ざん防止機能 |
HLKM\SYSTEM\CurrentControlSet\Services\Sophos Endpoint Defense\EventJournal\Features\ | DWORD値「Enabled =1」のサブキーが存在する場合、イベントジャーナルは有効 | DACL、ソフォスの改ざん防止機能 |
お客様のオプション: お客様は Sophos Central Threat Protection ポリシーでディスク制限を構成し、除外を管理できます。
追加の対策: ドライバー機能が利用可能な場合 (お客様のポリシーとソフォスのフラグの組み合わせに基づく)、ソフォスのユーザー空間プロセスは実行時にさまざまなパラメーターを構成できます。
- プロセスごとに適用する緩和策のビットマスク
- 各プロセスで有効または無効にするイベント
- ドライバーがユーザー空間からの応答を待つ時間 (または非同期通知かどうか)
Sntp.sys
このドライバーの役割: Sntp.sys (Sophos Network Threat Protection) は、さまざまな Windows フィルタリングプラットフォームのイベントに登録するカーネルドライバーで、ネットワークフローデータを傍受し、変更する可能性があります。Sophos Central Threat Protection と Web Control ポリシーで有効化された機能に応じて、さまざまなフィルターとコールアウトが登録されます。
インプット: 機能の構成は、以下の ( 1 つ以上の) ユーザーモードプロセスからドライバーに通知されます。
- SophosNtpService.exe
- SophosNetFilter.exe
- SophosIPS.exe
- SSPService.exe
ユーザー空間のプロセスは、IOCTL、Read、Write を使用して、Windows Driver Framework を介してドライバーと通信します。ドライバーとの通信は保護され、許可された正規のソフォスプロセスからのみ接続を受け付けます。
お客様のおプション: フィルタードライバーは、Sophos Central で定義されたポリシーに基づいて、ブラウザーおよびブラウザー以外のプロセスによるネットワークトラフィックを傍受します。傍受されたトラフィックの処理は、SophosNetFilter.exe と SophosIPS.exe によってユーザー空間で実行されます。変更されたコンテンツは、ドライバーに返送されることがあります (たとえば、悪意のあるコンテンツに対してブロックページを表示するなど)。
追加の対策: お客様は、Sophos Central で個々のサイトを許可リストまたはブロックリストに追加できます。
Hmpalert.sys
このドライバーの役割: Hmpalert.sys は、ランサムウェアによるファイルの一括暗号化を検出し防止する Sophos CryptoGuard を実行します。また、プロセスの実行時にどのようなエクスプロイト緩和策が適用されるかを設定します。
インプット: Hmpalert.sys には、複数のレジストリサブキーや IOCTL など、多くのインプットがあります。
インプット | 説明 | 保護 |
HKLM\SYSTEM\CurrentControlSet\Services\hmpalert | ソフトウェアの構成 | DACL、ソフォスの改ざん防止機能 |
HKLM\ SYSTEM\CurrentControlSet\Services\hmpalert\Config | お客様のポリシー | DACL、ソフォスの改ざん防止機能 |
HKLM\ SYSTEM\CurrentControlSet\Services\Sophos Endpoint Defense\EndpointFlags | ソフォスの機能フラグ (各種) | DACL、ソフォスの改ざん防止機能 |
お客様のオプション: お客様は、Sophos Central Threat Protection ポリシーでエクスプロイト緩和策の有効化/無効化、および除外の管理を実行できます。
追加の対策: なし
SophosZtnaTap.sys
このドライバーの役割: SophosZtnaTap.sys は、ソフォスが開発した OpenVPN TAP ドライバーです。お客様が Sophos ZTNA (Zero Trust Network Access) エージェントを導入している場合、SophosZtnaTap.sys は管理対象アプリケーションの DNS ルックアップを傍受し、該当する Sophos ZTNA ゲートウェイにアプリケーションのトラフィックをリダイレクトします。ZTNA アプリケーションとゲートウェイは Sophos Central ポリシーで構成され、レジストリに保存されます。
インプット: SophosZtnaTap.sys へのインプットは、レジストリのサブキーを介して行われます。
インプット | 説明 | 保護 |
HKLM\SOFTWARE\Sophos\Management\Policy\NetworkPerimeter\ | お客様のポリシー (ZTNA アプリケーション、ゲートウェイ、証明書) | DACL、ソフォスの改ざん防止機能 |
お客様のオプション: お客様は、ZTNA で保護されたアプリケーションとゲートウェイを Sophos Central から管理できます。
追加の対策: なし
段階的ロールアウトの例: CryptoGuard ExFAT
Sophos CryptoGuard は、10 年以上にわたって永続ディスクを一括暗号化から保護してきました。Intercept X バージョン 2024.1.1 では、この保護を ExFAT パーティション (通常はリムーバブル USB ドライブ上にある) にまで拡張する新機能、CryptoGuard ExFAT を導入しました。
CryptoGuard ExFAT の開発とテストは、2023年 9月から 2024年 3月にかけて行われました。この機能は、フラグ「hmpa.cryptoguard-exfat.available」によって保護されていました。
Sophos Engineering は、2024年 3月 22日から、このフラグを有効にしてソフトウェアを社内で稼働させました (「Dogfood リリース」)。
Intercept X バージョン 2024.1.1は、2024年 5月 21日から 2024年 6月 6日までの間に、ソフォスにリリースされ、その後、ソフォスの段階的ソフトウェアデプロイメントプロセスを使用してお客様にリリースされました。この段階では、ソフォスのエンジニア以外のすべてのユーザーにとって、この機能は休止状態にありました。
フラグ「hmpa.cryptoguard-exfat.available」は、ソフォスの段階的フラグ有効化プロセスを使用して、2024年 6月 10日から 2024年 6月 26日の間に有効化されました。
顧客管理
お客様は固定ソフトウェアバージョンを選択することができます (Endpoint Software Management: 固定期間サポート、長期サポート)。これにより、お客様が別のソフトウェアパッケージを選択するまで、ソフトウェアとフラグが固定化されます。「ソフォス推奨」オプションを使用するお客様には、定期的に新しいソフトウェアが提供されます。ソフトウェアのロールアウトとは別に、通常のソフトウェアリリースと同様、ソフトウェアの新機能に対する機能フラグが段階的に有効化されます。ソフォスは安定性を高め、すべてのお客様に対する新しいイベントのグローバルな有効化を回避することを目的に、このプロセスを進化させ続けています。
結論
カーネルドライバーは、Intercept X Advanced 製品 (そして、概して堅牢な Windows エンドポイントセキュリティ) の基本ですが、カーネル空間での動作にリスクがないわけではありません。
本記事では、Intercept X Advanced (リリース 2024.02 現在) のカーネルドライバーについて、その機能、署名方法、インプット内容、お客様が管理できる範囲、そして追加的な安全策 (新機能の段階的なロールアウト、中断のリスクを最小化するための適用除外など) について説明しました。
どのような保護機能もリスクを完全排除することはできませんが、今回は透明性の観点からも、ソフォスのドライバーの詳細を共有し、「できるだけ安全な方法でお客様を脅威から守る」という複雑な課題にソフォスがどのように取り組んでいるかを詳しく説明したいと考えました。