1clickでAWSのセキュリティチェック！ScanMonsterの使い方🔰

NTTドコモサービスイノベーション部AdventCalendar4日目の記事です。

## はじめに

こんにちは。@dcm_chidaです。

ドコモではAWS、GCP、Azure、d-skylabなどクラウドを積極的に導入しています。

そこで問題となるのが**セキュリティ**。

利用規模が大きいとユーザやアカウントの数が多くて管理が大変です。
保有する情報資産も桁違いに多いので、毎日毎日リスクへの対応を迫られています。

今回はAWSのセキュリティに関する記事です。

### 対象とする人

- AWS初心者🔰
- AWSのセキュリティに興味がある


### やること

- AWSでよくあるインシデントの紹介
- ScanMonsterによるリスク分析



## AWSインシデントあるある

### 📌 アクセスキーが漏洩して多額の請求がくる
GitHubで```AWS_SECRET_ACCESS_KEY```と検索してみましょう。ダミーであげている可能性もありますが、ご覧の通り。

![sm-2.png](https://qiita-image-store.s3.amazonaws.com/0/319677/7feb9cab-ee1b-5465-6738-d276edc35e74.png)

黒塗りの部分は本来見えちゃいけない情報です。
アクセスキーが漏洩すると

高額なGPUインスタンスが何台も立ち上がり…😨

仮想通貨マイニングに利用された挙句…😰

何十、何百万円と請求が来ます😱

ご注意を。

- [GitHub に AWS キーペアを上げると抜かれるってほんと？？？試してみよー！ - Qiita](https://qiita.com/saitotak/items/813ac6c2057ac64d5fef)
- [初心者がAWSでミスって不正利用されて$6,000請求、泣きそうになったお話。 - Qiita](https://qiita.com/mochizukikotaro/items/a0e98ff0063a77e7b694)




### 📌 セキュリティグループが全開放
インバウンドルールが```0.0.0.0/0```になっていて悪いやつにサーバ乗っ取られるやつですね。
サーバが乗っ取られると、DDoSの踏み台にされたり、南米やアジアのよくわからん国にデータを転送されたりします。

AWSではデフォルト設定でインスタンスを立てるとSSHがフルオープンのSGが作成されます。[^default]　

<img width="1440" alt="sm-1.png" src="https://qiita-image-store.s3.amazonaws.com/0/319677/c933e945-9422-c61c-2733-48d5c968fe46.png">

サーバのキーペアをしっかり管理していればギリギリOKですが、IPアドレスをきちんと絞った方が安全です。使い回しているうちに新人が適当にサーバを立ててこのSGをアタッチしてしまうかもしれません。

また、SSHだけ制限していても踏み台にされる可能性はあるので油断は禁物です。[^humi]

[^default]: launch-wizard-◯っていう名前のやつです。
[^humi]: Tomcatサーバがデフォルトパスワードのままで管理画面にログインされたり。


### 📌 S3の中身が丸見え
S3は「操作は単純」ですが、「設定は複雑」なのでよく情報漏洩が起こります。
AWSも対策としてTrustedAdvisorの機能追加やUI改善をしていますが、人的ミスはどう頑張っても０には出来ません。

![](https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/user-guide/images/list-buckets.png)

2018年でもいまだに情報漏洩が起きています。

- [FedEx、個人情報をパスワード無しの状態で「Amazon S3」に放置 - ZDNet Japan](https://japan.zdnet.com/article/35114812/)
- [AWS営業担当者の設定ミスでGoDaddyの機密情報が公開状態に - ZDNet Japan](https://japan.zdnet.com/article/35123924/)

---

## ScanMonsterでリスクを分析する

> ポリシー準拠性の確認やセキュリティのリスクを早期発見する『自動アセスメントツール』です。
>![](https://dev.smt.docomo.ne.jp/img/cms_file/scanmonster/scanmonster_log1.png)
>[スキャンモンスター | docomo Developer support | NTTドコモ](https://dev.smt.docomo.ne.jp/?p=common_page&p_name=scanmonster)

ざっくり言うと「正しい設定かどうかを全自動でチェックしてくれるツール」です。

5つの観点から設定内容のスキャンを行います。

|項目|チェック内容|
|---|---|
|Availability|AZの分散やスナップショットの取得状況など|
|Logs|CloudTrailやConfigの設定など|
|Network Access|SecurityGroupの設定状況など|
|Identity & Access Management|IAMの権限やMFAの設定状況|
|Resources|不要なEIPの検出やS3の公開範囲など|

サーバレスで構成されているのが特徴で、運用の手間やコストを削減することが可能です。
![](https://dev.smt.docomo.ne.jp/img/cms_file/scanmonster/scanmonster_2.png)


### 使ってみよう

使い方はとても簡単です。右上のscanボタンを押すだけです。アカウントの数にもよりますが、数十秒でOK/NGが判定されます。

![sm-top.png](https://qiita-image-store.s3.amazonaws.com/0/319677/f44aa497-f697-22a4-f3ce-f1bb1097750a.png)





各項目の設定状況の詳細も一覧で表示されています。NG項目は赤で表示されるので、これを一つ一つツブしていくことで各アカウントのリスクに対処することができます。

<img width="1359" alt="スクリーンショット 2018-11-30 17.48.57.png" src="https://qiita-image-store.s3.amazonaws.com/0/319677/e6cc603b-60d2-1154-3570-4087c840e6aa.png">




各項目の本📖型のアイコンをクリックすると簡単なイントロダクションと設定方法が表示されます。AWSにあまり慣れていなくても、大丈夫です。


![sm-6.png](https://qiita-image-store.s3.amazonaws.com/0/319677/e43a3b38-9917-3f30-2024-6931a3c77d62.png)



### レポート出力
レポートをPDF出力することも可能です。レポート日時とスキャン結果をまとめてプリントアウトできます。

![sm-4.png](https://qiita-image-store.s3.amazonaws.com/0/319677/39650e65-b233-e86e-df0b-8c520e1d213b.png)



### リスク分析

試しにS3のパブリックオープンの確認をしてみましょう。

<img width="1359" alt="スクリーンショット 2018-11-30 17.50.27.png" src="https://qiita-image-store.s3.amazonaws.com/0/319677/775495da-d1ad-e8c0-caa8-2b096cf34ccd.png">

OKでした🚨

って当たり前か…


## おわりに

ScanMonsterはシンプルで初心者にも使いやすいツールです。前半紹介したような「あるあるインシデント」は人的な設定ミス・操作ミスによるものがほとんどなので、機械的に設定を確認してNG項目を潰すようにしましょう。


## 参考
[スキャンモンスター | docomo Developer support | NTTドコモ](https://dev.smt.docomo.ne.jp/?p=common_page&p_name=scanmonster)
[ASCII.jp：Security-JAWSでクラウドだからこそのセキュリティ対策や弱点を学ぶ (1/2)](http://ascii.jp/elem/000/001/698/1698974/)
[Security-JAWS 第9回レポート #secjaws #secjaws09 ｜ DevelopersIO](https://dev.classmethod.jp/cloud/aws/security-jaws-09-report/)