Slide 1

Slide 1 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. マルチプロダクト開発の現場で AWS Security Hubを1年以上運用して 得た教訓 株式会社アンドパッド 開発本部 SRE 吉澤 政洋 2024/12/13 クラウドセキュリティを再吟味するために〜実例から学ぶ、考慮すべき 観点とその対策事例〜

Slide 2

Slide 2 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. 自己紹介 吉澤 政洋 @muziyoshiz ● 2017年8月からSRE ○ サービス運用監視の研究者、ソフトウェア 開発者を経験したのち、DevOpsに関心を持つ ● 2023年3月にアンドパッド入社 ○ インフラセキュリティ ○ コスト可視化・最適化 ○ SREチームの社外発信・イベント参加の主導 ● SREコミュニティのスタッフ経験あり ○ SRE NEXT(2020〜2023)のコアスタッフ ● 趣味はボルダリング 2

Slide 3

Slide 3 text

アンドパッドの紹介

Slide 4

Slide 4 text

現場の効率化から経営改善まで一元管理できる 建設DX プロジェクト管理サービス

Slide 5

Slide 5 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. 建設業界特化型のVertical SaaS 5

Slide 6

Slide 6 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. 次々と新プロダクトをリリース 6

Slide 7

Slide 7 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. マルチプロダクト戦略、多数の開発チーム ● インフラは全社統一基準だが、プロジェクト運営は各開発チームに委任 7 Frontend Backend Application QA Frontend Backend QA Frontend Backend Application 開発チームA 開発チームB 開発チームC Frontend Backend 開発チームD 横断的な関心事を扱うチーム (SRE, DBRE, CRE, セキュリティ, インフラコストマネジメントなど)

Slide 8

Slide 8 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. システム構成 ● メインはAWS ○ 要件に応じて、一部のプロダクトはGoogle Cloudのサービス(Firebaseなど)も利用 ● サービスはコンテナ化されており、Kubernetesを利用している ○ コンテナの大半はAmazon EKS上で動作するが、ECS on Fargateも併用 ○ サービスメッシュはLinkerdを採用 ● 2つのEKSクラスタを本番運用している ○ 歴史の長いモノリスのためのEKSクラスタ ○ マイクロサービスのためのEKSクラスタ ● Rubyの会社と思われがちだが、最近はGoで開発されるプロダクトも多い ○ 詳細は https://engineer.andpad.co.jp/ を参照のこと 8

Slide 9

Slide 9 text

AWS Security Hubによる 継続的なセキュリティ診断

Slide 10

Slide 10 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. 継続的なセキュリティ診断の必要性 ● アンドパッドでは開発チームにインフラの構築・管理を一部移譲している ○ SREチームだけでなく、開発チームも、TerraformなどのIaCツールを活用している ● 定期的なセキュリティ診断を行っているが、それだけではセキュリティリスク の発見が遅れる可能性がある ○ セキュリティリスクを早期発見するためにSREチームの事前レビューを必須とする と、SREチームが開発のボトルネックになってしまう 10

Slide 11

Slide 11 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. AWS Security Hubとは ● AWSが提供するクラウドセキュリティ態勢管理(CSPM: Cloud Security Posture Management)サービス ○ ビルトインされたセキュリティのベストプラクティスに基づき、 AWS上のリソースがベストプラクティスに従っているかチェックできる ※ベストプラクティス以外に、AWSの他サービス(Amazon GuardDutyなど)や  他社サービスによるチェック結果を集約する機能も持つが、今回の発表では扱わない 11

Slide 12

Slide 12 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. 基礎知識:AWS Security Hubの用語 ● コントロール(セキュリティコントロール) ○ AWSリソースに対するチェック条件 ○ 各コントロールにIDが付与されている ■ 例:S3バケットに対するチェック条件はS3.1〜S3.24 ○ 不要なコントロールは無効化できる ● 検出結果 ○ 各AWSリソースに対するチェック結果 ○ AWSリソースとコントロールの組み合わせの数だけ発生する ○ 特別な理由がある場合には、特定のリソースの検出結果だけ 抑止(suppress)できる 12

Slide 13

Slide 13 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. 例:公式サイトでのコントロールS3.1の説明 13

Slide 14

Slide 14 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. アンドパッドの導入事例 14

Slide 15

Slide 15 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. Slackに通知される検出結果の例 15

Slide 16

Slide 16 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. アンドパッドでの導入の効果 ● リソースの作成からセキュリティリスクの発見までの時間が短縮された ○ プッシュ通知への対応が定着した ○ 開発の初期段階でセキュリティリスクに気付けるため、開発チームに対して、 設定の見直しを頼みやすくなった ● ナレッジが蓄積され、セキュリティリスクの発生が減った ○ ドキュメントの整備やTerraformファイルの改善が進んだため、 過去の設定を踏襲してリソースを作成すれば コントロールに違反しない(最初からPassedになる)状態になった ● 自発的な活用の度合いは開発チームによってまちまち ○ アンドパッドではAtlantis(TerraformのCIツール)の導入および開発チームへの 展開を進めている ○ 開発チームによるリソースの作成が増えれば、Security Hubはさらに重要になる 16

