メモリエクスプロイト緩和機能ポリシーを使用した、メモリ改ざんの試みに対する Windows クライアントの強化

メモリエクスプロイト緩和機能がアプリケーションを保護する仕組み
バージョン 14 以降の
Symantec Endpoint Protection
には、メモリエクスプロイト緩和機能が導入されました。この機能では、複数の緩和機能を使用してソフトウェアの脆弱性に対する攻撃を停止させます。たとえば、クライアントユーザーが Internet Explorer などのアプリケーションを実行するときに、代わりに、悪質なコードが含まれた別のアプリケーションが起動される恐れがあります。
エクスプロイトを止めるために、メモリエクスプロイト緩和機能は保護対象のアプリケーションに DLL を挿入します。エクスプロイトの試みを検出すると、メモリエクスプロイト緩和機能はエクスプロイトを遮断するか、エクスプロイトの脅威にさらされたアプリケーションを終了します。
Symantec Endpoint Protection
は、クライアントコンピュータのユーザーに検出について通知し、クライアントのセキュリティログにイベントを記録します。
たとえば、クライアントユーザーに、次の通知が表示される場合があります。
Symantec Endpoint Protection: 攻撃: 構造化された例外ハンドラの上書きが検出されました。Symantec Endpoint Protection は
<アプリケーション名>
アプリケーション
クライアントコンピュータで脆弱性が修正されたバージョンのソフトウェアが実行されるまで、メモリエクスプロイト緩和機能はエクスプロイトを遮断し続けるか、アプリケーションを終了します。
14 MPx では、メモリエクスプロイト緩和機能は汎用エクスプロイト緩和機能と呼ばれました。
エクスプロイト防止の種類
メモリエクスプロイト緩和機能では、アプリケーションの種類にどの技術が最も適しているかに基づいて、複数の種類の緩和機能を使用してエクスプロイトに対処します。たとえば、StackPvt と RopHeap の両方の技術によって、Internet Explorer を攻撃するエクスプロイトが遮断されます。
機能をコンピュータで有効にしている場合、メモリエクスプロイト緩和機能は、App-V で保護されている Microsoft Office プロセスを保護しません。
メモリエクスプロイト緩和機能の要件
メモリエクスプロイト緩和機能は、侵入防止をインストールしている場合にのみ利用できます。メモリエクスプロイト緩和機能には、侵入防止定義とともにダウンロードされるそれ独自の個別シグネチャがあります。ただし、侵入防止とメモリエクスプロイト緩和機能は、個別に有効または無効にすることができます。
14.0.1 以降のメモリエクスプロイト緩和機能には、独自のポリシーが用意されています。14 MPx リリースでは、このポリシーは侵入防止ポリシーの一部になっています。
[概要]
タブで侵入防止ポリシーを無効にした場合は、メモリエクスプロイト緩和機能が無効になります。
また、メモリエクスプロイト緩和機能ポリシーにアプリケーションリストを表示するには、少なくとも 1 回 LiveUpdate を実行する必要があります。デフォルトで、ポリシーに表示されるすべてのアプリケーションに対して保護が有効化されます。
誤検知の修正と防止
メモリエクスプロイト緩和機能によって、クライアントコンピュータ上のアプリケーションが意図せずに終了されることがあります。そのアプリケーションの動作が正当であり、エクスプロイトされていなかったことが判明した場合、その検出は誤検知になります。シマンテックセキュリティレスポンスでメモリエクスプロイト緩和機能の動作が変更されるまでは、このような誤検知に対する保護を無効にしてください。
以下の表に、誤検知の検出を処理する手順を示します。
誤検知を見つけて修復する手順
タスク
ステップ 1: クライアントコンピュータで予期せずに終了したアプリケーションを見つける
次の方法で、クライアントコンピュータで予期せずに終了したアプリケーションを見つけることができます。
  • クライアントコンピュータのユーザーによって、アプリケーションが実行されていないことが通知されます。
  • どの緩和機能によってクライアントコンピュータのアプリケーションが終了されたかを示す、メモリエクスプロイト緩和機能のログまたはレポートを開きます。
