SIEM on Amazon Elasticsearch Serviceを試してみました
SIEM on Amazon Elasticsearch Service
とは?
- いい感じにAWS上のセキュリティ状況を可視化してくれるサービスです。以下のような可視化が可能です。
-
「サービスです」
と書きましたが、1つのサービスで完結するわけではなくAWSが提供してる様々なセキュリティサービスをAmazon Elasticsearch Service
を使って可視化してくれるというものです。 - このサービスの良いところは、Elasticsearchのダッシュボードも用意してくれているので、自分で0から分析を考えるという手間がない点だと個人的には考えています。セキュリティサービスの設定はしたのだけど、セキュリティ分析をどこから始めていいかよく分からないという場合には、とても助かりますね!
- 構築方法は以下のgithub上の情報を参考に進めることができます。
README通り進めます
- 一番簡単な方法で進めていきます。(カスタマイズする方法もあってGitHub上にはそちらについても手順が用意されているので親切です。→ 高度なデプロイ)
- 今回行う簡単な方法の概要は以下です。
- MaxMind 社の GeoLite2 Free をダウンロードする
- ダッシュボードにIP アドレスや国情報・緯度・経度のロケーション情報を付与するために必要です
- クイックスタートでCloudFormationを実行する
- Kibanaの設定をする
- セキュリティ状況を可視化するためのダッシュボードがKibanaで提供されるので、その設定です
- ログの取り込みをする
- 可視化したいログをS3バケットに連携することで可視化が行われるので、その設定です
- MaxMind 社の GeoLite2 Free をダウンロードする
1. MaxMind 社の GeoLite2 Free をダウンロードする
- まずはサインアップからです。以下のページに進みます。
-
GeoLite2 Free Downloadable Databases « MaxMind Developer Siteにアクセスして、画面の下の方にあるサインアップをクリックします。
- 必要な情報を記載すると、メールが送られてきます。そのメールにToken付きのURLが記載されているので、そこにアクセスしてパスワードを設定するとログインできるようになります。
- ログインできたら、左メニューの
My License Key
を開きGenerate new license key
をクリックします
-
License key desscription
に任意の値を入れてキーを作成します。GeoIP Update?
はNoで進めます。
- ライセンスキーが作成されましたので、控えておきます。
-
GeoLite2 Free Downloadable Databases « MaxMind Developer Siteにアクセスして、画面の下の方にあるサインアップをクリックします。
- 手順1はこれで終了です。
2. クイックスタートでCloudFormationを実行する
- ここから構築の開始です。GitHub上のREADMEからクイックスタートですぐに始められます。今回はTokyoリージョンを選択しました。
- CloudFormationの実行画面になりますので「次へ」で進めます。
- パラメーターを入力します。(以下の画像のパラメーターはデフォルトの値ですので変更する必要があります)
- パラメーターで設定する値の説明は以下のようになっています。
- 気にするのは
AllowedSourceIpAddresses
です。今回は、ダッシュボードを見れるIPアドレスを/32で限定しました。
- 気にするのは
- パラメーターで設定する値の説明は以下のようになっています。
パラメーター | 説明 |
---|---|
AllowedSourceIpAddresses | Amazon VPC 外に SIEM on Amazon ES をデプロイした時に、アクセスを許可するIPアドレス。複数アドレスはスペース区切り |
GeoLite2LicenseKey | Maxmindのライセンスキー。IP アドレスに国情報を付与 |
SnsEmail | メールアドレス。SIEM on Amazon ES で検知したアラートを SNS 経由で送信する |
- あとは実行して20分ほど待つだけです。手順2はこれで終了です。
3. Kibanaの設定
-
正常完了となったCloudFormationスタックの
出力
からKibanaにアクセスするためのURL・ユーザー・パスワードが確認できます。
-
次にダッシュボードを作っていきます。
-
ここからダッシュボードを作っていきます。作るというか、これも用意されているのでそれをインポートしていきます。
-
ダウンロード先 ←これをクリックすると設定ファイルがダウンロードされます。
-
ダウンロードと解凍ができたら、Kibanaに戻って、以下の画面にすすみます。(Management(左下の歯車) -> Saved Objects -> Importの順です)
-
無事にインポートできました。これで手順3が完了です。
4. ログの取り込み
- 残るはログを取り込むのみです。取り込めるログは以下のようになっています。
- 個人的にはここに
aws config
が追加されると嬉しいですね。
- 個人的にはここに
AWS Service | Log |
---|---|
AWS CloudTrail | CloudTrail Log Event |
Amazon Virtual Private Cloud (Amazon VPC) | VPC Flow Logs |
Amazon GuardDuty | GuardDuty finding |
AWS WAF | AWS WAF Web ACL traffic information AWS WAF Classic Web ACL traffic information |
Elastic Load Balancing | Application Load Balancer access logs Network Load Balancer access logs Classic Load Balancer access logs |
Amazon CloudFront | Standard access log Real-time log |
Amazon Simple Storage Service (Amazon S3) | access log |
Amazon Route 53 Resolver | VPC DNS query log |
-
ちなみに取り込み方法についてもAWS サービスの設定方法に記載してくれています。こういう親切さが助かりますね。
-
ということで、今回は基本的なところで
CloudTrailのログ
を取り込んでいきたいと思います。 -
CloudTrailを設定してすぐにKibanaを見ると、まだ連携されていないのか何も表示されませんが心配しないで下さい。数分したらサマリーが表示されます。
-
試しにEC2にsshして、EC2から
aws s3 ls
を実行してみました。これでAPI Call
が記録されていればいいなあと思ったのですが、、、
-
これで手順4も完了です。
まとめ
- GitHubのREADMEに沿って設定しただけで、いい感じのダッシュボードが出来上がりました。
- とても便利で素晴らしいのですが、自分でダッシュボードを作っていないということは、どんな意図でダッシュボードが作られているかを理解していく必要があるということです。
- でもこの理解を進めるということは、AWSセキュリティのベストプラクティスを学んでいくということにも繋がると思うので、しっかりとダッシュボードの意図を読み取れるようにしていきたいと思います。