Slide 17

Slide 17 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. ブログ記事: AWS Security Hubコントロールの有効 無効をコード管理するのは予想のN倍大 変だった話 https://tech.andpad.co.jp/entry/202 3/09/26/100000 過去の発表(1):システム面の詳細 17 プレゼン資料: AWS Security Hubを「有効化したけど 見てない」人に向けたDevSecOpsの実 現方法 https://speakerdeck.com/muziyoshiz /kayac-andpad-event

Slide 18

Slide 18 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. プレゼン資料: 開発チームとともに進めるインフラセ キュリティの継続的な改善 https://speakerdeck.com/muziyoshiz /sre-lounge-17 過去の発表(2):開発チームのためのドキュメント整備 18

Slide 19

Slide 19 text

AWS Security Hubを 1年以上運用して得た教訓

Slide 20

Slide 20 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. これからAWS Security Hubを導入する人に 3つだけアドバイスするなら? 20 1 運用開始前に、対応が必要なコントロールの 検出結果だけがプッシュ通知される状態にする 新しいコントロールを自動的に有効にしない 一度有効または無効にすると決めたコントロールも 定期的に棚卸しする 2 3

Slide 21

Slide 21 text

教訓1. 運用開始前に、対応が必要な コントロールの検出結果だけが プッシュ通知される状態にする

Slide 22

Slide 22 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. プッシュ通知される検出結果が多すぎたらどうなる? ● ほとんどの人は見なくなって、重要な検出結果が見過ごされる ● 大量の通知から重要な検出結果だけを拾い上げる職人芸が生まれる (そして、その職人がいなくなったら誰も見なくなる) 22

Slide 23

Slide 23 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. プッシュ通知をどこまで減らせばいい? ● 組織内で、プッシュ通知が来たら絶対対応すると合意できる範囲まで減らす ● 対応とは、リソースの設定変更や削除、検出結果の抑止(Suppress)を行い、 コントロールのステータスを失敗(Failed)から成功(Passed)に戻すこと 23

Slide 24

Slide 24 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. 「運用開始前に」コントロールを分類する 24 対応すべきコントロールで、 運用開始までに 成功(Passed)状態にできる 成功(Passed)状態にしたうえで そのコントロールを有効化する コントロールの内容 運用開始前にすべきこと 対応すべきコントロールだが、 運用開始までには 成功(Passed)状態にできない 有効化するために必要な作業を タスク管理システムに 登録したうえで そのコントロールを無効化する AWSが示す以外の方法で セキュリティが確保されている などの理由で 優先度が低いコントロール そのコントロールを無効化する

Slide 25

Slide 25 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. アンドパッドでのSecurity Hub導入プロセス 25 システム設計 2023年7月 8月 9月 コントロールに関する SRE/DBREへのヒアリング 運用スクリプトの開発や 運用プロセスの整備 開発チームとの調整、 運用開始の周知 対応すべきコントロールを成功( Passed)状態にするための AWSリソースの修正 7/11 導入提案 9/25 説明会

Slide 26

Slide 26 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. アンドパッドでのSecurity Hub導入プロセス 26 システム設計 2023年7月 8月 9月 コントロールに関する SRE/DBREへのヒアリング 運用スクリプトの開発や 運用プロセスの整備 開発チームとの調整、 運用開始の周知 対応すべきコントロールを成功( Passed)状態にするための AWSリソースの修正 7/11 導入提案 9/25 説明会 251件(当時)のコントロールを 分類するために、 SRE/DBREと計11回の打合せを実施

Slide 27

Slide 27 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. 組織内の合意結果およびその理由の記録 27 (注:実際に使用しているものとは異なる、説明用のサンプルです) コントロールの説明 現在の設定(有効/無効) コントロールを 無効化した理由 チェック対象外にしたリ ソースとその理由

Slide 28

Slide 28 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. 教訓1のまとめ ● その組織で有効化するコントロールを、 運用開始前に、十分な時間をかけて関係者と合意する ● そしてその判断の根拠を、あとから組織に参加した人にもわかる状態にする 28

Slide 29

Slide 29 text

教訓2. 新しいコントロールを 自動的に有効にしない

Slide 30

Slide 30 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. AWSはコントロールを頻繁に追加・削除している ● AWSサービスの機能強化に追従するため ● 新たなセキュリティベストプラクティスに対応するため 30

Slide 31

