はじめに
Windows Connectorの6.0.5以降で搭載しているExploit Preventionエンジンによって、予期せぬアプリケーションが停止された場合や、クラッシュが発生した場合、開発側での分析のために、Exploit Prevention用のDiagnosticsツールによるログ取得を依頼させていただく場合がございます。
本記事ではExploit PreventionのDiagnostics Tool(以下、本ツール)の使用方法を説明します。
なお、本ツールは、通常のSupportで取得するDiagnosticとは別のExploit Preventionエンジン専用のDiagnosticsとなり、Connectorのインストーラには含まれていませんので、お間違いのないようご注意ください。
本ツールは、Exploit Preventionで誤検知が発生した場合の基本的なログの取得と共に、Windows Connectorに未搭載の最新のExploit Preventionエンジンを使用し、テストすることによって、お客様事象が既知の事象であり、将来的なWindows Connectorにて修正されるものか、未知の事象であるか判断することが可能です。
既知の事象である場合は、将来的なWindows Connectorのバージョンアップをお待ちいただくことになります。
未知の事象であった場合は、後述のDLL Debug Toolの取得によって、さらに詳細の原因分析を実施することになります。
前提条件
- Windows Connector 6.0.5以上でExploit Preventionが有効なConnectorがインストールされている環境が対象となります。
- 本記事ではExprevDiagnosticTool-v3.24-163を使用しております。将来的に使用方法やGUIは変更になる場合がございます。
本ツールを使用する前に確認のお願い
本ツールはCisco TACの判断があって、取得が必要になった際に、Cisco TACからその都度ツール本体のファイルを取得してください。古いツールを使用してログを取得しても解析に必要な情報が得られません。
過去に使用したことがあっても、一旦、Cisco TACへ最新のファイルの確認をお願いします。
ExPrevDiagnosticTool取得手順
取得したファイルを展開します。
こちらの例ではDesktop上にExPrevDiagnosticTool-v3.24-163のフォルダ配下に展開しています。

RunExPrevDiagnosticTool.batを右クリックし、「管理者として実行」します。

Step 1 Introduction
Diagnostic ToolのGUIが起動します。GUIの左上に現在のStep 1 of 5と表示されており、本ツールがStep 1 - Step 5までの5段階で動作することが確認できます。Step 1ではIntroductionとしてツールの説明および、ツールを動作させるために、AMPのサービスが停止するので、ツール使用後は、AMPのサービス起動を確認する必要がある旨、記載されております。
このStep 1で、Start Testをクリックしますと、Step 2に移行しAMPのサービスを一旦停止しますので、サービスが停止しても問題ないことを確認したのち、Start Testをクリックしてください。

Step 2 Pre-Checks
AMPのサービスはこの時点で停止し、Step 2に移行します。Step 2では、テストを実行する前の準備として、AMPのDirectoryの確認、Connector Passwordの必要性の確認、および、事象が発生しているプロセスを確認します。
もしConnector Protectionのパスワードが設定されている場合はパスワードを入力しなければ、AMPのサービスを停止させられないため、設定したパスワードを管理者様に確認し、入力し、AMPサービスを停止します。
問題が発生しているプロセスを後ほどAuto Launchで起動するべく、選択するために、今回問題が発生したプログラムを起動します。(この例ではPowerPointに問題があった前提でPowerPointを起動しておきます。)
後で述べますが、必ずしもAuto Launchを使用する必要はございません。手動でプロセスを起動してテストすることも可能です。
Auto Launchを使用する場合は、Select Processをクリックします。

現在起動しているProcess一覧が以下の通り表示されますので、先ほど起動した被疑箇所となるプロセスを選択し、Selectをクリックします。(この例では前述の通り、PowerPointを使用します。)

先ほどの画面に戻ります。Auto Launchで後ほどツールによって、被疑のプロセスを自動起動させるために、一旦起動したPowerPointを停止します。
Test Auto Process Launchをクリックし、問題のあったプロセスが自動的に起動することを確認します。

Test Auto Process Launchによって、起動したプロセスを改めて停止します。
これでテストの実行のための準備が整いました。
Proceedをクリックし、テストを開始します。

Step 3 Run Current Version
テストを開始すると、Step 2 から Step 3に移行したことを確認できます。Step 3では、現在のWindows端末のConnectorに内蔵されているExploit Preventionのエンジンを用いて、事象の再現をテストします。

