ブログ(製品・サービス関連)

ユーザーモードのみで動作するEDR製品で本当に大丈夫ですか?

EDR製品を検討している中で、以下のような疑問や不安、不満を持ったことはないでしょうか?

  • 攻撃者はユーザーモードで動作するEDR製品を検知回避できるって本当?
  • ユーザーモードで動作するEDR製品ではアラートが上がらないけど、本当は攻撃を検知できてないだけかも知れない
  • 外部指摘を受けてEDR製品で調査しようとしたが、ユーザーモードでは十分な調査ができなかった

この「ユーザーモード」というキーワード。EDR製品を検討する上で、必ず考慮すべき単語です。本ブログでは「『ユーザーモード』でしか動作しないEDR製品が持つ課題」について説明します。

2つの動作モード

Windows OSには、以下の2つの動作モードがあります:

  1. ユーザーモード
  2. カーネルモード

Windows上で動作するアプリケーション(Webブラウザや文書作成ソフトなど)のほとんどはユーザーモードで動作し、Windowsのコアのプログラム(キーボード入力などのデバイス制御など)はカーネルモードで動作します。

ユーザーモードで動作するアプリケーションがカーネルにアクセスする場合は、DLLというライブラリを経由する必要があります。

図1: OSにおけるユーザーモードとカーネルモードの位置づけ

ユーザーモードのみで動作するEDRの課題

EDR製品も大きく分けて、 「ユーザーモードでのみ動作するもの」と「ユーザーモードでもカーネルモードでも動作するもの」に分類されます。

では、セキュリティ製品として、よりセキュアな環境を提供できるのは、「ユーザーモードのみで動作するEDR製品」でしょうか? 「ユーザーモードでもカーネルモードでも動作するEDR製品」でしょうか?

答えは、「ユーザーモードでもカーネルモードでも動作するEDR製品」です。

では、それは、なぜでしょうか?さきほど、ユーザーモードで動作するアプリケーションはDLL(ライブラリ)経由で、カーネルにアクセスすると説明しました。

ユーザーモードで動作するEDR製品は、以下のような動作イメージを持ちます:

図2:ユーザーモードで動作するEDR製品の動作イメージ

 

ユーザーモードでのみ動作するEDR製品は、特定のプロセスが疑わしいと推測すると、そのプロセスの詳細情報をWindowsに問い合わせます。

図3:ユーザーモードで動作するEDR製品の動作イメージ

この時、カーネルモードにまで攻撃が進んでしまっている場合、Windowsが正しい情報を返す前に、攻撃 が偽の情報を返すこともありえるのです。 例えば、カーネルモードで動作するルートキットの場合、以下のような動作が想定されます:

図4:ユーザーモードで動作するEDR製品の動作イメージ(悪性ツール「ルートキット」がEDR製品の調査を阻害した状態)

このように、Windowsが正しい答えを返す前に、ルートキットが偽の情報を返してしまうため、 EDR製品による攻撃の検知ができなくなってしまうのです。 この状態は、セキュリティ的に大変危険ですし、EDR製品への投資が無駄になりかねません。

もちろん、攻撃の進行がユーザーモードで留まっている場合は、ユーザーモードでのみ動作するEDR製品でも検知が可能ですが、攻撃者もその事実を把握しており、また、攻撃者は常に対策をいかに回避するかを考えていることを忘れないでください。

図5:ユーザーモードでもカーネルモードでも動作するEDR製品の動作イメージ

 

多くの場合、攻撃者は侵入に成功した後、自身の存在を隠したまま攻撃を継続しようと、侵入の痕跡や活動を隠すために様々な手段を講じます。

その例が、先ほど挙げたルートキット(侵入の痕跡を消す行為や攻撃ツール群)を利用した「動作しているプロセスを表示するコマンドを改ざんし、攻撃者のプロセスだけは表示させない」などの手法です。

このような細工をされると、攻撃者のプロセスは一見完全に消されてしまいます。 これは、セキュリティ製品 ― 特にEDRのようなログを取得し、アラートをあげて注意を喚起し、また、ログを調査して被害の現状や根本原因を把握することが目的の製品では致命的です。

また、侵害の詳細調査を行う場合も、ユーザーモードでのみ動作するEDR製品では、ファイルのREAD/WRITE、レジストリへの書き込みといった情報や、メモリダンプなどの情報の取得も難しく、限定的な調査になる可能性があります。

カーネルモードでも動作するEDRのメリット

一方、「ユーザーモードでもカーネルモードでも動作するEDR製品」であれば、直接カーネルにアクセスできるため、 そのプロセスが不正なものであるということを的確に判断することができます。

アンチウイルス製品がカーネルモードで動作するのは、カーネルモードのアプリケーションがマルウェアを効果的にブロックできるからです。 アンチウイルス製品よりも深い検知・調査能力を求められるEDR製品には、ユーザーモードでもカーネルモードでも動作するEDR製品を選択するのが良いでしょう。

カーネルモードでも動作するEDRは、OSの動作に悪影響を及ぼすなどの懸念を感じられる方もいらっしゃるかもしれません。実際、カーネルモードで動作するアプリケーションは、設計やコードの品質に大きく依存し、品質が悪い場合OSの動きに干渉を及ぼします。それだけに、カーネルモードで動作するアプリケーション(EDRを含む)を開発するためには、ユーザーモードで動作するアプリケーションの開発よりも、多くの注意と時間を割く必要があります。長年の経験も必要ですし、OSの深い知識が不可欠です。

カーネルモードで動作するEDRを提供しているベンダーは、それだけの知識とリソースを持っているということができます。

FireEye Endpoint Security

FireEye Endpoint Securityは、ユーザーモードとカーネルモードの両方を活用した、ハイブリットなEDR製品です。

ユーザーモードで動作するメリットである以下の点を活かしつつ、 カーネルモードでも動作することにより、より高い精度のセキュリティをお客様に提供できます:

  • 製品機能を柔軟に迅速に強化できる点
  • 検知や分析などの各種機能を軽快に動かすことができる点

FireEye Endpoint Security は、Mandiantチームが開発した、インシデント・レスポンスツール、Mandiant Incident Responseにルーツを持つEDRツールです。現在では機械学習機能などのEPP機能も強化し、総合エンドポイント対策ツールとして進化を遂げています。ちなみにEDRに必須となる攻撃の痕跡インジケータである、IOC (Indicator of Compromise) を初めて提唱したのも、FireEyeです。

脅威対策の第一線で得た世界有数の専門知識を活用する製品チームと、当社のソリューションで脅威に立ち向かう最前線の専門家として、FireEye はお客様を守り続けます。