サイト内の現在位置

Microsoft Azureでのディスクフォレンジック

NECセキュリティブログ

2020年7月3日

NECサイバーセキュリティ戦略本部セキュリティ技術センターの山田です。
今回は、Microsoft Azure(以降Azure)での脅威検知のテストおよび、ディスクの保全によるフォレンジック作業の流れをご紹介します。

Azureでの脅威検知

Azureのセキュリティサービスの1つにAzure Security Center(以降ASC)があります。ASCでは、Azure VM、オンプレミス上の仮想/物理サーバー、その他Azureサービスから収集したデータを分析することでISO27001やPCI DSSなどのポリシーに準拠しているかのチェックや、リソースに対するセキュリティ上の推奨事項の提示が行われます。さらに、料金プランをFreeからStandardに変更することでAzure上のVMでのマルウェアの実行や、悪意のあるIPアドレスからのログオンといった脅威検知機能を使用することができます。

ASCのアラートテスト

ここからは、ASCで脅威検知がされた場合にどのようにアラート表示されるかをテストするために、Azure上にデプロイしたVMでMimikatzを実行してみます。なお、今回のテストの手順はMicrosoftのTechNetに掲載されている“Azure Security Center Playbook: Security Alerts"(以降Playbook)を参照しています。

1.テスト環境

今回のテスト環境は下記の図のように構築しました。Playbookで指定されている条件に合わせ同一サブネット内にWindows Server2012(Attacker-win2012, Victim-win2012)を2台デプロイしています。VMをデプロイ後、各VMに必要なファイルを配置していきます。詳細は省略しますが、攻撃用VMにPsExecを、攻撃対象VMにMimikatzを配置します。

テスト環境のトポロジ図

VMのデプロイ、ファイルの配置が完了した時点でpingやtelnetなどを用いてお互いのVMの通信の疎通を確認しておきます。セキュリティグループでICMPを制限している場合はpingが使用できないため、一時的に制限を解除するかPsPingを利用してTCPポートに対してpingを実行しましょう。さらに、

netsh firewall set service remoteadmin enable
コマンドを実行しファイアウォールのリモートコントロールを有効化しておきます。
次に、ASCの確認を行います。Azure PortalからASCの、「価格と設定」の画面でリソースを作成したサブスクリプションの「仮想マシン」のプランがStandardになっていることを確認します。

ASCの価格レベル画面

そして、VMにMonitoring agentがインストールされているかの確認も行います。ASCの「計算とアプリ」→「VMおよびサーバー」とたどり、対象のVMをクリックします。下の図のように、「合格した評価」に「仮想マシンに監視エージェントをインストールする」が表示されていればOKです。エージェントがインストールされていない場合、「推奨事項」に表示されるはずですので、「クイック修正」を利用してのインストールや公式ドキュメントを参照して手動でインストールしてください。

Monitoring agentインストールの確認

これで、環境の準備は完了です。

2.WMIによるプロセス実行

ここから、攻撃の実行に移っていきます。ここでは、攻撃用VMからwmicコマンドを使用し、攻撃対象VMの操作を行います。

  1. system32にあるsvchost.exeを別フォルダにコピー
    wmic /node:"<攻撃対象VMのIPアドレス>" process call create "cmd.exe /c copy 
    c:\windows\system32\svchost.exe c:\job\svchost.exe"
    
  2. svchost.exeの実行
    wmic /node:" <攻撃対象VMのIPアドレス>" process call create "cmd.exe /c
    c:\job\svchost.exe"
    

svchost.exeの実行が完了したら、ASCのアラートを確認します。脅威が検知された場合、図のように重要度で色分けされて棒グラフが表示されます。ここまでの手順では、svchostの実行が検知されていれば正しく設定できています。

ASCのアラート

画面下部に表示されているアラートの説明をクリックすることで、詳細情報を確認することが可能です。詳細画面では、挙動が確認されたマシン名や、実行されたファイルパスなどの情報が確認できます。

アラート詳細画面

3.Mimikatzの実行