Auto Launchで先ほど選択したプロセスが自動的に起動しますので、事象の再現を行います。
もし、Auto Launchでプロセスが起動しない場合や、Auto Launch経由で事象の再現が出来ない場合は、手動でプロセスを起動し、事象の再現を試みます。
Step 3は、現在端末にインストールされているConnectorに含まれるExploit Preventionエンジンによる再テストであるため、通常、ここでは事象は再現することになるはずであり、ここで再現しない場合は、本ツールによるログ取得は中断して、現在のConnectorで事象が再現するか、再現手順が正しいかを改めて確認いただく必要があります。
もし、再現が成功して、プロセスのクラッシュ、もしくは攻撃を検知されたと判断すると、情報を記録し、次のStep 4に移りますが、クラッシュもしくは攻撃を検知しない場合(例えばプロセスがハングなどの状態で完全にはプロセスが落ちていない場合)、ツールとしては必要な情報が得られません。この場合は、手動でプロセスのメモリdumpを取得して分析する必要があり、"Issue was reproducable" をクリックしてダイアログでYESをクリックしますと、Process Explorerが起動しますので、対象のプロセスを右クリックし、Create Dump -> Create Full Dumpを実行してプロセスのDumpを取得し、後ほどTACへ送付します。
(自動的にクラッシュ・攻撃を検知した場合は、"Issue was reproducable"をクリックする必要なく、自動的にクラッシュ時のメモリダンプが生成され、次のStepに自動的に移ります。)

Step 4 Run New Version
自動的にクラッシュ、攻撃を検知するか、Process Explorerを起動して手動でdumpを取得すると、本ツールは次のStep 4に移ります。Step 3の時点で事象を再現した後、現在のStepを必ず確認し、正常にStep 4に進んでいることを確認してください。ここで、Step 3のままである場合には、正しくツールがクラッシュ・攻撃を検知していないか、手動でのメモリダンプを取得していないことになります。また、Step 4を飛ばしてStep 5まで来ている場合は、クラッシュ・攻撃が複数回検知されており、ログが正しく取れていない可能性がありますので、再度ログ取得を最初から実施ください。
Step 4では、現在AMPの開発チームが保持している最新のExploit Preventionエンジン(まだリリース済みのWindows Connectorに搭載されていない開発中の新しいエンジン)を使ってテストをします。
このテストのため、本ツールでは常に最新のツール本体をTACから取得する必要がございます。

Step 3と同様の手順で事象を再現させます。次のStep 5への移行に関しては、Step 3 -> Step 4と同様に自動もしくは手動にて行われます。
ここで仮にStep 3では事象が再現し、Step 4では事象が再現しないという場合は、将来的なConnectorのバージョンアップにて、お客様事象が改善するということを示しますので、解決策としては、まだ最新のConnectorをインストールしていない場合は、最新版をインストールいただきます。もしくは、すでに最新版のConnectorをご利用いただいている場合は、新Connectorのリリースを待つということになります。
Step 5 Results
Step 4からStep 5に移行しますと、ツールの最終的な結果が表示されます。Step 3、Step 4にて事象が再現する場合は、未知の事象ということになりますため、本ツールで取得したログと合わせて、後述のDLL Debug Toolにて、さらに原因の詳細を分析していくことになります。

最後に、Finish and Exitをクリックすると、Diagnosticファイルが生成されます。実行したフォルダ配下にDiagnosticCollectionsというフォルダが生成され、その配下にDiagnosticsファイルが生成されます。こちらのファイルを取得してCisco TACへ送付します。(ここではCiscoDiagnosticCollection-2019-04-01-18-59-51.zipというファイルが生成されています。)

未知の事象であった場合
Exploit Prevention DiagnosticツールのStep 3、Step 4で事象が再現するということは、未知の事象であることを示しており、その場合はWorkaroundの提供および事象の分析のために、DLL Debug Toolを用いて、事象の発生源をさらに深堀し、Exploit Prevention Engineのどの機能、および、どのDLLにて事象が発生しているのかを特定する必要がございます。
DLL Debug Toolに関しては、以下の記事を作成しておりますので、ご確認ください。
[AMP] Exploit Prevention DLL Debug Toolの使用方法
補足事項
ログからの事象の絞り込みのため、Exploit Prevention Diagnosticファイルの取得と合わせて、以下の情報をご連絡お願いします。
- Exploit Prevention Diagnostic Toolを使って事象を再現させた日時
- 事象を再現するために実施した操作の内容