エクスプロイトの性質上、緩和機能でログが生成されない場合もあります。
ステップ 2: 保護を無効化し、アプリケーションを終了した機能を監査する
他のプロセスの保護が維持されるようにするため、まず、必要最低限のレベルで保護を無効化します。他のすべての方法を試し終わるまでアプリケーションを実行できるようにするために、メモリエクスプロイト緩和機能はオフにしないようにします。
次の各サブタスクが終了したら、ステップ 3 に進みます。
  1. まず、緩和機能によって終了された特定のアプリケーションに対する保護を監査します。
    たとえば、Mozilla Firefox が終了した場合は、SEHOP 機能または HeapSpray 機能のいずれかを無効にします。エクスプロイトの性質上、緩和機能でログイベントが生成されない場合があります。このために、どの緩和技術がアプリケーションを終了したかを明確にできないことがあります。このような場合は、アプリケーションを保護している各機能を 1 つずつ無効にして、終了の原因となっている技術を見つけます。
  2. 1 つの緩和機能が保護するすべてのアプリケーションに対する保護を監査します。
  3. 機能に関係なく、すべてのアプリケーションに対する保護を監査します。この方法はメモリエクスプロイト緩和機能の無効化と似ていますが、管理サーバーで検出のためのログイベントが収集される点が異なります。この方法は、14 MPx のレガシークライアントでの誤検知を調べるために使用します。
ステップ 3: クライアントコンピュータのポリシーをアップデートして、アプリケーションを再実行する
  • アプリケーションが正しく実行された場合、その緩和機能に対する検出は誤検知です。
  • アプリケーションが期待したようには実行されなかった場合、その検出は真陽性です。
  • アプリケーションが引き続き終了する場合は、より高い制限レベルで監査します。たとえば、別の緩和機能を監査したり、その機能で保護されるすべてのアプリケーションを対象に監査を行います。
ステップ 4: 誤検知をレポートし、真陽性に対する保護を再度有効にする
誤検知の場合:
  1. シマンテック社のチームに、検出が誤検知であったことを通知します。「シマンテックインサイダーヒント: ファイルの提出方法」を参照してください。
  2. 各機能の処理を
    [いいえ]
    に設定して、終了したアプリケーションに対する保護が無効なままになるようにします。
  3. セキュリティレスポンスで問題が解決されたら、機能の処理を
    [はい]
    に変更して保護を再度有効にします。
真陽性の場合:
  1. 該当する緩和機能に対するルールの処理を
    [はい]
    に戻して、保護を再度有効にします。
  2. 現在の脆弱性が修正された、感染したアプリケーションのパッチ適用バージョンや新規リリースがあるかどうかを確認します。パッチが適用されたアプリケーションをインストールしたら、クライアントコンピュータで再実行して、メモリエクスプロイト緩和機能によってそのアプリケーションが引き続き終了されるかどうかを確認します。
