Microsoft Defender ATP でマルウェア実行時の状況を確認

皆さんこんにちは。国井です。
先週はもともと海外出張に出る予定だったのですが、コロナウイルスの影響でキャンセルになってしまいました。そのため、2020年4月にスタート予定の「Microsoft 365 を利用したインシデント対応」トレーニングコースの制作を地道に行っておりました。ただ、書くことがあまりにもたくさんあり過ぎて、テキストから除外することになったトピックがあるのでシェアしたいと思います。

ちょっと広い視点から

Microsoft 365を利用するメリットには色々なものがあると思いますが、そのうちのひとつに「セキュリティ」があると思います。セキュリティ対策には防御、検知、対応のプロセスが必要と最近はよく聞きますが、

検知ってどうやってやるの?
対応ってどうやってやるの?

という話はお客さんと話をしていると、割とよく聞く話だったりします。
フルマネージドなサービスに入って専門家に面倒を見てもらっている会社さんならまだしも、Microsoft 365を買ったんだから自分たちでやりたい (もしくは「やれ!」と言われている) 会社さんもあるのではないかと思います。
Microsoft 365には、Office 365 ATPやMicrosoft Defender ATPなどのサービスを通じて不正アクセスの検知や対応ができる仕組みを用意していて、自動インシデント対応や自動調査の仕組みがあるから、本当に対応が必要なものに注力できると、マイクロソフトは言います。

しかし、ボットに感染した、ランサムウェアに感染した、などの自動調査機能で対応できる、ありきたりの攻撃であったとしても、これからインシデント対応の業務に従事する人からしてみれば、「ありきたりではない」わけです (誰でも初めてってありますからね)。
そのため、どういう攻撃があれば、Microsoft 365でどういうアラートを出してくれて、どのようなインシデント対応が必要なのか?そして何を自動化してくれるのか?を体験しておかなければ「ありきたり」な攻撃であったとしても、対応を誤る可能性がありますし、対応方法の策定段階から適切な設計ができない可能性があるわけです。

そこで、Microsoft 365 を利用したインシデント対応というコースを作ったわけですが、そこでベーシックな攻撃とその対応を見てみようと思います。(前置き長い!)

ランサムウェア?に感染してみた

マイクロソフトではMicrosoft 365を利用してインシデント対応を行う際に利用可能なシミュレーションとして、いくつかのサンプルを用意していて、その中のひとつにランサムウェアがあります。

http://aka.ms/ioavtest

ファイルをダウンロードして実行すると、わかりやすいメッセージ画面が表示されます。

image

実際にはファイルが暗号化されることはなく、ランサムウェアというよりはジョークウェアだったりします。なので安全にどこでも検証できるのですが、実際にはMDATPなど使わなくてもWindows Defenderウイルス対策で検出できます。
ですが、そこは敢えてWindows Defenderウイルス対策で検出できないように設定しておいて、あらかじめMDATPでオンボーディングしておいたデバイスから無理やり実行します。

MDATPでインシデント対応

中身はどうなっているかMDATPで見てみます。
上記のURLからダウンロードしたファイルはvalidatecloud.exeという名前で、MDATPの[Machine list]から特定のデバイスを選択し、[Timeline]を選択すると、以下のようにvalidatecloud.exeにアクセスしている様子が確認できます。
(※ちなみに画像はインシデント対応した後のものなので、Remediatedとなってます)

image

特定のタイムラインをクリックすると、その詳細が確認できます。ここで気が付いた方もいると思いますが、今回はブラウザーからダウンロードしているので、パスがMicrosoftEdge配下になっています。言い方を換えると、このマルウェアはブラウザー経由で流入したものだとわかります。

image

続いて[Alert]メニューを確認します。
MDATPではマイクロソフトが保有する「インサイト」と呼ばれる情報などと照らし合わせて、不正アクセスと思われる事象があれば、アラートを発生させます。
今回はvalidatecloud.exeがマルウェアだということは既に知っていることなので、Timelineから見ましたが、現実の世界ではアラートから確認していくのが一般的なアプローチになります。

image

特定のアラートを開くと、アラートへの対応状況を記録しておけます。

image

続いて[Incident]メニューを確認します。MDATPを使い始めると、インシデントとアラートは何が違うの?ってところが最初のつまづきポイントになるのですが、
国井の勝手な解釈では

アラートは不正アクセスと思われる事象
インシデントは発生したアラートに対して行うべき作業をまとめたもの

という違いがあります。
例えば、マルウェアに感染してボット経由で遠隔操作されている場合であれば、
マルウェア感染と、ボット経由の遠隔操作、の2つがアラート、
インシデントは一連のアラートをまとめたもの
ということになります。

ですので、インシデント対応をするときは、アラートで事象を確認し、
個々の攻撃の関連性などの確認・管理はインシデントメニューから、という感じです。

image

インシデントメニューから特定のインシデントを選択すると、下記の画面が出てきます。
画面の中ではインシデントに関わったデバイスやファイル群を確認できます。

image

さらにGraphタブをクリックすれば、上記の内容を可視化したグラフが表示されます。
以上のものを利用することで、今回のインシデントの特徴であったり、影響範囲であったりがわかるわけです。

image

最後に[Advanced Hunting]メニューを使ってみましょう。
Advanced HuntingはMDATPが収集したログに対するクエリ機能で、以前にも使い方を紹介させていただきました。

http://azuread.net/2019/06/18/microsoft-defender-atp/

これを使って、validatecloud.exeの利用状況を確認してみます。
ファイルの実行(プロセス)イベントはDeviceProcessEventを利用して次のように書きます。

DeviceProcessEvents
| where FileName =~ "validatecloud.exe"

すると、ログがひとつだけ表示されました。InitiatingProcessFolderPath項目を見ると、browser_broker.exeによってvalidatecloud.exeが扱われていることがわかります。前にも言いましたが、ブラウザーからvalidatecloud.exeをダウンロードし、実行することで感染したことがわかりますね。

image

ここまで大雑把な説明になってしまいましたが、MDATPでは以上のようなメニューを利用して様々な攻撃を検知し、そして調査する、修復することができます。

じゃあ、これがアプリケーションの脆弱性を悪用した攻撃だったらどうなのか?標的型攻撃だったらどうなのか?またはMDATPがアラートすらあげないような特殊なケースだったらどうなのか?などを一度検証しておくと、安心してMDATPを御社のインシデント対応プロセスの中に組み込めるようになると思うのです。

それはご自身の会社の中で行っていただいてもいいですが、トレーニングコースでも一通り見ていただけるものを用意しましたので、ご興味があれば参加してみていただければと思います。