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

マルチプロダクト開発の現場でAWS Security Hubを1年以上運用して得た教訓

マルチプロダクト開発の現場でAWS Security Hubを1年以上運用して得た教訓

2024年12月13日に開催された「カヤック・アンドパッド 合同 プロポーザル供養会」の発表資料です。

クラウドセキュリティを再吟味するために〜実例から学ぶ、考慮すべき観点とその対策事例〜 - connpass
https://findy.connpass.com/event/337675/

スライド内で紹介した過去の発表資料:

AWS Security Hubコントロールの有効無効をコード管理するのは予想のN倍大変だった話 - ANDPAD Tech Blog
https://tech.andpad.co.jp/entry/2023/09/26/100000

AWS Security Hubを有効化したけど見てない人に向けたDevSecOpsの実現方法 / #kayac_andpad_event - Speaker Deck
https://speakerdeck.com/muziyoshiz/kayac-andpad-event

開発チームとともに進めるインフラセキュリティの継続的な改善 / SRE Lounge 17 - Speaker Deck
https://speakerdeck.com/muziyoshiz/sre-lounge-17

Masahiro Yoshizawa

December 13, 2024
Tweet

More Decks by Masahiro Yoshizawa

Other Decks in Technology

Transcript

  1. Copyright © 2024 ANDPAD Inc. All Rights Reserved. マルチプロダクト開発の現場で AWS

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

    政洋 @muziyoshiz • 2017年8月からSRE ◦ サービス運用監視の研究者、ソフトウェア 開発者を経験したのち、DevOpsに関心を持つ • 2023年3月にアンドパッド入社 ◦ インフラセキュリティ ◦ コスト可視化・最適化 ◦ SREチームの社外発信・イベント参加の主導 • SREコミュニティのスタッフ経験あり ◦ SRE NEXT(2020〜2023)のコアスタッフ • 趣味はボルダリング 2
  3. 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, セキュリティ, インフラコストマネジメントなど)
  4. 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
  5. Copyright © 2024 ANDPAD Inc. All Rights Reserved. 継続的なセキュリティ診断の必要性 •

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

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

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

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

    キュリティの継続的な改善 https://speakerdeck.com/muziyoshiz /sre-lounge-17 過去の発表(2):開発チームのためのドキュメント整備 18
  11. Copyright © 2024 ANDPAD Inc. All Rights Reserved. これからAWS Security

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

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

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

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

    25 システム設計 2023年7月 8月 9月 コントロールに関する SRE/DBREへのヒアリング 運用スクリプトの開発や 運用プロセスの整備 開発チームとの調整、 運用開始の周知 対応すべきコントロールを成功( Passed)状態にするための AWSリソースの修正 7/11 導入提案 9/25 説明会
  16. 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回の打合せを実施
  17. Copyright © 2024 ANDPAD Inc. All Rights Reserved. 組織内の合意結果およびその理由の記録 27

    (注:実際に使用しているものとは異なる、説明用のサンプルです) コントロールの説明 現在の設定(有効/無効) コントロールを 無効化した理由 チェック対象外にしたリ ソースとその理由
  18. Copyright © 2024 ANDPAD Inc. All Rights Reserved. 教訓1のまとめ •

    その組織で有効化するコントロールを、 運用開始前に、十分な時間をかけて関係者と合意する • そしてその判断の根拠を、あとから組織に参加した人にもわかる状態にする 28
  19. Copyright © 2024 ANDPAD Inc. All Rights Reserved. AWSはコントロールを頻繁に追加・削除している •

    AWSサービスの機能強化に追従するため • 新たなセキュリティベストプラクティスに対応するため 30
  20. Copyright © 2024 ANDPAD Inc. All Rights Reserved. Security Hubのデフォルトの動作

    • Security Hubの一般設定のなかにある 「有効になっている標準で新しいコントロールを自動的に有効にする」 という設定が、デフォルトでオンになっている • 「コントロールが追加されたらプッシュ通知が届いて気づけるってこと? 便利そうだからデフォルトのままにしておこう」 → そんなことはなかった 31
  21. 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件の削除
  22. Copyright © 2024 ANDPAD Inc. All Rights Reserved. アンドパッドで発生したプッシュ通知の件数 34

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

    1月からは新しいコントロールを 自動的に有効化するのをやめて、 見る必要のない通知が減った
  24. Copyright © 2024 ANDPAD Inc. All Rights Reserved. なにが問題だったのか? 36

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

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

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

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

    開発環境では、問題を事前に検知するために、 プッシュ通知がある程度発生するのは正常なこと 本番環境ではもう少し件数を減らせないか?
  29. Copyright © 2024 ANDPAD Inc. All Rights Reserved. 教訓3のまとめ(自戒を込めて) •

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

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

    hiring! 45 https://engineer.andpad.co.jp/ 技術スタックや募集ポジションを 掲載してます!