Azure VM insights+Azure Monitorで悪意あるIPとのネットワーク接続監視やってみた

2020-09-21Azure,Monitor,Virtual Machine

今回はVM Insightsの設定からリソース情報を表示、通信情報(Vm Connections)のKQLクエリ作成から確認、最後にVM InsightsとAzure Monitorを使ってBotnet等の悪意あるIPからの通信についての監視設定まで試してみました。

スポンサーリンク

Azure VM insights(旧Azure Monitor for VMs)とは

Azure VM insightsを使うとリソース情報が見れる

Azure VM insights(旧Azure Monitor for VMs)を使うとVMのCPU使用率、メモリ使用率、Disk使用率と言ったリソース情報が取得出来ます。
仮想マシンで取得されるMetrics情報ではCPU使用率など限られた情報になりますが、Azure VM insightsを使うとメモリ使用率といった情報の細かい情報を取得出来ます。

Azure VM insights(公式サイト)

  • リソース使用率表示例

Azure VM insightsを使うと仮想マシンのネットワーク接続情報も見れる

リソース情報だけではなく、マップ機能を使って仮想マシンのネットワーク接続情報を見れます。

  • マップ機能を使ったネットワーク接続情報表示例

Azure VM insightsのネットワーク接続情報では悪意あるIPとの通信を検知できる

この接続Azure VM insightsの通信情報(Vm Connections)を使うと悪意あるIPとの通信についても確認する事が出来ます。

Azure VM insights(悪意あるIP)(公式サイト)

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

Azure VM insightsの設定を行う

Azure VM insightsにはLog Analyticsワークスペースが必要

Azure VM insightsはLog Analyticsへログを転送する事で情報を取得します。

VM insights の構成(公式サイト)

その為構成にはLog Analyticsワークスペースの作成が必要になります。
今回は事前に作成済みと言う前提で進めます。

Azure VM insightsの設定作業は2つ

    • 設定内容
      • Log Analyticsワークスペース作成
      • 仮想マシンの分析情報を有効化
        • 有効化するとVM Insightsに必要なエージェントが自動的にインストールされます

なお仮想マシンのメニューで分析情報を有効化する為には仮想マシンを実行しておく必要があります。
設定段階でLog Analyticsワークスペースを一緒に新規作成することも可能です。

Azure 仮想マシンの分析情報で設定

Azure仮想マシンで分析情報(VM Insights)の設定を行います。Azure Monitorの方からも設定可能です。こちらを参照ください。
Log Analyticsワークスペースが必要になりますので、転送先がない場合は事前に作成しておきます。
すでにLog Analyticsワークスペースと接続設定済みである場合は、そのLog Analyticsワークスペースが選択されます。

1)仮想マシン(Virtual Machine)のメニューで分析情報(Insights)を選択すると下記画面が表示されますので、有効をクリックします。

※なおAzure Monitor for VMsと表示されます。

2) Insightsのオンボード設定が表示されますので、Log Analyticsワークスペースを指定して有効をクリックします。(Log AnalyticsワークスペースとAzure VMは同じロケーションを指定が推奨です。)

これでAzure VM Insightsの設定は完了です。

Azure VM InsightのデータをLog Analyticsワークスペースで確認

Azure 仮想マシンの分析情報(VM Insights)でリソース情報を確認

仮想マシンでログを選択するログの検索画面(Log Analyticsワークスペース)が表示されます。

リソース情報はInsightMetricsの項目で表示されます。
1つの例としてWindowsOSのCドライブのディスク使用率(空き容量の%)を時間別に並べて確認してみます。

InsightsMetrics
| where TimeGenerated > ago(1h)
| where Namespace contains “Disk"
| where Tags contains “C:"
| where Name contains “FreeSpacePercentage"
| order by TimeGenerated
| project TimeGenerated,Computer,val

実際にクエリを実行すると以下のように仮想マシンのディスク使用率(空き容量の%)結果が得られます。

TimeGenerated Computer val
2020/9/21 17:20:11.000 仮想マシン名 91.764
仮想マシン名 91.764
仮想マシン名 91.764

Azure VM Insights+Monitorで悪意あるIPとのネットワーク接続監視を行う

Azure VM Insightsで得られたデータをもとに不正アクセス監視を行ってみます。

VM Insightsのネットワーク接続情報にはBotnetやPhishing等の脅威情報が含まれる

Azure VM Insightsのネットワーク接続情報を使うと悪意あるIPとの通信情報が取得出来ます。

悪意のある IP(公式サイト)

実際に検索してみます。過去24時間で仮想マシンに対して検出される脅威のインジケーター(IndicatorThreatType)が空白でない(脅威がある)ネットワーク接続があった場合のリストを表示するようにしています。表示項目には重大度を含んでいます。

VMConnection
| where TimeGenerated > ago(24h)
| where IndicatorThreatType != “"
| project TimeGenerated,Computer,SourceIp,Severity,IndicatorThreatType

実際にBotnetからのアクセスがあった場合にはこのような結果が表示されます。

TimeGenerated(UTC) Computer アクセス元IP 重大度 脅威のインジケーター
202X/MM/DD hh:09:48.576

VM名

167.94.XXX.XXX 3 Botnet
202X/MM/XX hh:07:45.697

VM名

185.220.XXX.XXX 3 Botnet

※表示項目にDirectionを追加するとInbound通信かOutbound通信かも表示されます。

Azure Monitor+VM Insightsで悪意あるIPとの通信を監視

Azure Monitorで悪意あるIPとの通信があった場合にアラート通知するように設定してみます。

1)Log Analyticsワークスペースのメニューで警告を選択すると下記画面が表示されますので、新しいアラートルールをクリックします。

2)アラートルールの作成画面が表示されますので、条件の選択をクリックします。

3)シグナルロジックの構成画面が表示されますので、シグナル名でCustom log searchを選択します。

4)シグナルロジックの構成の画面で以下の通り設定します。今回は15分間隔での監視設定にしています。
検出する為の条件は色々あるかと思いますが、今回は脅威のインジケーター(IndicatorThreatType)が空白でない場合を条件としています。Inbound、Outbound関わらず検出するようにしています。

  • 検索クエリ

VMConnection
| where TimeGenerated > ago(15m)
| where IndicatorThreatType != “"
| summarize count() by RemoteIp,IndicatorThreatType
| where count_ > 0

  • アラートロジック
    • 基準:結果の数
    • 演算子:次の値より大きい
    • しきい値:0
  • 評価基準
    • 期間;15分
    • 頻度:15分

実際の設定はこのような感じになります。

設定が終わったら完了をクリックします。

アクションルールやアラート名の設定等を行えばAzure Monitorの設定は完了です。

最後に

Azure VM Insightsのネットワーク接続情報を使った監視が出来る事が分かりました。
実際にアラートが発生するとこのようなメールが届き危険なネットワーク接続があった事が分かります。

Insights

Top 10 result(s)

RemoteIp 185.220.XXX.XXX
IndicatorThreatType Botnet
count_ 1