Datadogで始めるセキュリティモニタリング

# Datadogとは
DatadogはSaaSで提供されているモニタリングおよびセキュリティプラットフォームです。
開発・運用・ビジネス部門といったあらゆる役割の人が同じデータを確認でき、同じコンテキストで会話してコラボレーションできるようにすることを目指しています。

## Datadogはインフラ監視ツールじゃないの？
もともとDatadogはインフラの監視をするためのツールとして登場してきましたが、その後どんどん新たな機能が追加され、今ではログ、APM、Synthetic（外形監視）、RUM（リアルユーザーモニタリング）などの機能が利用できるようになりました。
そして現在セキュリティモニタリングの機能も新たに追加され、"モニタリングおよび**セキュリティ**プラットフォーム"としてサービスを提供しています。

## なんでDatadogがセキュリティ？
DevSecOpsという言葉が少しずつ浸透してきましたが、開発ライフサイクルの中であってもセキュリティを組み込んでいくことが求められるようになってきています。Datadogはもともと開発と運用の間にあったサイロを壊してコラボレーションできるようにすることを目指した製品ですが、これと同様にDevOpsチームとセキュリティチームのサイロを壊すべくセキュリティの機能をリリースしました。
これによってセキュリティチームの人が単に脅威を検知するだけでなく、攻撃を受けた場合にインフラやネットワーク、アプリのデータも単一のプラットフォームから確認できるようになり、問題への対処が迅速になります。


少し技術的な観点でいうと、Datadogでログを収集した際についでに脅威検知ルールにかけたり、クラウドサービスとのインテグレーションをするついでにアカウントの構成情報も取ってきたり、というように既存のDatadogの機能を拡張することでセキュリティモニタリングの機能を実装しています。なので、システム側の構成を大きく変えることなくセキュリティ機能を使えるようになっています。

# Datadogが提供するセキュリティモニタリング機能
2021年12月時点で、3つの機能が利用できます。

## Security Monitoring
収集してきたログを分析することで、セキュリティ的な脅威を検出する、という機能です。
噛み砕いていうと、AWSのCloudtrailやOktaのようなサービスと連携して、ブルートフォースアタックがあった、とかIAMポリシーが変更された、といったようなログがあった場合にそれを通知してくれるやつです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/242688/effcf4f8-149c-881f-30d7-0e8b1aac07cc.png)


標準で用意されているルールは、パブリッククラウド（AWS, Azure, GCP）やSaaS（Okta, Salesforceなど）のサービスに限られています。ただ、ベースの機能としてはログの中身を見て何があったか判定するものなので、自分でルールを作ってしまえば個別のアプリログなんかにも対応できます。

ログに含まれてる内容を見てアラート通知、だったらこれまでもMonitorの設定でできたのでは・・？ となるかもしれません。
Security Monitoringでは、単純なしきい値（Threshold）による通知以外に、以下の２つのルールを設定可能です。

- New Term
    - 属性が新しい値に変化したときに検出
    - 例えば、国やIPアドレスなどの特定の属性に基づいてトリガーを作成した場合、以前には見られなかった新しい値が見られたときにセキュリティシグナルが生成されるようになる
- Anomaly　（記事執筆時点ではベータでの提供）
    - イベントの過去の観測結果から動的なしきい値が自動的に導かれる

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/242688/bbdf7222-9c53-3c04-3209-8733b51a1168.png)

### セットアップ
Datadogでログ収集をしていることが前提となりますが、それ以外に特別なセットアップは不要です。

### OOTBルール
Security MonitoringではOOTBルールとして、すぐに使える検出ルールを用意しています。
詳細は以下のドキュメントを参照してください。"LOG DETECTION"で出てくるものがSecurity Monitoringのルールです。

https://docs.datadoghq.com/security_platform/default_rules/

### シグナルの検出
ルールにマッチしたログが検出されると、シグナルが生成されます。
シグナルをクリックすると以下のような画面が表示され、リソースの詳細、ルールの説明、推奨される修復手順などが確認できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/242688/33395ef2-1bd0-d35a-497b-b18f0ee27ed4.png)


### ダッシュボード
Security Monitoringにはプリセットでダッシュボードが用意されています。
ユーザー側で何もしなくてもすぐに見栄えのよいダッシュボードを利用できるのはDatadogのいいところですね。

全体感がすぐにわかるダッシュボード
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/242688/4840d485-2461-ae9f-94f8-c4c00c65b9f1.png)

認証イベントに特化したダッシュボード
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/242688/6f90f63d-c27d-b5c5-04e2-ff279dc49a27.png)


## Cloud Security Posture Management（CSPM）
クラウドやコンテナ環境の構成チェックをしてくれる機能です。
AWS、Azure（ベータ）、Kubernetes、Dockerに対応しており、無闇にサービスをパブリック公開してないか、とかコンテナがrootで実行されてないか、といった設定のチェックを行ってくれます。

