Upgrade to Pro — share decks privately, control downloads, hide ads and more …

RejectDay2023 オンプレシステムのクラウドリフトにおいてBLEAを利用して セキュ...

RejectDay2023 オンプレシステムのクラウドリフトにおいてBLEAを利用して セキュリティのベースラインを確保した話

RejectDay2023で発表した資料です。
タイトル:オンプレシステムのクラウドリフトにおいてBLEAを利用してセキュリティのベースラインを確保した話
とあるオンプレミスで実装されていたシステムをクラウドリフトした際に、BLEA(Baseline Environment on AWS)を利用して、セキュリティのベースラインを効率的に確保した事例を紹介しています。
BLEAとは何か?CloudFormationで構成されたシステムにも利用できるのか、カスタマイズ要素はあるのか、使ってみてどうだったのかなどのポイントを解説しています。

Tsukasa Kawamura

June 24, 2023
Tweet

More Decks by Tsukasa Kawamura

Other Decks in Technology

Transcript

  1. © 2023 NTT DATA Corporation © 2023 NTT DATA Corporation

    オンプレシステムのクラウドリフトにおいてBLEAを利⽤して セキュリティのベースラインを確保した話 RejectDay 2023 2023年6⽉24⽇ 株式会社NTTデータ 川村 吏
  2. © 2023 NTT DATA Corporation 2 はじめに とあるオンプレミスで実装されていたシステムをクラウドリフトした際に、BLEA(Baseline Environment on

    AWS)を利⽤して、 セキュリティのベースラインを効率的に確保した事例を紹介します。 BLEAとは何か︖CloudFormationで構成されたシステムにも利⽤できるのか、カスタマイズ要素はあるのか、使ってみてどうだっ たのかなどのポイントを解説します。 ※サーバ構成やNW構成やアプリケーション側のセキュリティ対策等に関することは触れません。
  3. © 2023 NTT DATA Corporation 3 ⾃⼰紹介 ・名前︓川村 吏(かわむら つかさ)

    ・所属︓株式会社NTTデータ 社会基盤ソリューション事業本部 ・業務︓ 2015年中ころ〜2019年初頭まで︓オンプレミス環境(VMware、Xen、Hyper-V等)を中⼼とした、基盤設計、構築、運⽤等 2019年初頭〜2020年10⽉︓パブリッククラウド(AWS中⼼、Azureも少し)へのリフト、シフト、新規開発における提案、基盤設計、構築 2020年11⽉〜︓NTTデータ社へ中途⼊社 公共機関向けシステムのクラウド移⾏に関するコンサル、提案、設計、構築など ・好きなAWSサービス︓ S3、CloudFront、Route53 ・趣味︓ 猫、Disney、グラス収集、紅茶、料理、etc…
  4. © 2023 NTT DATA Corporation © 2023 NTT DATA Corporation

    4 アジェンダ 1. 概要 2. BLEAとは 3. CDK vs CloudFormation 4. BLEAを利⽤することで確保されるセキュリティ対策の詳細 5. カスタマイズ要素 6. まとめ
  5. © 2023 NTT DATA Corporation 6 1-1 概要 本事例の概要です。 複数のテナントが同居するプライベートクラウドから、Organizationsで管理されたAWS上へのクラウドリフトを⾏いました。

    プライベートクラウド プライベートクラウド共通機能 AWS Cloud テナントA Servers Servers テナントB Servers Servers ログ管理 アカウント管理 不正検知 AWS account AWS account (テナントA⽤) AWS account (テナントC⽤) AWS Organizations リフト ポイント︓プライベートクラウド⾃ 体のセキュリティ対策は中央集 権的に⾏われている。 ポイント︓アカウントは Organizationsで管理され ており、SCPでのコントロール がされている。 SCP ポイント︓CloudTrail、 Configの初期設定は Organizations側で実施済 み
  6. © 2023 NTT DATA Corporation 7 1-2 課題 プライベートクラウド側で実装されていた、プライベートクラウド⾃体のセキュリティ対策を⾃⾝で検討する必要あり︕ (以下例)

    • プライベートクラウド利⽤に関する監査ログ • プライベートクラウド⾃体への不正アクセス等の防御 AWSアカウントのセキュリティ対策は万全としたい︕ AWS CloudTrail Amazon GuardDuty AWS Config AWS Security Hub 上記のようなサービスを利⽤することが⼀般的ではあるが、検知条件や ルールの設定などのノウハウはいろいろある・・・・ やっておくべきベースはないのか︖︖︖︖ →BLEAを使おう︕︕︕
  7. © 2023 NTT DATA Corporation 8 1-3 実施したこと AWS Cloud

    AWS account AWS account Amazon GuardDuty AWS CloudTrail AWS Config AWS Security Hub Amazon EventBridge Amazon Inspector Amazon CloudWatch SNS S3 IAM Amazon GuardDuty AWS CloudTrail AWS Config AWS Security Hub Amazon EventBridge Amazon Inspector Amazon CloudWatch SNS S3 IAM Virtual private cloud (VPC) Virtual private cloud (VPC) BLEAでAWSアカウントでの ベースラインとなるセキュリティ対 策を実装 CloudFormationとの併⽤ CloudFromationで構築 ※既にPoC環境があり、 CloudFormationを利⽤してい たため
  8. © 2023 NTT DATA Corporation 10 2-2 BLEAとは BLEA:Baseline Environment

    on AWS AWSのセキュリティのベストプラクティスを実装した環境を、迅速に実現するためのテンプレート(CDK)のこと AWSのサービスは Security by Design の考えに基づいて実装されていますが、お客様は、システム構築にあたってこ れらのサービスを組み合わせ、要件に合わせてコンフィグレーションする必要があります。AWS では AWS Well- Architected や AWS Security Reference Architecture (AWS SRA)といったセキュリティのベストプラクティス をドキュメントとして提供しており、この中では AWS CloudTrail 有効化による API 呼び出しの記録など、どのようなシ ステムでも最低限実施いただきたい基本的な設定をガイドしています。この基本的な設定をベースラインと呼びます。 ベースラインはどのシステムでも共通に実施すべき内容であり、これをテンプレートによって⾃動構築することで、作業漏れ およびミスの混⼊防⽌、作業⼯数の削減ができ、基本的なセキュリティを確保することができます。 https://aws.amazon.com/jp/blogs/news/announcing-baseline-environment-on-aws/ AWS Security Hub において、CIS AWS Foundational ベンチマークやAWSの基本的なセキュリティのベストプラクティスの 「すぐに対処が必要 (CRITICAL) 」「優先して対処が必要 (HIGH) 」という事項が検出されなくなるように実装されている。 →AWS環境において最低限実施すべき設定が実装された神テンプレ
  9. © 2023 NTT DATA Corporation 11 2-2 BLEAを使うことによる変化 これまで AWS上で実施するセキュリティ対策を利

    ⽤者⾃⾝で考え、設計、実装する BLEAを使うと BLEAベースで最低限実施すべき対策は実装 プラスαで実装すべき対策などは、BLEAのテン プレートのカスタマイズor追加を⾏う
  10. © 2023 NTT DATA Corporation 12 2-3 BLEAで提供されるテンプレート 以下2種類の利⽤パターンに別れます。 複数のアカウントを利⽤する(Organizationsで管理するレベル)であればマルチアカウント版の利⽤をおすすめします。

    今回は、Organizationsにすでに管理されているアカウントであったことからシングルアカウント版を利⽤しています。 引⽤︓https://aws.amazon.com/jp/blogs/news/announcing-baseline-environment-on-aws/
  11. © 2023 NTT DATA Corporation 16 © 2023 NTT DATA

    Corporation 16 03 CDK vs CloudFormation
  12. © 2023 NTT DATA Corporation 17 3-1. IaCの重要性 IaCとは、テンプレートによってリソースの設定値やあるべき状態を定義し、プロビジョニングや管理を⾃動化する、省⼒化するもの •

    ⼿作業を⾃動化することによる作業ミスの低減 • コード管理することで、インフラストラクチャの変更や過去の変更内容を追跡できる • コードの再利⽤による開発の効率化 • ⾼速なデプロイ AWS CloudFormation AWS Cloud Development Kit (AWS CDK)
  13. © 2023 NTT DATA Corporation 18 3-2. CDKとは︖ つまり、新規にテンプレートを書くなら学習コストはあれどCDKのほうがおすすめ CloudFormation

    • テンプレートでAWSリソースをプロビジョニングできるサービス • JSON/YAML形式での定義 • 詳細に設定を記述する必要あり CDK • プログラミング⾔語を利⽤してCloudFormationのコードを⽣ 成、リソースをプロビジョニングするサービス • TypeScript、JavaScript、Python、Java、C#に対応 • ループやオブジェクト指向的な記載が可能 • AWSの推奨値がデフォルトで設定されているため、コード指定 が最⼩限で済む CloudFormationとの違いを簡単に説明します。
  14. © 2023 NTT DATA Corporation 19 3-3. BLEAを触る上で覚えておいたほうがいいこと • CDKのプロジェクトの構成

    ①App ︓Stackを定義する。複数Stackを定義することも可能である。 ②Stack︓リソースを定義する。 Cloud FormationのStackと同義である。 ③Construct︓ Stack内で記述するAWSサービスが定義されたライブラリ。 構成イメージ App Stack Stack Construct Construct Construct Construct • コンストラクタの種類 コンストラクタにはL1〜L3があり、⼤きな違いは以下のとおり。基本的にL2を使うことが多い。 L1コンストラクト︓CFnのすべてのプロパティと1対1で対応している。 L2コンストラクト︓基本的に細かいプロパティは設定が不要である。 L3コンストラクト︓複数リソースをまとめて定義できる。(AWSが事前定義)
  15. © 2023 NTT DATA Corporation 20 3-4. CDKとCloudFormationは併⽤できるのか︖ 結論︓できる︕ AWS

    Cloud Amazon GuardDuty AWS CloudTrail AWS Config AWS Security Hub Amazon EventBridge Amazon Inspector Amazon CloudWatch SNS S3 IAM Virtual private cloud (VPC) AWS account BLEAでAWSアカウントでの ベースラインとなるセキュリティ対 策を実装 CloudFromationで構築 ※既にPoC環境があり、 CloudFormationを利⽤してい たため ただし︕注意すべき点 相互参照するリソース CloudFormation側とCDK側で共通する(依存す る)ものはできる限り避けたほうがよい 例えば、SNSやKMSなどは相互に参照するより、別のも のを利⽤するように定義し、相互に依存しないようにする ちなみに、CDKv2では、インポート機能があり、既存のリ ソースをインポートすることも可能 今回は、CloudFormationと完全に分離したかったため、 利⽤しなかった
  16. © 2023 NTT DATA Corporation 21 © 2023 NTT DATA

    Corporation 21 04 BLEAを利⽤することで確保されるセキュリティ対策の詳細
  17. © 2023 NTT DATA Corporation 23 4-2. スタックと概要 スタック名 概要

    blea-config-stack ・Configの設定とログ出⼒設定 blea-config-rule-stack ・VPCのデフォルトSGがインバウンド/アウトバウンドトラフィック を許可していないかチェックするルールと修復アクションの設定 blea-config-ct-guardrail-stack ・コンフォーマンスパック(Configルールの集まり)ベースでの Configルールの設定 例︓MFAが有効化されているか、パブリックアクセスが無効化 されているかなどの⼀般的にやったほうがいい設定のチェック blea-trail-stack ・CloudTrailの証跡設定 blea-security-alarm-stack ・各種アラーム通知(EventBridgeでの検知、Trailログからの キーワード検知、Config、GuardDutyからの検知など) 例︓AWS Healthイベント通知、Trailログ構成変更通知、 SGの更新通知、IAMポリシー変更通知など⼀般的に不正 が疑われるイベントの通知設定 blea-guardduty-stack ・GuardDutyDetectorの設定 blea-security-hub-stack ・SecurityHubの設定 blea-iam-stack IAM管理者、インスタンス運⽤者、管理者(IAM以外)、 読み取り専⽤ユーザのグループ、ロール設定 blea-chatbot-stack Slack通知の設定 イチオシ︕ ※シングルアカウント版ガバナンスベーステンプレート
  18. © 2023 NTT DATA Corporation 24 © 2023 NTT DATA

    Corporation 24 05 カスタマイズ要素
  19. © 2023 NTT DATA Corporation 25 5-1.カスタマイズ要素No.1 問題︓EventBridgeルールで検知した情報をSNSでメール通知する際に⽂⾯が⾒づらい カスタマイズ内容︓テンプレート内でインプットトランスフォーマーを定義 {"version":"0","id":"XXXX","detail-type":"GuardDuty

    Finding","source":"aws.guardduty","account":"XXXXXX","time":"20XX-XX- XXTXX:XX:XXZ","region":"ab-northeast-1","resources":[],"detail":{"schemaVersion":"2.0","accountId":"XXX","region":"ap- northeast-1","partition":"aws","id":"XXXX","arn":"arn:aws:guardduty:ap-northeast- 1:XXXXXX:detector/XXXXXX/finding/XXXXXXXX","type":"Stealth:IAMUser/CloudTrailLoggingDisabled","resource":{"resourceT ype":"AccessKey","accessKeyDetails":{"accessKeyId":"XXXXXXXX","principalId":"XXXXXXXX","userType":"IAMUser","userNa me":"XXXXXXX"}},"service":{"serviceName":"guardduty","detectorId":"XXXXXX","action":{"actionType":"AWS_API_CALL","aw sApiCallAction":{"api":"DeleteTrail","serviceName":"cloudtrail.amazonaws.com","callerType":"Remote IP","remoteIpDetails":{"ipAddressV4":"X.X.X.X","organization":{"asn":"XXXX","asnOrg":"XXXX","isp":"XXX","org":"XXXX"},"cou ntry":{"countryName":"Japan"},"city":{"cityName":"XXX"},"geoLocation":{"lat":XXX,"lon":XXX}},"affectedResources":{"AWS::Clo udTrail::Trail":"arn:aws:cloudtrail:ap-northeast- 1:XXXXX:trail/XXX"}}},"resourceRole":"TARGET","additionalInfo":{},"evidence":null,"eventFirstSeen":"20XX-XX- XXTXX:XX:XXZ","eventLastSeen":"20XX-XX-XXTXX:XX:XXZ","archived":false,"count":X},"severity":2,"createdAt":"20XX-XX- XXTXX:XX:XX.XXXZ","updatedAt":"20XX-XX-XXTXX:XX:XX.XXXZ","title":"AWS CloudTrail trail arn:aws:cloudtrail:ap- northeast-1:XXXXX:trail/XXXXXX was disabled.","description":"AWS CloudTrail trail arn:aws:cloudtrail:ap-northeast- 1:XXXXXXX:trail/XXXXX was disabled by XXXXX calling DeleteTrail under unusual circumstances. This can be attackers attempt to cover their tracks by eliminating any trace of activity performed while they accessed your account."}} -- If you wish to stop receiving notifications from this topic, please click or visit the link below to unsubscribe: XXXXXX Please do not reply directly to this email. If you have any questions or comments regarding this email, please contact us at XXXX "AWS XXXX has a severity 2 GuardDuty finding type Stealth:IAMUser/CloudTrailLoggingDisabled in the ap-northeast-1 region." "Finding Description:" "AWS CloudTrail trail XXXXX was disabled by XXXXX calling DeleteTrail under unusual circumstances. This can be attackers attempt to cover their tracks by eliminating any trace of activity performed while they accessed your account.. " "For more details open the GuardDuty console at XXXXXX -- If you wish to stop receiving notifications from this topic, please click or visit the link below to unsubscribe: XXXX Please do not reply directly to this email. If you have any questions or comments regarding this email, please contact us at XXXXXX
  20. © 2023 NTT DATA Corporation 29 5-5.カスタマイズ要素No.4 問題︓デプロイするConfigルール(CFnで定義)の中に⼤阪リージョンでは利⽤できないルールが含ま れている →BLEAではAWSから提供されるコンフォーマンスパックと呼ばれる、ルールと修復アクションをパッケー

    ジングしたものが含まれるが、⼤阪リージョンで⼀部利⽤できないものがある。 カスタマイズ内容︓⼤阪リージョンでも利⽤できるようCFnテンプレートを定義 リージョン別に選択するロジックを定義
  21. © 2023 NTT DATA Corporation 31 5-7. おまけ 今となってはやらないほうがよかったカスタマイズ 問題︓PJで命名規約が定められているが、BLEAのリソースは命名規約に従っていない

    カスタマイズ内容︓命名規約に合わせてリソース名を変更 反省点︓追加のパラメータ設定が必要となるため⼿間がかかる、CDK Bootstrap(CDKのデプロイに 必要なリソースをデプロイするもの)で⽣成されるリソース名にも⼿を加えたため、カスタマイズの⼿間が かかったものの、セキュリティ的な効果は⼀切ないので、単純に⼯数がかかる。 振る舞いやセキュリティ、運⽤⾯に⼤きなメリットがないのであればやらなくて良い。
  22. © 2023 NTT DATA Corporation 33 6-1. BLEAを導⼊してよかったこと 1. 監視すべきCloudTrailのログのキーワードやイベントなどが定義されているので、設計が楽になる

    2. ベストプラクティスに基づき⼀般的に実施すべきベースラインが実装されるので、セキュリティが効率的に確保できる 作業漏れ、検討漏れがなくなる 3. テンプレートの構成が理解しやすくカスタマイズがしやすい→テンプレートの複雑化や、1からコーディングする必要がない 4. 今後CDKを利⽤する上でのお⼿本構成を学習できる
  23. © 2023 NTT DATA Corporation 34 6-2. まとめ BLEAを利⽤するとAWSを利⽤する上で効率的にセキュリティのベースラインの確保をすることができます。 AWSアカウントは利⽤しているけど、どんな対策をしたらいいんだろう︖対策はわかるけど⼿間だな、対策は実施しているけど⾜り

    ているのだろうか︖そんな場合に最適です。 CloudFormationで開発している、請求代⾏などでSCPによって権限が絞られている、開発環境・・・etc たいていの場合利⽤可能です。 ベースラインテンプレートを流す上での前提条件はシンプルなので、是⾮利⽤を検討してみてください。