SecurityCommandCenterを使ってGCPを安心に使おう

[Google Cloud Platform Advent Calendar 2020](https://qiita.com/advent-calendar/2020/gcp)　7日目の記事となります

GCPではorganization全体のセキュリティ監視をするための[SecurityCommandCenter](https://cloud.google.com/security-command-center)(以下SCC)というサービスがあります

- どのようなサービスであるのか
- 何を守れるのか
- どうやって使うのか

をこの記事では解説をしたいと思います


## SecurityCommandCenterとは
organization配下のセキュリティリスクだと思われる検知を自動的に行なってくれて、ダッシュボード上から確認出来るサービスです
CIS,PCI-DSS,NIST,ISOにも対応した検知が出来るようになっています
[対応表](https://cloud.google.com/security-command-center/docs/concepts-vulnerabilities-findings)

### SCCのプランについて
2020/05にSCCは今後スタンダートとプレミアムの２階層に分かれるとアナウンスがありました
スタンダート/プレミアム以前のSCCはレガシーと呼ばれています

SCCでは何が検知出来てそれぞれのプランで何が対応しているのか以下にまとめました



| 項目 | サービス概要 | レガシー | スタンダード | プレミアム |
|:--|:--|:--|:--|:--|
| [Cloud Anomaly Detection](https://cloud.google.com/security-command-center/docs/concepts-security-sources?hl=ja#anomaly_detection)  | 異常と思われる挙動の検知 <br> Compute系が異常な行動(乗っ取られてないか)してないか、クレデンシャルが漏れてないか  | 使用可能  | 使用可能 <br> 一部制限あり  | 使用可能  |
| [Security Health Analytics](https://cloud.google.com/security-command-center/docs/concepts-vulnerabilities-findings)  | FWのミス設定やCISベンチマークにそった検知  | 使用可能  | 使用可能 <br> 一部制限あり  | 使用可能  |
| [Event Threat Detection](https://cloud.google.com/security-command-center/docs/how-to-use-event-threat-detection)  | Stackdriver のログから不正攻撃の踏み台になっていないかなどの自動検知  | 使用可能  | 使用不可  | 使用可能  |
| [Web Security Scanner](https://cloud.google.com/security-command-center/docs/how-to-web-security-scanner-custom-scans?hl=ja)  |  webアプリの脆弱性スキャン | 使用可能  | 使用可能 <br> 一部制限あり  | 使用可能  |
| [Container Threat Detection](https://cloud.google.com/security-command-center/docs/concepts-container-threat-detection-overview)  | コンテナに対する攻撃の検知  | 使用可能  | 使用不可  | 使用可能  |

その他にも[DLP](https://cloud.google.com/security-command-center/docs/concepts-security-sources#dlp)や[foseti](https://cloud.google.com/security-command-center/docs/concepts-security-sources?hl=ja#forseti)を集約する機能もあります

レガシーからスタンダードまたはプレミアムに移行するとレガシープランに戻ることは出来ません
スタンダードからプレミアム、またプレミアムからスタンダードへの移行は出来ます

レガシーは今後使えなくなり、スタンダードまたはプレミアムへの移行となるようですが、レガシーがいつまで使えるかのアナウンスは今の所ないようです
#### 料金
| プラン | 料金 |
|:-:|:-:|
| レガシー  | 無料  |
| スタンダード  | 無料  |
| プレミアム  | GCP年間使用料の5%  |


プレミアムの料金については細かい設定があるので、[こちら](https://cloud.google.com/security-command-center/pricing/)のドキュメントを参照してください

## SCCの使い方

### SCCのダッシュボード
以下のようなダッシュボードがSCCでは見ることが出来ます(SCC検証用に作ったサンプルです)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80769/df7a40f2-17bf-d398-ac0b-adb49e0a1c0e.png)


ここで、 [脅威](https://cloud.google.com/security-command-center/docs/concepts-security-sources#threats) と [脆弱性](https://cloud.google.com/security-command-center/docs/concepts-vulnerabilities-findings?hl=ja) の２つがありますが検知内容によって別れています
`0件の新たな脅威` となっていても、新たな脆弱性はあるかもしれません

検知内容が脅威にあたるのか、脆弱性にあたるのかはリンクを参照してください
- [脅威](https://cloud.google.com/security-command-center/docs/concepts-security-sources#threats)
- [脆弱性](https://cloud.google.com/security-command-center/docs/concepts-vulnerabilities-findings?hl=ja)

ダッシュボードを見ればどのプロジェクトでどのような脆弱性が検知されているかはわかります

### 検知内容の通知/分析
ダッシュボードで確認は出来るのですが、多くの場合は脆弱性が見つかったタイミングで通知をしたいと思います

SCCは単体で通知機能を持っていませんが、新規の検知を[pub/subに送る機能](https://cloud.google.com/security-command-center/docs/how-to-notifications)があります

また、ダッシュボード上だけですと検知内容の分析がしづらいのでBigQueryなどに入れて分析することをおすすめします

以下のようなアーキテクチャで実現が出来ます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80769/a36eed49-9024-b393-6bab-fce9adbb38d2.png)

pub/subに来たデータをそのままBigQueryに入れるためのCloudFunctionsやslack通知するCloudFunctionsは[こちら](https://github.com/yu-yamada/gcp_samples/tree/master/functions/pubsub)を参考にしていただければと思います

## おわりに
SecurityCommandCenterの紹介をさせていただきました
まだダッシュボード見たことない！という方は無料なのでまずは見てみることをおすすめします。意外な脆弱性が発見されるかもしれません。

明日の[Google Cloud Platform Advent Calendar 2020](https://qiita.com/advent-calendar/2020/gcp)は、@suzutatsuさんです。