Help us understand the problem. What is going on with this article?

[Azure] クラウドネイティブな SIEM である Azure Sentinel を触ってみた

2019年9月24日 Azure Sentinel が GA(一般提供)となりました。

SIEM とは

Security Information and Event Management の略。日本語では「セキュリティ情報イベント管理」と呼ぶ。

IT 用語辞典 e-Words( http://e-words.jp/w/SIEM.html ) には、
「セキュリティソフトの一つで、様々な機器やソフトウェアの動作状況の記録(ログ)を一元的に蓄積・管理し、保安上の脅威となる事象をいち早く検知・分析するもの」と記載があります。

単にログを集めるだけなら似たようなソリューションがあると思うので、SIEM のメリットは、複数のログを横断的に分析できるところにあると思います。この領域は Splunk が強い印象ですね。
最近、プレビューですが Azure Sentinel というクラウドネイティブな SIEM が出てきたこともあり、触ってみました。

Azure Sentinel の概要

Azure Sentinel は、セキュリティ情報イベント管理(SIEM)およびセキュリティオーケストレーション自動応答(SOAR)ソリューションとのこと。SIEM は上記に記載したとおりですが、SOAR とは?
Security Orchestration and Automation Response の略が SOAR です。米国を中心に注目を集めている技術で、一般的にはオーケストレーション、オートメーション、レスポンスの3つの機能を提供しています。

つまり、Sentinel は、セキュリティに関わるログを集約、横断的に分析し、脅威を可視化、インシデントマッピング、対処までを提供するソリューションとなり、クラウドネイティブな SIEM & SOAR となります。他社製品とはこの点が違いそうですね。
現在はパブリックプレビューなので、一般提供になったら変わる可能性がありますが、現時点の Sentinel を触ってみます。
AzureSentinelOverview.jpg

Azure Sentinel を触ってみる

前提条件

  • アクティブな Azure サブスクリプション
  • Log Analytics ワークスペース(ない場合は、Sentinel の作成時に一緒に作成する)
  • Azure Sentinel ワークスペースが存在するサブスクリプションへの共同作成者のアクセス許可

Azure Sentinel の作成

Azure Portal にアクセスし、左のメニューでにて「リリースの作成」をクリックする。
次に、検索窓に「Azure Sentinel」と入力して Sentinel サービスを探す。
AzureSentinel01.jpg

Azure Sentinel サービスが表示されるので、「作成」をクリックする。
AzureSentinel02.jpg

Azure Sentinel が利用するワークスペース(Log Analytics のワークスペース)がないので、このタイミングで新規作成する。
「+追加」をクリックする。(中央の「ワークスペースの接続」をクリックしても同じ画面に遷移する。)
AzureSentinel03.jpg

「新しいワークスペースの作成」をクリックし、右側に表示された Log Analytics ワークスペースに必要項目を入力(設定値は以下を参考に)、「OK」をクリックする。

設定項目 設定値
新規作成 / 既存のものをリンクする 新規作成の場合、「新規作成」を選択。既存のもの(LogAnalytics のワークスペースのこと)がある場合は、その中から選択。
Log Analytics ワークスペース 任意の名称を入力。(緑のチェックマークが出ればOK)
サブスクリプション お持ちのサブスクリプションを選択。
リソースグループ 新規作成の場合は、下にある青字の「新規作成」を選択し、任意の名称を入力。既存のものがある場合は選択。
場所 任意の場所を選択する。
価格レベル デフォルトのまま

AzureSentinel04.jpg

作成した Log Analytics ワークスペースを選択して、「Azure Sentinel の追加」をクリックする。
AzureSentinel05.jpg

Azure Sentinel の作成完了。ここから Sentinel を利用するための設定を行います。
AzureSentinel06.jpg

データの収集

Sentinel は SIEM なので、様々なサービスからログデータを集める必要があります。
そのために、Connector を使ってログを集めるための設定を行います。
実はこの Blog を作成中にコネクタが24種類から25種類に増えていました。クラウドならではですね。
コネクタの利用には前提条件があるので、都度確認をしてください。

コネクタ名 提供元 概要
Azure Active Directory Microsoft 監査とサインインのログを収集
Azure Active Directory Identity Protection Microsoft リスクユーザー、リスクイベント、脆弱性の統合ビューが提供される。さらにリスクを迅速に修復したり、今後のイベントを自動的に修復するようにポリシーを設定したりできる
Azure Advanced Threat Protection Microsoft お客様の組織を標的にした、高度な脅威、ID のセキュリティ侵害、悪意のある内部関係者のアクションを特定、検出し、それらについて調査する
Azure Information Protection Microsoft Azure Information Protection のすべてのアラートを収集
Azure Security Center Microsoft Azure Security Center からアラートを収集
Azure アクティビティ Microsoft Azure で発生したサブスクリプションレベルのイベントの分析情報を収集
Barracuda Web アプリケーションファイアウォール Barracuda Barracuda のログを収集
Check Point CheckPoint ログファイルを Syslog CEF として保存することで、Check Point アプライアンスのログを収集
Cisco ASA Cisco Cisco アプライアンスから CEF ログと同じ方法でログを収集
Common Event Format(CEF) 任意 ログを Syslog 共通イベント形式(CEF)として保存し、ログを収集
CyberArk CyberArk 準備中
DNS Microsoft DNS サーバーからログを収集
F5 F5 ログファイルを Syslog CEF として保存することで、F5 アプライアンスのログを収集
Fortinet Fortinet ログファイルを Syslog CEF として保存することで、Fortinet アプライアンスのログを収集
Microsoft Cloud App Security Microsoft Cloud App Security からのアラートを収集
Microsoft Defender Advanced Threat Protection Microsoft 準備中
Microsoft Web アプリケーションファイアウォール(WAF) Microsoft WAF のログを収集
Office 365 Microsoft 複数のテナントから1つのワークスペースに監査ログを収集
Palo Alto Networks Palo Alto Networks ログファイルを Syslog CEF として保存することで、Palo Alto Networks アプライアンスのログを収集
Symantec Integrated Cyber Defense Exchange Symantec すべてのセキュリティソリューションのログを収集。Symantec ICDx と Azure Sentinel との統合は、REST API を使用
Syslog Microsoft Syslog をサポートする任意のオンプレミスのアプライアンスを接続し、ログを収集
Windows ファイアウォール Microsoft Windows ファイアウォールのログを収集
アマゾンウェブサービス Amazon AWS CloudTrail イベントを取集
セキュリティイベント Microsoft Windows サーバからすべてのセキュリティイベントを収集
脅威インテリジェンスプラットフォーム Microsoft 脅威インテリジェンスプロバイダーから、さまざまな種類の監視可能なもの(IPアドレス、ドメイン、URL、ファイルハッシュなど)を収集

それでは、実際に Sentinel と接続してみたいと思います。
まずは、接続対象の Windows Server を作成しておきましょう。
Windows Server の作成は今回のテーマではないので、詳細は割愛します。
以下のように、「リソースの作成」→「Windows Server 2016 Datacenter」へと進み、ウイザードに従って必要項目を入力して作成してください。
WinServer2016.jpg

接続対象ができたので、いよいよ Sentinel と接続します。
左のメニューの「Data Connectors」をクリックすると、下の画面が表示されます。
ここには、上の表に記載したコネクターが表示されます。その中から「セキュリティイベント」を選択します。
右のほうに、セキュリティイベントの説明が記載された画面が出てきますので、「コネクタページを開く」をクリックします。
AzureSentinel07.jpg

コネクタページでは、前提条件構成が表示されます。
前提条件をクリアしているかどうか確認してください。クリアしている場合、緑色のチェックマークが表示されます。
今回は前提条件をクリアしているので、下の構成に進みます。
先ほど Azure 上に Windows Server を作成したので、「Install agent on Azure Windows Virtual Machine」を選択します。
青字で「Azure Windows 仮想マシンのエージェントをダウンロードしてインストールする>」と表示されるので、これをクリックします。
AzureSentinel08.jpg

仮想マシンを自動で探してきますので、先ほど作成した Windows Server をクリックしてください。この例では「mywin2016」が対象の Windows Server となります。
クリックすると、右側に接続情報が表示されます。ここで「接続」をクリックします。
AzureSentinel09.jpg

Agent がダウンロードされ、Windows Server にインストールされます。
インストールが完了すると、下の図のように、緑色のチェックマークがマシン名の後ろのカラムにつきます。これで Sentinel と接続が完了したことになります。
AzureSentinel10.jpg

最後に、Sentinel へストリーミングするセキュリティイベントを選択します。
画面に記載のあるとおり、4種類から選択可能です。
ここでは「All Events」にしていますが、データ量が多くなると思いますので、一般的には「Common」で良いと思います。
AzureSentinel11.jpg

設定が完了しました。
AzureSentinel12.jpg

脅威の検出

先ほどの設定で、Sentinel に Windows Server のセキュリティイベントログを収集することができるようになりました。
ここでは、収集したログから脅威を検出してみたいと思います。

左のメニューの「ハンティング」をクリックします。
すると下の図の画面が表示されます。ここでは、Sentinel があらかじめ提供している16個のクエリが表示されています。
アイコンは、初期アクセス、永続性、窃盗などの脅威の種類を分類しているようです( https://docs.microsoft.com/ja-jp/azure/sentinel/hunting )。
AzureSentinel13.jpg

試しに、一番上にある「Anomalous Azure Active Directory ・・・」を選択し、右下にある「クエリの実行」をクリックします。
AzureSentinel14.jpg

下の図のように、赤枠で囲った場所に、クエリの結果が表示されます。今回は0件ですね。
AzureSentinel15.jpg

1件ずつ順番に実行しても良いのですが、「すべてのクエリを実行する」というのが用意されているので、こちらをクリックします。
AzureSentinel16.jpg

下の図のように、すべてのクエリに対して結果が表示されました。
このうち、赤枠で囲んだ2つのクエリに対し、それぞれ1件の検出がありました。こちらの中身を確認してみましょう。
AzureSentinel17.jpg

下の図では、1件が検出された「Summary of user logons by logon type」を選択し、右下にある「結果の表示」をクリックします。
AzureSentinel18.jpg

画面の真ん中にある「・・・」をクリックすると、「捜索ブックマークの追加」が表示されるので、これをクリックします。
AzureSentinel20.jpg

右側に捜索ブックマークの追加画面が表示されるので、「追加」をクリックします。
ブックマーク名は任意で設定することが可能です。ここではデフォルトのままにしています。
AzureSentinel21.jpg

同様に、「Summary of failed user logons by …」も捜索ブックマークに追加したのが下の図です。
ブックマークされたクエリの横には、黄色になった星マークと、画面上段にあるブックマークの箇所が「2」になっているのが確認できます。
疑わしいアクティビティについては、ブックマークをしておくと調査が楽になりそうですね。
AzureSentinel22.jpg

画面中央の「ブックマーク」タブをクリックすると、ブックマークした一覧が表示されます。
Sentinel では、右下にある「調査」ボタンをクリックすることで、グラフィカルな画面で調査が可能です。
AzureSentinel23.jpg

現状は残念ながらプライベートプレビューということで、登録が必要なようですが、下の図の右側にある画面のような GUI が提供されており、潜在的なセキュリティの脅威を把握することが可能です。
この機能は非常に強力な機能だと思います。
AzureSentinel25.jpg

セキュリティアラートの作成

上記までの手順で、Sentinel にログを収集し、収集したログデータからセキュリティの脅威を検出することが可能になりました。
今回は作成した Windows Server を題材にしたのでインシデントが発生していませんが、実際の運用では何らかのインシデントが発生した際には、アラートを通知して運用者に知らせる必要があります。そのためのアラートルールを作成することが可能です。

下の図のように、左のメニューの「分析」をクリックし、画面上部の「+追加」をクリックすることでルールの作成が可能です。その後の手順は、画面ウイザードに従って設定することが可能です。
詳しくは https://docs.microsoft.com/ja-jp/azure/sentinel/tutorial-detect-threats を参照ください。
AzureSentinel26.jpg

自動化と調整

アラートの通知があった後、多くは人の判断を必要とすると思います。とはいえ、セキュリティアラートは量が非常に多いものでもあり、ある程度自動化できる場合もありえます。その際に、Sentinel ではプレイブックというものを使って脅威への対応を自動化することが可能です。
実体は、Azure Logic App を使ったワークフロー処理となります。
この機能はおそらく他社の SIEM 製品にはない Sentinel の優位点かなと思います。

下の図のように、左のメニューの「プレイブック」をクリックし、画面上部の「+プレイブックの追加」をクリックします。
画面中央の「プレイブックの追加」をクリックしても同じです。
AzureSentinel27.jpg

プレイブックの名前、サブスクリプションなど、環境にあわせて設定してください。
リソースグループや Log Analytics ワークスペースは既に作成済みなので、既存のものを選択いただくだけで良いです。
最後に「作成」をクリックすると、プレイブックが作成されます。
AzureSentinel28.jpg

下の図のように、Logic App デザイナーが表示されます。
今回は「空のロジックアプリ」を選択して自分で作成しますが、テンプレートにあるものをそのまま利用することも可能です。
AzureSentinel29.jpg

画面中央に「Azure Sentinel」を入力します。下の図のような画面が表示されるので、下のトリガーアクションである「When a response to an Azure Sentinel alert is triggered」をクリックします。
AzureSentinel30.jpg

サインインが求められる場合がありますので、サインインをしてください。
AzureSentinel31.jpg

これで、Sentinel からのアラートをトリガーにプロセスを起動する準備ができました。
「+新しいステップ」をクリックして、自動化するプロセスを作成することができます。ここでは詳細は割愛します。
左上にある「保存」をクリックして、プレイブックを保存します。
AzureSentinel32.jpg

先ほど保存したプレイブックが表示されます。
AzureSentinel33.jpg

その他

Sentinel は、外部のツールを使ってセキュリティの脅威を検出することも可能です。
下の図のように、左のメニューから「ノートブック」をクリックし、下の「Azure Sentinel のノートブックを複製する」をクリックすると、Microsoft のセキュリティアナリストが開発した複数のノートブックをパッケージされた環境が、皆様の Azure Notebooks 環境にコピーされます。Azure Notebooks では、無料のクラウドコンピューティングおよびストレージ上で実行することが可能であり、より詳細な分析を Jupyter Notebook 上で行うことができます。
Sentinel と Notebook の統合もクラウドならではの機能提供だと思います。
こちらも詳細は https://docs.microsoft.com/ja-jp/azure/sentinel/notebooks を参照ください。
AzureSentinel34.jpg

まとめ

Azure Sentinel はプレビューですがクラウドネイティブな SIEM ということで実際に触ってみました。
もともと Azure が提供していた Log Analytics をうまく使って、ログ収集用のワークスペースとし、その上に Sentinel の機能を提供しているイメージですね。今回は触れませんでしたが、集めたログから検出するためのクエリは Log Analytics で利用するクエリ言語 KQL(Kusto Query Language)を利用しているので、パワフルな検索ができそうです。脅威の検出後は、アラートの通知や対応の自動化などの機能が入っており、単なる SIEM ではなく SOAR もうまく統合されている印象でした。

  • ログを収集するためのコネクタが準備されており、簡単に設定ができる
  • ログの検索は KQL を利用しており、自由度高くパワフルな検索ができる
  • インシデント発生時のアラートルールの作成ができる
  • Sentinel からのアラートをトリガーにして自動対応を行うプレイブックの作成ができる(Azure Logic App を活用)
  • Azure Notebooks などの外部ツールを使った分析ができる
  • Microsoft のセキュリティアナリストの知見が提供されている( https://github.com/Azure/Azure-Sentinel
  • Azure だけでなく、オンプレミス環境、AWS 等の他社環境との連携ができる

といった特長があり、なかなか使えそうな印象でした。Azure 利用者はぜひ活用してほしいなと思います。

Yoshifumi
クラウドソリューションアーキテクトとして Azure を利用してもらうことをミッションとしています。 【免責事項】 ブログの内容は個人の意見・見解の表明であり、所属組織の意見・見解を代表しません。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした