分析情報(VM insights)+Azure Monitorで悪意あるIPとのネットワーク接続監視

2020-09-21Azure,Log Analytics,Monitor,Virtual Machine

仮想マシン(Azure VM)には分析情報(VM insights)と言うサービスがあります。
分析情報(VM insights)ではメトリック情報だけではなく、ネットワーク接続情報など仮想マシン(Azure VM)の状態を一元的に見る事が出来ます。
このネットワーク接続情報には悪意あるIPとの通信などセキュリティ情報が含まれます。

分析情報(VM insights)のネットワーク接続情報のクエリ検索からAzure Monitorを使った悪意あるIP(Botnet等)との通信監視設定まで試してみました。

スポンサーリンク

分析情報(Azure VM insights)とは

メトリクスだけはなく仮想マシン(Azure VM)の状態を一元的に見れる

分析情報(Azure VM insights)で見れる情報仮想マシン(Azure VM)ののメトリックだけではありません。
リソース依存関係、ネットワーク接続情報、OSのバージョンやリソースサイズ、アラート発生状況といった情報を一元的に見る事が出来ます。

VM insights の概要

※昔はAzure Monitor for VMsと言われてました。

分析情報(Azure VM insights)についてはこちらに纏めています。

接続情報(VM Connections)を見ると悪意あるIPとの通信が分かる

分析情報(Azure VM insights)を使うと仮想マシン(Azure VM)の接続に関する情報が表示されます。
ネットワーク接続のIPやポート情報、応答速度やデータ転送、受信量などが確認出来ます。
ネットワーク接続に関する情報には悪意あるIPとの通
信の情報が含まれます。

悪意あるIP(VM insights からログをクエリする方法)

Azure Monitorと組み合わせる事でBotnet等の悪意あるIPとの通信について検知する事が出来ます。

分析情報(Azure VM insights)の設定、接続情報確認

設定手順

分析情報(Azure VM insights)の設定手順についてはこちらを参照願います。

ネットワーク接続情報を確認

分析情報(Azure VM insights)はLog Analyticsワークスペースに収集されます。
ネットワーク接続情報はVMConnectionのテーブルに含まれます。

VMConnection確認
仮想マシン(Azure VM)のリソースメニューでログを選択します。
Virtual machinesに分析情報(Azure VM insights)で取得されるテーブルが表示されています。
VMConnectionを検索します。
仮想マシン(Azure VM)の接続情報がログとして表示されます。

脅威のインジケーター(IndicatorThreatType)を条件に検索

VMConnection テーブル内のRemoteIpについて悪意のあるアクティビティがチェックされます。

悪意あるIP(VM insights からログをクエリする方法)

脅威のインジケーター(IndicatorThreatType)等にチェック結果が出力されます。
悪意あるIPとみなされた場合のみ出力されます。それ以外の場合は空になります。

過去30日間に仮想マシン(Azure VM)へ脅威があるネットワーク接続があった場合のログを表示します。
今回は検出される脅威のインジケーター(IndicatorThreatType)が空白でない事を条件にログ検索しています。

ログ検索結果

VMConnection
| where TimeGenerated > ago(30d)
| where IndicatorThreatType != “"
| project TimeGenerated, RemoteIp, Severity, IndicatorThreatType
//仮想マシン名を表示する場合はこちら
//| project TimeGenerated, Computer, RemoteIp, Severity, IndicatorThreatType

ログ検索結果です。
BotnetとみなされるIPからアクセスがあった事が確認出来ます。

※出力項目にDirectionを追加するとInbound通信かOutbound通信か表示出来ます。

悪意あるIPとの通信を監視するアラートルール

アラートルール作成

Azure Montiorでアラートルール作成します。

    • 主なアラートルール設定内容
      • シグナル
        • カスタムログ検索
      • 測定
        • メジャー:テーブルの行
        • 集計の種類:カウント
        • 集計の粒度:15分
      • ディメンションでする
        • Computer, RemoteIp
      • アラートロジック
        • 演算子:次の値より大きい
        • しきい値:0
        • 評価の頻度:15分
      • アラートルールの詳細
        • アラートルール名:仮想マシンに怪しいIPからアクセスがありました

※アラートルールのスコープについては仮想マシンとしていますが、サブスクリプションやリソースグループ纏めた設定も可能です。
※アラートルールの作成手順は一例です。モニターから作成も可能です。

アラートルール作成
仮想マシンのリソースメニューで警告を選択します。
作成でアラートルールを選択します。
See all signalsを選択します。
シグナルはカスタムログ検索を選択します。

ログ検索クエリの入力画面が表示されます。
検索クエリを入力します。

※Directionを使用してInbound通信、Outbound通信のみの制限も可能です。

VMConnection
| where IndicatorThreatType != “"
| project TimeGenerated, Computer, RemoteIp, Severity, IndicatorThreatType

条件タブです。
設定した内容がシグナル名や検索クエリに表示されます。
アラート発生条件を設定します。
仮想マシン単位、IP単位としています。
監視間隔は15分としています。
1件でも発生した場合はアラートとしています。

アクションタブです。
事前に作成しておいたアクショングループを選択していま。

※メール送信用のアクショングループです。

詳細タブです。
アラートルール名を設定します。

確認および作成を選択してアラートルールを作成します。

作成したアラートルールが表示されている事が確認出来ます。

受信したアラートメール

アラート発生させてみます。
受信したアラートメールを確認してみます。

※疑似的にアラート発生させる為、アラートルールに設定したクエリから以下の行をコメントアウトしています。

| where IndicatorThreatType != “"

正常な通信に対してアラートを発生させています。

アラートメール

設定したアラートルール名で受信している事が確認出来ます。
ディメンションで分割した情報やカウント数も表示されている事が確認出来ます。

※ディメンションにSeverity, IndicatorThreatTypeを設定するとアラートメールに情報を表示する事が出来ます。
※サンプルはループバックアドレスのものになります。

最後に

分析情報(Azure VM Insights)のネットワーク接続情報を使って悪意あるIPとの通信を監視する事が出来る事が分かりました。
ネットワーク環境にもよりますが、仮想マシン(Azure VM)自体の設定として出来る為とても便利かと思いました。
クエリをカスタマイズする事で指定のIP以外とのアクセスや特定の国からアクセスなどの監視も出来そうです。
今後も色々試してみたいと思います。

IPアドレスを判別するKQLの纏めはこちら

IPアドレスからロケーション情報を取得する方法についてはこちらに纏めています。

スポンサーリンク