Slide 31 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. Security Hubのデフォルトの動作 ● Security Hubの一般設定のなかにある 「有効になっている標準で新しいコントロールを自動的に有効にする」 という設定が、デフォルトでオンになっている ● 「コントロールが追加されたらプッシュ通知が届いて気づけるってこと? 便利そうだからデフォルトのままにしておこう」 → そんなことはなかった 31

Slide 32

Slide 32 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. 運用開始から2024年11月までに行われた変更 32 告知日 変更内容 2023-10-10 19件追加 2023-12-14 15件追加 2024-02-15 6件削除 2024-02-19 1件追加 2024-05-03 15件追加 2024-05-13 7件追加 2024-06-11 9件追加 告知日 変更内容 2024-07-15 15件追加 2024-08-15 1件更新(Config.1) 2024-08-30 8件追加 2024-10-03 7件追加 2024-10-18 7件追加 2024-11-08 1件削除(Glue.2) 2024-11-15 5件追加 108件の追加、1件の更新、7件の削除

Slide 33

Slide 33 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. アンドパッドで発生したプッシュ通知の件数 33

Slide 34

Slide 34 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. アンドパッドで発生したプッシュ通知の件数 34 12月までは 新しいコントロールを自動的に有効にしており、 見る必要のない通知の多さに悩まされていた

Slide 35

Slide 35 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. アンドパッドで発生したプッシュ通知の件数 35 1月からは新しいコントロールを 自動的に有効化するのをやめて、 見る必要のない通知が減った

Slide 36

Slide 36 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. なにが問題だったのか? 36 見る必要のない検出結果が 大量に通知される 新しいコントロールの採用は 組織内で合意されていない 問題 理由 コントロールの追加を 知る手段として不完全 コントロール1個につき 複数の通知が発生するため、 何個追加されたのかわかりづらい コントロールの追加の 確認作業が1日で済まない AWSアカウントごとに コントロールの追加日が異なり、 その都度通知が発生する コントロールの追加直後は 対応できないことがある 追加直後はAWSの公式サイトに まだ説明文がないことがある

Slide 37

Slide 37 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. 教訓2のまとめ ● Security Hubの一般設定のなかにある 「有効になっている標準で新しいコントロールを自動的に有効にする」 という設定をオフにする ● (教訓1と似た話になるが) 新しいコントロールについても、関係者との合意を得てから有効化する 37

Slide 38

Slide 38 text

教訓3. 一度有効または無効にすると決めた コントロールも定期的に棚卸しする

Slide 39

Slide 39 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. 私たちの反省点 ● 運用開始前にタスク管理システムに登録した作業には なかなか着手できていない ● 一度有効化したコントロールについて、 プッシュ通知が来ても無視しがちなものが出てきているが、 改めて議論のための時間を割くことができていない 39

Slide 40

Slide 40 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. 「運用開始前に」コントロールを分類する 40 対応すべきコントロールで、 運用開始までに 成功(Passed)状態にできる 成功(Passed)状態にしたうえで そのコントロールを有効化する コントロールの内容 運用開始前にすべきこと 対応すべきコントロールだが、 運用開始までには 成功(Passed)状態にできない 有効化するために必要な作業を タスク管理システムに 登録したうえで そのコントロールを無効化する AWSが示す以外の方法で セキュリティが確保されている などの理由で 優先度が低いコントロール そのコントロールを無効化する 運用開始前に登録したタスク を振り返れていない

Slide 41

Slide 41 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. アンドパッドで発生したプッシュ通知の件数 41 開発環境では、問題を事前に検知するために、 プッシュ通知がある程度発生するのは正常なこと 本番環境ではもう少し件数を減らせないか?

Slide 42

Slide 42 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. 教訓3のまとめ(自戒を込めて) ● Security Hubの運用開始までに対応できない、という理由で 無効化したコントロールについて、運用が落ち着いたら改めて対応する ● プッシュ通知の件数を、コントロールIDごとに集計し、 件数が多いコントロールについては根本対応または無効化する 42

Slide 43

Slide 43 text

まとめ

Slide 44

Slide 44 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. まとめ ● アンドパッドでは、マルチプロダクト開発の現場で、 開発チームを巻き込みながらAWS Security Hubを1年以上運用してきた ● その経験を、以下の3つの教訓にまとめてご紹介した 44 1 運用開始前に、対応が必要なコントロールの 検出結果だけがプッシュ通知される状態にする 2 新しいコントロールを自動的に有効にしない 3 一度有効または無効にすると決めたコントロールも 定期的に棚卸しする

Slide 45

Slide 45 text

Copyright © 2024 ANDPAD Inc. All Rights Reserved. We are hiring! 45 https://engineer.andpad.co.jp/ 技術スタックや募集ポジションを 掲載してます!