ヤマムギ

growing hard days.

*

SIEM on Amazon OpenSearch Serviceを構築

   

このブログまわりのモニタリングをSIEM on Amazon OpenSearch Serviceでやってみようと構築してみました。

https://github.com/aws-samples/siem-on-amazon-opensearch-serviceのCloudFormationテンプレートを使用しました。

MaxMindの無料ライセンスの取得

IPアドレスの国情報、緯度経度の情報を使用するためにMaxMind社のGeoLite2 Freeを使用しています。
スタック作成時に無料ライセンスキーが必要ですので先に取得しておきました。

https://www.maxmind.com/en/homeにアクセスして、[Products]-[GeoLite2 Free Geolocation Data]を選択しました。

[Sign Up for GeoLite2]を選択しました。

必要事項を入力して送信しました。
入力したメールアドレスにURL付きのメールが送信されたのでクリックしてアカウントを作成しました。

ログインした後、[Manage License Keys]の[Create new license key]ボタンを押下しました。

License key descriptionに説明を入力して、デフォルトのまま[Confirm]を押下したらライセンスキーが発行されました。

CloudFormationスタックの作成

Githubページに戻ってクイックスタートから、大阪リージョンの[Launch Stack]を選択しました。
理由はブログのリソースが大阪リージョンだからです。

スタックのパラメータ、GeoLite2LicenseKeyに発行済のキーを入力しました。

AllowedSourceIPAddressesには、OpenSearch Dashboardにアクセスする送信元IPアドレス範囲を指定します。
後で、OpenSearch Serviceのポリシーで変更もできます。

スタック作成後、20分ほどでスタック作成が完了しました。

作成されたもの(見落としがあるかもですが)

SQSキュー

  • aes-siem-dlq
  • aes-siem-sqs-splitted-logs

OpenSearch Serviceドメイン

  • aes-siem

SNSトピック

  • aes-siem-alert

S3バケット

  • aes-siem-123456789012-log
  • aes-siem-123456789012-geo
  • aes-siem-123456789012-snapshot

aes-siem-123456789012-logのUserLogs/プレフィックスに格納したログオブジェクトがLamda関数aes-siem-es-loaderによって、OpenSearch Serviceに保存されていました。

Lambda関数

  • aes-siem-es-loader-stopper
  • aes-siem-index-metrics-exporter
  • aes-siem-es-loader
  • aes-siem-configure-aes
  • aes-siem-deploy-aes
  • aes-siem-geoip-downloader
  • siem-BucketNotificationsHandlerxxxxxxxxxxxxxx

aes-siem-es-loaderによってログがS3からOpenSearch Serviceに保存されていました。
他のS3バケットをソースにするならイベント追加で指定すればよさそうです。

CloudWatchアラーム

  • siem-TotalFreeStorageSpaceRemainsLowAlarmxxxxxxx

KMS CMK

  • aes-siem-key

EventBridgeルール

  • siem-CwlRuleLambdaGeoipDownloaderxxxxxxxx
  • siem-EsLoaderStopperRulexxxxxxxxxxx
  • siem-EventBridgeRuleLambdaMetricsExporterxxxxxxxxx

IAMロール

  • aes-siem-deploy-role-for-lambda
  • aes-siem-es-loader-for-ec2
  • aes-siem-snapshot-role
  • aes-siem-sns-role
  • siem-BucketNotificationsHandlerxxxxxxx
  • siem-LambdaEsLoaderServiceRolexxxxxxxxx
  • siem-LambdaEsLoaderStopperServiceRolexxxxxxxxx
  • siem-LambdaGeoipDownloaderServiceRolexxxxxxxxxxxx
  • siem-LambdaMetricsExporterServiceRolexxxxxxxxxxx

ログの収集

今後増やしてダッシュボードを調整するとして、とりあえずCloudFrontのログを収集してみました。

CloudFrontディストリビューションでバケットを設定しました。
プレフィックスにUserLogs/を入れなかったので、Lambda関数のイベントを追加しました。

Dashboardの設定

SIEM on Amazon OpenSearch Service Workshop 2.5. SIEM Settingsのインポートオブジェクトをダウンロードしました。

ダウンロードリンクはこちらでした。
https://aes-siem.s3.ap-northeast-1.amazonaws.com/assets/saved_objects.zip

ダウンロードした後展開しました。

CloudFormationスタックの出力からDashboardのURLにアクセスしました。
ログインユーザーと初期パスワードもスタックの出力にありました。
テナント選択は1人でしか使わないので、Privateにしました。

左ペインの[Stak Management]を選択しました。

[Saved Objects]を選択しました。

右上の[Import]を押下しました。

ダウンロードしたzipファイルを展開して、dashboard.ndjsonをインポートしました。

Dashboardのオブジェクトがインポートされました。

DashboardメニューからCloudFront Summaryを見てみました。

CloudFrontアクセスログを可視化したダッシュボードが表示されました。

今後、WAFや、ALB、S3、CloudTrailなども可視化していきます。


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS , ,

ad

ad

  関連記事

TuneCoreの売上データCSVをS3に格納してAthenaのクエリをRe:dashのデータソースにして可視化する

先日参加しましたAWS Summit Tokyo 2017で、 [JapanTa …

WordPressのwp-login.php , xmlrpc.phpへのアクセスをAWS WAFで接続元IPアドレスを制限する

AWS CloudWatch LogsエージェントでAmazon EC2上のNg …

WordPress(EC2)の画像のS3へのオフロードをMedia Cloudで

タイトル通りですが、画像をwebサーバー(EC2)からではなく、S3バケットから …

CUSTOMINEを使ってkintoneからAWS Lambdaを実行する(Cognito認証付き)

先日の記事「kintoneのカスタマイズ開発を超速にするCUSTOMINE」で書 …

AWS WAF Web ACLとルールをv1(Classic)からv2に自動移行しました

新しいものは、課題が解決されていたり、機能追加されたりするのでいいものです。 長 …

Amazon EC2 インスタンスメタデータサービス(IMDS) v2のみにしました

今さらながらですが、EC2 インスタンスメタデータサービス(IMDS) v2を確 …

AWS Transit GatewayのAcceleratedサイト間VPN接続確認

Transit GatewayでVPN接続を作成するときに、Global Acc …

Systems Manager デフォルトのホスト管理設定(Default Host Management Configuration)を確認しました

2023/2/17のアップデートAWS Systems Manager をアカウ …

AWS Backupで取得したAMIとスナップショットの削除

個人で使っているAWSリソースの断捨離をしてました。 Cloud9も複数アカウン …

ALBのヘルスチェックでPHPとMySQL接続をチェック

当ブログで504エラーが発生して、オートスケーリングにより自動でインスタンスが置 …