この記事は更新から24ヶ月以上経過しているため、最新の情報を別途確認することを推奨いたします。
初めに
2019年の9月に監視のサービスとして「Azure Sentinel」がGAされましたが、(多分)気になっている人も多いかと思います。
なので、今回はこの「Azure Sentinel」で何ができるのかを、以下項目を元に紹介していきたいと思います。
-
- Azure Sentinelの概要
- Azure Sentinelの機能① ~ログの収集~
- Azure Sentinelの機能② ~脅威の検出~
- Azure Sentinelの機能③ ~インシデントの調査~
- Azure Sentinelの機能④ ~自動対処~
- 個人的な印象
1.Azure Sentinelの概要
「Azure Sentinel」というサービスはざっくり言うと、以下になります。
オンプレからクラウドまで幅広く監視を行うことができるオールインワンな監視サービス
もう少し補足すると、上記2つの他にも、Office365などのSaaSやSymantec・Trend Micro などの
サードパーティのセキュリティ製品など幅広いサービスのログを収集可能で、且つ、
脅威対策で必要な以下4つの項目の全てを「Azure Sentinel」1つで解決することが可能です。
- ログの収集
- 脅威の検出
- インシデントの調査
- 自動対処
また、セキュリティの専門家でなくても扱えるようなサービスを目指しているようで、
人材不足でセキュリティに手が回っていないという方がいたら、
こちらのサービスを導入するによって、その問題が解消するかもしれません。
2.Azure Sentinelの機能① ~ログの収集~
2.1. 取得可能なログの範囲
収集可能なログの範囲は以下の通りです。
[サービス]
- アマゾン ウェブ サービス – CloudTrail
- Azure アクティビティ
- Azure Security Center
- Cloud App Security
- Office 365 etc…
[サーバー]
- Windows ファイアウォール
- Windows セキュリティ イベント
- ドメイン ネーム サーバー
- Linux サーバー etc…
[ファイアウォール、プロキシ、エンドポイント]
- Cisco ASA
- Fortinet
- Trend Micro Deep Security etc…
量が多いので、上記では主な部分しか記載していません。詳細な範囲を知りたい方は以下URLにでご確認ください。
データ ソースを Azure Sentinel に接続する | Microsoft Docs
2.2.ログ収集時のデータの流れ
Azure Sentinelでは、以下図のようにデータソースから送られてきたログデータはAzure Sentinel自身ではなく、
Log Analyticsに保存されるような仕様になっております。
従って、Azure Sentinelの使用料金を見積もる際は、Log Analyticsの料金も考慮する必要があります。
※Azure Sentinelの料金を見積もる際は、保存されたログデータの容量ではなく、
分析に使用するログデータの容量で計算する必要があります。
3.Azure Sentinelの機能② ~脅威の検出~
3.1.6種類の脅威検知の手法
Azure Sentinelでは以下6つの脅威検知の手法を提供している。
(2つはまだ実装されていないので、現時点では4つの手法を提供している。)
- 既存の脅威検知エンジンの利用
- 分析
- ビルトイン機械学習モデル
- MLFusion
- ユーザー分析(現時点では未実装)
- カスタム機械学習モデル(現時点では未実装)
3.2.既存の脅威検知エンジンの利用
Azure Sentinelでは、既存にある以下の脅威検知エンジンと連携し、
その脅威検知エンジンから検出されたものを元に脅威アラートを生成することができます。
(自分でアラートルールを作成しなくても、連携させるだけで、
検出した脅威をそのままAzure Sentinel側でアラートとして挙げてくれます。)
- メール:Office365 ATP、Threat Intelligence
- デバイス:Windows Defender ATP
- ID:AzureAD Identity Protection、Azure ATP
- アプリ:Microsoft Cloud App Security
- データ:Azure Information Protection
- インフラストラクチャ:Azure Security Center
3.3.分析
脅威検知エンジン以外から送られてきたログデータ(例えば、Windowsのイベントログなど)から
アラートを作成するためには、別途アラートルールを作成する必要があり、
このルールに引っ掛かったイベントが脅威として検知されます。
但し、アラートルールのテンプレートがあり、種類も豊富なので、そこまで難易度は高くありません。
アラートルールを独自で作る場合は、Microsoftによって開発されたKUSTOクエリを使って、ルールを作成する必要があります。
KUSTOクエリ側では、対象となるデータソースと、脅威かどうかを判定するためのしきい値を指定し、
その条件に合ったデータを出力(イメージとしてはSQLのSelect文の出力結果)を行います。
そして、Azure Sentinel側で、KUSTOクエリで出力された内容から脅威アラートを生成します。
3.4.ビルトイン機械学習モデル
異常なサインインの検知の部分で、機械学習モデルが使用されており、以下流れで検知される。
- 45日間の履歴から分析し、アクセス頻度/時間に基づいて重みづけ
- 重みづけした結果を元にアクセス場所間の部分マッピングを実施
- 上記を元に、アクセス可能な場所を推測
3.5. MLFusion (Machine Learning Fusion)
3.1. の複数の脅威検知エンジンで検出したアラートの相関分析を行い、脅威を特定します。
この相関分析では、既存の想定した1つのKill Chainへの当てはめではなく、
シミュレーションに基づき、 複雑で複数のステップにまたがる攻撃過程を特定することができます。
また、アラートの乱発を防ぎ、本当にに重要なケースを抽出することも可能なようです。
こちらの機能は以下Azure Sentinelのポータル画面の「分析」のところで、デフォルトで有効になっています。
従って、Azure Identity ProtectionやMicrosoft Cloud App Securityなどの
脅威検知エンジンと連携させることで、自動で相関分析も実施してくれます。
3.6. 今後実装される脅威検出の手法
[ユーザ分析(User Entity Behavior Analytics)]
- Azure ATPと連携し、Azure SentinelおよびMicrosoft365上でのユーザーのアラートやアクティビティを分析、
より監視なユーザーを特定する機能が実装されるとのこと。
[カスタム機能学習モデル]
- 独自のMachine Learningモデルを構築して分析を可能とする機能が実装されるとのこと。
- 現状で以下が実装されています。
- Python3.6でのAzure Sentinelのデータ処理や分析(APIを使用可能)
- Jupyter NotebookでのAzure Sentinelのデータの処理や分析(APIを使用可能)
- 将来的にはテンプレートを元にカスタムの機械学習モデルをユーザーが作成できるように実装されるとのこと。
4.Azure Sentinelの機能③ ~ インシデントの調査 ~
Azure Sentinelでは、様々なログから脅威を検出して、アラートを生成しますが、
関連する複数のアラートは1つの「インシデント」としてまとめられます。
従って、この「インシデント」単位での脅威の調査を行います。
実際のAzure Sentinelの画面では、インシデントの「調査」を実施すると、以下のような画面が表示されます。
以下画面から、インシデント内にある複数の脅威の相関性が表示されるので、
このインシデントの元となる脅威の特定に役に立ちます。
また、タイムラインで見ることも可能なので、時系列の把握をすることができます。
5.Azure Sentinelの機能④ ~自動対処~
AzureSentinelの「プレイブック」から、Logic Appsを作成し、
LogAppsに、このパターンのエラーが来た場合はこの処理を実施させるといった
内容を記載することで、脅威に対する自動処理を実装することができます。
一応テンプレートもありますが、数が少なく、主に自分たちで自動化処理の部分を作成する必要があります。
ですので、この部分については比較的難易度が高いかと思います。
6.個人的な印象
- データソースとAzure Sentinelとの連携は比較的容易だと思います。
- 脅威の検出は、自分でKUSTO言語を書いてアラート規則を作成する必要がありますが、
テンプレートのアラート規則が豊富にありますので、難易度は高くないと思います。 - 脅威の検出で、今後出るカスタム機能学習モデルに期待が持てそうです。
- インシデントの調査で、グラフィカルに相関性を見ることができるのも良さそうです。
但し、なんだかんだ見る項目が多そうなので、少し慣れが必要かなと思います。 - 自動対処のところは、LogicAppsを各個人で勝手に作ってくれという感じなので、
もう少しテンプレートを用意してほしいなと思いました。