次は、PsExecを使用し、攻撃元VMから攻撃対象VMでMimikatzを実行します。PsExecはMicrosoft製のリモート管理ツールですが、利便性から攻撃者に悪用される場合があります。

  1. 攻撃対象VMでのcmd実行
    PsExec.exe /accepteula \\<攻撃対象VMのIPアドレス> cmd
    
  2. 操作中マシンの確認
    hostname
    
  3. Mimikatz配置フォルダへ移動
  4. Mimikatzの実行
    mimikatz.exe “privilege::debug” “sekurlsa::logonpasswords” “exit” >> c:\tools\target-pc.txt
    

Mimikatzの実行が完了したら、再度ASCのアラートを確認します。アラートが増えていることが確認できれば成功です。

Playbookには他の手順も掲載されていますが、今回のテストはここで終了にします。

Azureでのディスクフォレンジック

ここからは、侵害を受けたAzure上のマシンのディスクを保全し、侵害の痕跡を探すフォレンジック作業を行います。大まかな手順は次の通りです。

  1. ディスクのスナップショットの取得
  2. スナップショットからディスクを複製
  3. ツールを使用し、ディスクの調査

1.ディスクのスナップショットの取得

まずはディスクのスナップショットの作成を行います。攻撃対象VMのOSディスクの詳細画面にあるスナップショットの作成をクリックし、スナップショットを作成します。スナップショットの作成は数秒で完了します。

スナップショットの作成

2.スナップショットからディスクを複製

次に、調査用VMを新たに作成します。VM作成後、ログイン可能か確認しておきましょう。次に、先ほど作成したスナップショットからディスクを作成し、調査用VMに追加します。「VM詳細画面」→「ディスク」と辿ると下記の図のような画面が表示されるので、「データディスクの追加」→「ディスクの作成」と選択していきます。

イメージ作成用マシンへのディスクの追加

ディスク作成画面に移動するのでディスクの名前を入力し、「ソースの種類」はスナップショットを選択します。ソースのスナップショットの選択欄が表示されますので、攻撃対象から作成したスナップショットを選択しましょう。ディスクのサイズを選択後、「作成」をクリックするとディスクの作成処理が行われます。

ディスク作成画面

ディスクの作成が完了するとVMのディスク画面に戻りますので、ホストキャッシュを「なし」にしておき画面上部の「保存」をクリックしてディスクの追加を反映させます。ディスクの追加が完了したら、調査用VMにログイン、「ディスクの管理」を開き、保全のため、追加したディスクがオフラインになっていることを確認します。

ディスクマネージャ画面

3.ツールを使用してのディスクの調査

今回は、フォレンジックツールとしてFTK Imagerを使用します。FTK Imagerをインストール後、実行し、「File」もしくは上部のバーから「Add Evidence Item」を選択します。選択後、ソースファイルの選択画面が表示されるので、「Physical Drive」を選択し、次の画面でスナップショットから作成したディスクを選択します。

FTK Imager操作画面

アイテムの追加が完了すると、Evidence Treeにディスクのディレクトリが表示されます。「Windows\System32\winevt\EventLogs」にはSecurityログや、Systemログが格納されています。FTK Imagerではファイルのエクスポート、ハッシュ値の出力が可能ですので、Event Viewerでのログ内容の確認、確認時にファイルが改竄されていないかチェックすることも可能です。Securityログを確認すると、図のようにMimikatzが実行されたことを示すログが残っていました。実行されたファイルパスも記載されており、今回の私の環境の場合、「Partition2」→「Windows[NTFS]」→「root」→「Tools」→「x64」と辿ることで、攻撃対象VMで実行された「mimikatz.exe」が確認できます。

Securityログの確認
Mimikatz配置場所の確認

まとめ

今回は、ASCのアラートテスト方法および、Azure上でのディスクフォレンジックの方法をご紹介しました。アラートテスト方法は、ASCでのアラート検知後の対処を自動化した際に自動化が正常に動作するかの確認といった、アラートが動作するか、内容の確認以外にも使用可能です。フォレンジックについて、クラウドの場合、スナップショットの作成によるディスクの複製が容易に行える利点を感じました。今回のようにログや実行ファイルがそのまま残っていることは少ないとは思いますが、フォレンジックのための手順を知っていただく一助になれば幸いです。

参考情報

執筆者プロフィール

山田 道洋(やまだ みちひろ)
セキュリティ技術センター セキュリティ実装技術チーム

NECグループのセキュア開発・運用を推進。主にクラウドのセキュアアーキテクチャ検討、リスクアセスメントに従事。