また、SOC2やPCI DSSといった業界標準のコンプライアンスにも対応しているので自社のセキュリティを高める第一歩として使うこともできます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/242688/db55d8b7-75d1-6041-47b2-02ea3b4f87dc.png)


### セットアップ
Securityの[Setup & Configuration](https://app.datadoghq.com/security/configuration)ページからPosture Managementを選択します。
クラウドの場合はアカウント情報を、Kubernetesの場合はDatadogエージェントの構成ファイルを修正して機能を有効化すればOKです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/242688/deada8eb-dcdd-ef8b-5930-812b08dbf633.png)

クラウド環境のチェックはDatadogのインテグレーションを活用し、API経由で情報を取得してセキュリティグループやIAMポリシーの情報をチェックしています。Kubernetesの場合はノードにインストールしているエージェントを活用して情報をチェックするようになっています。

### 診断結果の確認
リソースの評価は種類によって異なりますが15分〜4時間の間で行われ、チェックのたびに**Pass**または**Fail**で結果が表示されます。
診断結果は15ヶ月間保持され、新たにFailなリソースが発見された場合は通知することが可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/242688/e89d75ce-75ea-2aec-0028-c05161cf1343.png)

診断結果をクリックすると以下のような画面が表示され、リソースの詳細、ルールの説明、推奨される修復手順などが確認できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/242688/2c5f431f-2339-d031-1c09-9b81749f81c5.png)

### 対応しているフレームワーク
- [CIS AWS Foundations Benchmark v1.3.0*](https://www.cisecurity.org/benchmark/amazon_web_services/)
- [CIS Docker Benchmark v1.2.0](https://www.cisecurity.org/benchmark/amazon_web_services/)
- [CIS Kubernetes Benchmark v1.5.1](https://www.cisecurity.org/benchmark/kubernetes/)
- [PCI DSS v3.2.1](https://www.pcisecuritystandards.org/document_library)
- [AICPA SOC 2](https://www.aicpa.org/interestareas/frc/assuranceadvisoryservices/aicpasoc2report.html)
- [HIPAA](https://www.hhs.gov/hipaa/index.html)
- [GDPR](https://gdpr.eu/)

### OOTBルール
CSPMではOOTBルールとして、すぐに使える検出ルールを用意しています。
詳細は以下のドキュメントを参照してください。"CLOUD CONFIGURATION"と"INFRASTRUCTURE CONFIGURATION"がCSPMとしてのルールです。

https://docs.datadoghq.com/security_platform/default_rules/

Datadogでは継続的に新しいルールを開発しており、これは自動的にアカウントにインポートされるようになっています。

## Cloud Workload Security（CWS）
実行中のワークロードに対する脅威を検出してくれる機能です。
CWPP (Cloud Workload Protection Platforms) と世の中では言われているやつですね。

エージェントがホスト上のファイルの変更とか怪しいプロセスの動きを監視して何かあれば検知して通知してくれます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/242688/e57e44c5-18db-b4d5-e826-f3ab7ef62571.png)

実態としては以下の大きく2つの監視項目に分かれています。

- ファイル整合性モニタリング（File Integrity Monitoring）
    - ホストやコンテナ上の主要なファイルやディレクトリの変更をリアルタイムで監視
- プロセス実行モニタリング
    - ホストやコンテナ上の悪意のあるアクティビティのプロセス実行をリアルタイムで監視

仕組みとしては、DatadogのエージェントがeBPFを利用してカーネル空間に潜り込み、OSのシステムコールやファイルアクセスを通知してくれる、というものです。
ちなみにこのeBPFはLinuxカーネルの機能であるため、この機能を使うホストはLinuxである必要があります。

### セットアップ
CWSはDatadogエージェントを利用するので、すでにDatadogを利用中の場合は構成ファイルを修正して機能を有効化するだけでOKです。

### 脅威の検知
脅威を検知するとシグナルとして生成され、必要に応じて通知がされます。
結果をクリックすると以下のような画面が表示され、リソースの詳細や検知した内容、推奨される対応手順などが確認できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/242688/2e83639b-9937-e725-c8e5-dec4f3cd95ab.png)

### OOTBルール
CWSではOOTBルールとして、すぐに使える検出ルールを用意しています。
詳細は以下のドキュメントを参照してください。"WORKLOAD SECURITY"で出てくるものがCWSのルールとして提供されています。

https://docs.datadoghq.com/security_platform/default_rules/

自分でルールを作成することも可能です。

# まとめ
Datadogでセキュリティモニタリング、始めてみませんか？

# 参照

https://www.datadoghq.com/ja/product/security-platform/security-monitoring/

https://docs.datadoghq.com/ja/security_monitoring/