Japan
サイト内の現在位置
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になっていることを確認します。
そして、VMにMonitoring agentがインストールされているかの確認も行います。ASCの「計算とアプリ」→「VMおよびサーバー」とたどり、対象のVMをクリックします。下の図のように、「合格した評価」に「仮想マシンに監視エージェントをインストールする」が表示されていればOKです。エージェントがインストールされていない場合、「推奨事項」に表示されるはずですので、「クイック修正」を利用してのインストールや公式ドキュメントを参照して手動でインストールしてください。
これで、環境の準備は完了です。
2.WMIによるプロセス実行
ここから、攻撃の実行に移っていきます。ここでは、攻撃用VMからwmicコマンドを使用し、攻撃対象VMの操作を行います。
-
system32にあるsvchost.exeを別フォルダにコピー
wmic /node:"<攻撃対象VMのIPアドレス>" process call create "cmd.exe /c copy c:\windows\system32\svchost.exe c:\job\svchost.exe"
-
svchost.exeの実行
wmic /node:" <攻撃対象VMのIPアドレス>" process call create "cmd.exe /c c:\job\svchost.exe"
svchost.exeの実行が完了したら、ASCのアラートを確認します。脅威が検知された場合、図のように重要度で色分けされて棒グラフが表示されます。ここまでの手順では、svchostの実行が検知されていれば正しく設定できています。
画面下部に表示されているアラートの説明をクリックすることで、詳細情報を確認することが可能です。詳細画面では、挙動が確認されたマシン名や、実行されたファイルパスなどの情報が確認できます。
3.Mimikatzの実行
次は、PsExecを使用し、攻撃元VMから攻撃対象VMでMimikatzを実行します。PsExecはMicrosoft製のリモート管理ツールですが、利便性から攻撃者に悪用される場合があります。
-
攻撃対象VMでのcmd実行
PsExec.exe /accepteula \\<攻撃対象VMのIPアドレス> cmd
-
操作中マシンの確認
hostname
-
Mimikatz配置フォルダへ移動
-
Mimikatzの実行
mimikatz.exe “privilege::debug” “sekurlsa::logonpasswords” “exit” >> c:\tools\target-pc.txt
Mimikatzの実行が完了したら、再度ASCのアラートを確認します。アラートが増えていることが確認できれば成功です。
Playbookには他の手順も掲載されていますが、今回のテストはここで終了にします。
Azureでのディスクフォレンジック
ここからは、侵害を受けたAzure上のマシンのディスクを保全し、侵害の痕跡を探すフォレンジック作業を行います。大まかな手順は次の通りです。
-
ディスクのスナップショットの取得
-
スナップショットからディスクを複製
-
ツールを使用し、ディスクの調査
1.ディスクのスナップショットの取得
まずはディスクのスナップショットの作成を行います。攻撃対象VMのOSディスクの詳細画面にあるスナップショットの作成をクリックし、スナップショットを作成します。スナップショットの作成は数秒で完了します。
2.スナップショットからディスクを複製
次に、調査用VMを新たに作成します。VM作成後、ログイン可能か確認しておきましょう。次に、先ほど作成したスナップショットからディスクを作成し、調査用VMに追加します。「VM詳細画面」→「ディスク」と辿ると下記の図のような画面が表示されるので、「データディスクの追加」→「ディスクの作成」と選択していきます。
ディスク作成画面に移動するのでディスクの名前を入力し、「ソースの種類」はスナップショットを選択します。ソースのスナップショットの選択欄が表示されますので、攻撃対象から作成したスナップショットを選択しましょう。ディスクのサイズを選択後、「作成」をクリックするとディスクの作成処理が行われます。
ディスクの作成が完了するとVMのディスク画面に戻りますので、ホストキャッシュを「なし」にしておき画面上部の「保存」をクリックしてディスクの追加を反映させます。ディスクの追加が完了したら、調査用VMにログイン、「ディスクの管理」を開き、保全のため、追加したディスクがオフラインになっていることを確認します。
3.ツールを使用してのディスクの調査
今回は、フォレンジックツールとしてFTK Imagerを使用します。FTK Imagerをインストール後、実行し、「File」もしくは上部のバーから「Add Evidence Item」を選択します。選択後、ソースファイルの選択画面が表示されるので、「Physical Drive」を選択し、次の画面でスナップショットから作成したディスクを選択します。
アイテムの追加が完了すると、Evidence Treeにディスクのディレクトリが表示されます。「Windows\System32\winevt\EventLogs」にはSecurityログや、Systemログが格納されています。FTK Imagerではファイルのエクスポート、ハッシュ値の出力が可能ですので、Event Viewerでのログ内容の確認、確認時にファイルが改竄されていないかチェックすることも可能です。Securityログを確認すると、図のようにMimikatzが実行されたことを示すログが残っていました。実行されたファイルパスも記載されており、今回の私の環境の場合、「Partition2」→「Windows[NTFS]」→「root」→「Tools」→「x64」と辿ることで、攻撃対象VMで実行された「mimikatz.exe」が確認できます。
まとめ
今回は、ASCのアラートテスト方法および、Azure上でのディスクフォレンジックの方法をご紹介しました。アラートテスト方法は、ASCでのアラート検知後の対処を自動化した際に自動化が正常に動作するかの確認といった、アラートが動作するか、内容の確認以外にも使用可能です。フォレンジックについて、クラウドの場合、スナップショットの作成によるディスクの複製が容易に行える利点を感じました。今回のようにログや実行ファイルがそのまま残っていることは少ないとは思いますが、フォレンジックのための手順を知っていただく一助になれば幸いです。
参考情報
Azure Security Centerとは
https://docs.microsoft.com/ja-jp/azure/security-center/security-center-intro
Azure Security Center Playbook: Security Alerts
https://github.com/Azure/Microsoft-Defender-for-Cloud/blob/main/Simulations/Azure%20Security%20Center%20Security%20Alerts%20Playbook_v2.pdf
PsPing v2.1
https://docs.microsoft.com/ja-jp/sysinternals/downloads/psping
セキュリティアラート リファレンスガイド
https://docs.microsoft.com/ja-jp/azure/security-center/alerts-reference#alerts-for-windows-machines
PsExec
https://docs.microsoft.com/en-us/sysinternals/downloads/psexec
Mimikatz
https://github.com/gentilkiwi/mimikatz
ACCESSDATA Product Downloads(FTK Imager)
https://accessdata.com/product-download
執筆者プロフィール
山田 道洋(やまだ みちひろ)
セキュリティ技術センター セキュリティ実装技術チーム
NECグループのセキュア開発・運用を推進。主にクラウドのセキュアアーキテクチャ検討、リスクアセスメントに従事。
執筆者の他の記事を読む
アクセスランキング