メモリエクスプロイト緩和機能イベントのログとレポートの検索
メモリエクスプロイト緩和機能によって終了したアプリケーションを見つけるために、ログを表示してクイックレポートを実行する必要があります。
  1. コンソールで次のいずれかの処理を実行します。
    • ログの場合は、
      [監視]
      >
      [ログ]
      >
      [ネットワークとホストのエクスプロイト緩和機能]
      ログの種類 >
      [メモリエクスプロイト緩和機能]
      ログコンテンツ >
      [ログの表示]
      をクリックします。
      [メモリエクスプロイト緩和機能によって遮断されたイベント]
      のイベントの種類を検索します。
      [イベントの種類]
      列には緩和機能のリストが表示され、
      [処理]
      列には
      [アプリケーション名]
      列のアプリケーションが遮断されたかどうかが示されます。たとえば、次のログイベントは、スタックピボット攻撃を示します。
      攻撃: Return Oriented Programming によってスタックポインタが変更されました
    • クイックレポートの場合は、
      [レポート]
      >
      [クイックレポート]
      >
      [ネットワークとホストのエクスプロイト緩和機能]
      レポートの種類 >
      [メモリエクスプロイト緩和機能検出]
      レポート >
      [レポートの作成]
      をクリックします。
      遮断されたメモリエクスプロイト緩和機能の検出を探します。
  2. 終了したアプリケーションに対する保護の監査
    誤検知をテストする際に、アプリケーションが実行されたまま検出が監査されるように、メモリエクスプロイト緩和機能の動作を変更します。ただし、メモリエクスプロイト緩和機能はアプリケーションを保護しません。
    終了したアプリケーションに対する保護を監査するには
  3. コンソールで
    [ポリシー]
    >
    [メモリエクスプロイト緩和機能]
    >
    [メモリエクスプロイト緩和機能]
    をクリックします。
  4. [緩和機能]
    タブの
    [緩和機能を選択]
    の隣で、アプリケーションを終了した機能を選択します(
    [StackPvt]
    など)。
  5. [保護されています]
    列で終了したアプリケーションを選択して、
    [デフォルト (はい)]
    [ログのみ]
    に変更します。
    検出が本当に誤検知であることを確認したら、処理を
    [いいえ]
    に変更します。
    [ログのみ]
    [いいえ]
    の両方で、可能性があるエクスプロイトが許可されますが、アプリケーションの実行は継続されます。
    一部のアプリケーションには、エクスプロイトを遮断するための複数の緩和機能があります。その場合は、各機能で個別にこのステップに従います。
  6. (省略可能)次のステップのいずれかを行い、
    [OK]
    をクリックします。
    • どの機能によってアプリケーションが終了されたかが分からない場合は、
      [このリストにあるすべてのアプリケーションの保護処理を選択]
      をクリックします。このオプションによって、各機能の設定が上書きされます。
    • 14.0.1 クライアントと 14 MPx のレガシークライアントが混在していて、14.0.1 クライアントのみをテストする場合は、
      [すべての技術の保護処理を「ログのみ」に設定]
      をクリックします。
  7. (省略可能)機能に関係なくアプリケーションをテストする場合は、
    [アプリケーションルール]
    タブの
    [保護されています]
    列で、終了したアプリケーションのチェックマークをはずして
    [OK]
    をクリックします。
    14 MPx のレガシークライアントの場合は、このオプションのみを使用できます。14.0.1 クライアントにアップグレードした後で保護を再度有効にし、詳細な設定を調整します。
    [コンピュータの状態]
    ログを開いて、どのクライアントでどの製品バージョンが実行されているかを確認します。
  8. コンソールで、
    [ポリシー]
    >
    [メモリエクスプロイト緩和機能]
    の順にクリックします。
  9. [メモリエクスプロイト緩和機能を有効にする]
    のチェックマークをはずします。
  10. [OK]
    をクリックします。
  11. つの Symantec Endpoint Protection Manager
    , で Symantec Insight が有効になっていることを確認します。Insight はデフォルトで有効になっています。
  12. クライアントコンピュータで SymDiag ツールをダウンロードして実行します。「製品の問題を検出するために SymDiag をダウンロードする」を参照してください。
  13. SymDiag ツールの
    [ホーム]
    [サポート用のデータを収集]
    をクリックし、
    [デバッグログ]
    >
    [拡張]
    オプションで、
    [WPP のデバッグ]
    >
    [トレースレベル]
    [詳細]
    に設定します。
  14. 誤検知の検出を再現します。
  15. ログの収集が完了した後に、
    .sdbz
    ファイルを に提出します (新しいケースを開くか、既存のケースに新しい情報を更新して)。
  16. 検出されたアプリケーションを SymSubmit サイトに提出し、以下のタスクを実行します。
    • 検出が発生したタイミングを選択し、
      [B2 Symantec Endpoint Protection 14.x]
      製品を選択し、
      [C5 - IPS]
      イベントをクリックします。
    • 送信メモには、前のステップのテクニカルサポートのケース番号、MEM 検出がトリガされたアプリケーション、アプリケーションのバージョン番号に関する詳細を入力します。
      たとえば、次のような情報を追加できます:
      "Blocked Attack: Return Oriented Programming API Invocation attack against C:\Program Files\VideoLAN\VLC\vlc.exe"
      、vlc.exe のバージョンは 2.2.0-git-20131212-0038 です。これは最新の利用可能なバージョンではありませんが、組織で使用する必要があるバージョンです。
  17. クライアントコンピュータで、次の場所にある提出フォルダのコピーを圧縮します:
    %PROGRAMDATA%\Symantec\Symantec Endpoint Protection\CurrentVersion\Data\CmnClnt\ccSubSDK
    このフォルダをテクニカルサポートに提出し、以前のステップで開いた誤検知の提出の追跡番号を通知します。テクニカルサポートがすべての必要なログと資料に変更が加えられておらず、誤検知の調査と関連付けられていることを確認します。