Slide 1

Slide 1 text

株式会社 Gunosy テクノロジー本部 プロダクト開発部 SREチーム マネージャー 山口 隆史 2024年2月16日(金) コンテナセキュリティの概要と デプロイフローに組み込んだ後の課題

Slide 2

Slide 2 text

(C) Gunosy Inc. All Rights Reserved. PAGE | 2 エレベーターピッチ [セキュリティに興味がある人]、 [セキュリティをこれから始めたい人]向けに発表する [コンテナセキュリティの概要とデプロイフローに組み込んだ後の課題]は [現場にセキュリティを適用した後の話]です これは[大きくない開発組織でのセキュリティ対応の現場での実践に基づい て構成しているため、現実感]があり これまでの成功事例やベンダーのセールス資料とは違って [コンテナセキュリティの全体像と定常運用した時の課題に焦点をあててい る]

Slide 3

Slide 3 text

(C) Gunosy Inc. All Rights Reserved. PAGE | 3 終了後に狙う状態 論理面 - コンテナセキュリティの概要が理解できる - Gunosyでのセキュリティツール選択の観点が理解できる - セキュリティ対策を現場に適用して、理想的な運用状態になるまでに発生 する・した課題が理解できる 感情面 - セキュリティ対策に興味を持ってやってみようと思える

Slide 4

Slide 4 text

(C) Gunosy Inc. All Rights Reserved. 本題に入る前に自己紹介

Slide 5

Slide 5 text

(C) Gunosy Inc. All Rights Reserved. PAGE | 5 自己紹介 氏名:山口隆史(やまぐちたかし) 所属:株式会社Gunosy テクノロジー本部 プロダクト開発部 SREチーム マネージャー 業務:コンサルティング SREとしての活動 略歴:フリーランス、SIer等を渡り歩く→現職(2022/01〜) 自称:Security Hub芸人 好きなAWSサービス:Security Hub、GuardDuty、サポート 他:AWS Community Builder(Security & Identity)、JAWS-UG千葉支部運営、   Snyk Ambassador 第022587号

Slide 6

Slide 6 text

(C) Gunosy Inc. All Rights Reserved. PAGE | 6 株式会社Gunosy ギリシャ語で「知識」を意味する「Gnosis(グノーシス)」+「u(“you”)」 「”Gnosis” for “you”」あなたのための知識  =情報を届けるサービスを提供し続ける、という意味 ■ 2012年11月創業 ■ 2015年4月東証マザーズ上場 ■ 2017年12月東証第一部に市場変更 ■ 2022年4月東京証券取引所の市場一部からプライム市場に移行 ■ 従業員数 252名 (2023年5月末現在 連結ベース) ■ 事業内容 – 情報キュレーションサービスその他メディアの開発及び運営 ■ 提供サービス  グノシー、ニュースパス、 auサービスToday、 企業理念「情報を世界中の人に最適に届ける」

Slide 7

Slide 7 text

(C) Gunosy Inc. All Rights Reserved. ここから本題

Slide 8

Slide 8 text

(C) Gunosy Inc. All Rights Reserved. PAGE | 8 アジェンダ 話すこと ● コンテナセキュリティの概要 ● デプロイフローへの組み込み ● まとめ

Slide 9

Slide 9 text

(C) Gunosy Inc. All Rights Reserved. コンテナセキュリティの概要

Slide 10

Slide 10 text

(C) Gunosy Inc. All Rights Reserved. AWSの責任共有モデル

Slide 11

Slide 11 text

(C) Gunosy Inc. All Rights Reserved. PAGE | 11 AWSの責任共有モデル(全体)

Slide 12

Slide 12 text

(C) Gunosy Inc. All Rights Reserved. PAGE | 12 AWSの責任共有モデル(ECS on EC2)

Slide 13

Slide 13 text

(C) Gunosy Inc. All Rights Reserved. PAGE | 13 AWSの責任共有モデル(ECS on Fargate)

Slide 14

Slide 14 text

(C) Gunosy Inc. All Rights Reserved. PAGE | 14 狭義のコンテナセキュリティに求められる領域

Slide 15

Slide 15 text

(C) Gunosy Inc. All Rights Reserved. PAGE | 15 実際にコンテナセキュリティに求められる領域 コンテナより低レイヤで セキュリティが適切に担 保されていることの方が 大事だったりします

Slide 16

Slide 16 text

(C) Gunosy Inc. All Rights Reserved. コンテナ脅威モデル

Slide 17

Slide 17 text

(C) Gunosy Inc. All Rights Reserved. PAGE | 17 コンテナへの攻撃経路 出典: コンテナセキュリティ P.23

Slide 18

Slide 18 text

(C) Gunosy Inc. All Rights Reserved. PAGE | 18 コンテナへの攻撃経路 出典: コンテナセキュリティ P.23-25 ■ 脆弱なアプリケーション ■ コンテナイメージの設定不備 ■ ビルドマシン攻撃 ■ サプライチェーン攻撃 ■ コンテナの設定不備 ■ 脆弱なホスト ■ 公開されたシークレット ■ 安全でないネットワーキング ■ コンテナエスケープの脆弱性

Slide 19

Slide 19 text

(C) Gunosy Inc. All Rights Reserved. セキュリティの原則

Slide 20

Slide 20 text

(C) Gunosy Inc. All Rights Reserved. PAGE | 20 セキュリティの原則 出典: コンテナセキュリティ P.32-33 ■ 最小権限 – 処理を実行するのに最小の権限に制限する ■ 多層防御 – 攻撃者がある防御を突破できても別のレイヤー防ぐ ■ 攻撃対象領域の縮小(アタックサーフェースの縮小) – システムの複雑さを解消することで、攻撃しにくくする ■ 影響範囲の制限 – 小さなコンポーネントに分割して、最悪の事態発生時の影響を限定的にする ■ 職務分掌 – 異なるコンポーネントに対して、可能な限り最小限の権限のみを与える

Slide 21

Slide 21 text

(C) Gunosy Inc. All Rights Reserved. PAGE | 21 セキュリティの原則 出典: コンテナセキュリティ P.32-33 ■ 最小権限 – 処理を実行するのに最小の権限に制限する ■ 多層防御 – 攻撃者がある防御を突破できても別のレイヤー防ぐ ■ 攻撃対象領域の縮小(アタックサーフェースの縮小) – システムの複雑さを解消することで、攻撃しにくくする ■ 影響範囲の制限 – 小さなコンポーネントに分割して、最悪の事態発生時の影響を限定的にする ■ 職務分掌 – 異なるコンポーネントに対して、可能な限り最小限の権限のみを与える ここを深堀りし ます

Slide 22

Slide 22 text

(C) Gunosy Inc. All Rights Reserved. クラウド環境でのセキュリティレイヤー

Slide 23

Slide 23 text

(C) Gunosy Inc. All Rights Reserved. PAGE | 23 クラウド環境でのレイヤー別のセキュリティ レイヤー テスト内容 手法 ツール アプリケーション コードの脆弱性 SAST Snyk Code OSSライブラリの脆弱性 SCA Snyk OSS, Trivy, dependabot Base Image OSSライブラリの脆弱性 SCA Snyk Container, Trivy, Aqua Dockerfile 機密情報、特権等 Snyk Container, Dockle, Trivy, Aqua オーケストレーター ミスコンフィグ CWPP Snyk Cloud, Aqua ランタイムセキュリティ DAST Falco, Sysdig, GuardDuty ホストOS ハードニング、OS脆弱性 CWPP Inspector, Security Hub クラウド環境 ミスコンフィグ CSPM Security Hub 出典: https://owasp.org/www-community/Source_Code_Analysis_Tools

Slide 24

Slide 24 text

(C) Gunosy Inc. All Rights Reserved. PAGE | 24 クラウド環境でのレイヤー別のセキュリティ レイヤー テスト内容 手法 ツール アプリケーション コードの脆弱性 SAST Snyk Code OSSライブラリの脆弱性 SCA Snyk OSS, Trivy, dependabot Base Image OSSライブラリの脆弱性 SCA Snyk Container, Trivy Dockerfile 機密情報、特権等 Snyk Container, Dockle, Trivy, Aqua オーケストレーター ミスコンフィグ CWPP Snyk Cloud, Aqua ランタイムセキュリティ DAST Falco, Sysdig, GuardDuty ホストOS ハードニング、OS脆弱性 CWPP Inspector, Security Hub クラウド環境 ミスコンフィグ CSPM Security Hub 全てのレイヤで なんらかのリスク軽 減対策が必要 (多層防御)

Slide 25

Slide 25 text

(C) Gunosy Inc. All Rights Reserved. デプロイフローへの組み込み

Slide 26

Slide 26 text

(C) Gunosy Inc. All Rights Reserved. PAGE | ホスト・基盤 26 Gunosyのデプロイパイプラインの一例 オーケスト レーター レジストリ CI/CD 開発 開発者 Gitリポジトリ CircleCI GitHub Actions ECR (Private Registry) Argo CD Docker Hub EKS ECS EC2 Fargate

Slide 27

Slide 27 text

(C) Gunosy Inc. All Rights Reserved. パイプラインのどこでセキュリティ対策を 実施する必要があるか?

Slide 28

Slide 28 text

(C) Gunosy Inc. All Rights Reserved. パイプラインの全ての段階で 対策が必要です!

Slide 29

Slide 29 text

(C) Gunosy Inc. All Rights Reserved. PAGE | ホスト・基盤 29 デプロイパイプラインでのセキュリティ対応 オーケスト レーター レジストリ CI/CD 開発 開発者 開発者の手元でスキャ ン (コード、OSS、ライセ ンス、Dockerfile、マ ニュフェスト)

Slide 30

Slide 30 text

(C) Gunosy Inc. All Rights Reserved. PAGE | ホスト・基盤 30 デプロイパイプラインでのセキュリティ対応 オーケスト レーター レジストリ CI/CD 開発 開発者 Gitリポジトリ PR作成時に差分スキャ ン (コード、OSS、ライセン ス、Dockerfile) 定期的自動的にスキャ ン (コード、OSS、ライセン ス、Dockerfile)

Slide 31

Slide 31 text

(C) Gunosy Inc. All Rights Reserved. PAGE | ホスト・基盤 31 デプロイパイプラインでのセキュリティ対応 オーケスト レーター レジストリ CI/CD 開発 開発者 Gitリポジトリ CircleCI GitHub Actions Argo CD ビルドした成果物をス キャン (コード、OSS、ライセン ス、Dockerfile、マニュ フェスト)

Slide 32

Slide 32 text

(C) Gunosy Inc. All Rights Reserved. PAGE | ホスト・基盤 32 デプロイパイプラインでのセキュリティ対応 オーケスト レーター レジストリ CI/CD 開発 開発者 Gitリポジトリ CircleCI GitHub Actions ECR (Private Registry) Argo CD Docker Hub 定期的自動的にスキャ ン (コード、OSS、ライセン ス、Dockerfile)

Slide 33

Slide 33 text

(C) Gunosy Inc. All Rights Reserved. PAGE | ホスト・基盤 33 デプロイパイプラインでのセキュリティ対応 オーケスト レーター レジストリ CI/CD 開発 開発者 Gitリポジトリ CircleCI GitHub Actions ECR (Private Registry) Argo CD Docker Hub EKS ECS マニュフェストを スキャン 使用Imageをス キャン

Slide 34

Slide 34 text

(C) Gunosy Inc. All Rights Reserved. PAGE | ホスト・基盤 34 デプロイパイプラインでのセキュリティ対応 オーケスト レーター レジストリ CI/CD 開発 開発者 Gitリポジトリ CircleCI GitHub Actions ECR (Private Registry) Argo CD Docker Hub EKS ECS EC2 Fargate ワークロード保護 ランタイム保護 ミスコンフィグの検知、 修正

Slide 35

Slide 35 text

(C) Gunosy Inc. All Rights Reserved. ここまで9分が目安

Slide 36

Slide 36 text

(C) Gunosy Inc. All Rights Reserved. セキュリティツールの技術選定

Slide 37

Slide 37 text

(C) Gunosy Inc. All Rights Reserved. PAGE | 37 Security系利用サービスの移り変わり フェーズ 開発 CI/CD コンテナレジスト リ オーケストレー ター ホスト・基盤 Security対応開 始前 本番環境への 導入完了 IaCスキャン 導入 Codeスキャン導 入

Slide 38

Slide 38 text

(C) Gunosy Inc. All Rights Reserved. PAGE | 38 Security系利用サービスの移り変わり フェーズ 開発 CI/CD コンテナレジスト リ オーケストレー ター ホスト・基盤 Security対応開 始前 本番環境への 導入完了 IaCスキャン 導入 Codeスキャン導 入 この時は何も使 用していません

Slide 39

Slide 39 text

(C) Gunosy Inc. All Rights Reserved. PAGE | 39 Security系利用サービスの移り変わり フェーズ 開発 CI/CD コンテナレジスト リ オーケストレー ター ホスト・基盤 Security対応開 始前 本番環境への 導入完了 IaCスキャン 導入 Codeスキャン導 入 Inspector GuardDuty Security Hub Inspector できるだけAWSに 寄せる感じで選定 とりあえずスキャン してみた感じ CIS Benchmark準拠 Security Hubに送れる

Slide 40

Slide 40 text

(C) Gunosy Inc. All Rights Reserved. PAGE | 40 Security系利用サービスの移り変わり フェーズ 開発 CI/CD コンテナレジスト リ オーケストレー ター ホスト・基盤 Security対応開 始前 本番環境への 導入完了 IaCスキャン 導入 Codeスキャン導 入 Inspector Inspector GuardDuty Security Hub reviewdog+OSSでの スキャンを試したが、 Snykの標準機能のPR チェックで充足できた WebUIで全社統一 ルールを作れる

Slide 41

Slide 41 text

(C) Gunosy Inc. All Rights Reserved. PAGE | 41 Security系利用サービスの移り変わり フェーズ 開発 CI/CD コンテナレジスト リ オーケストレー ター ホスト・基盤 Security対応開 始前 本番環境への 導入完了 IaCスキャン 導入 Codeスキャン導 入 Inspector GuardDuty Security Hub Security Lake Tagでの絞り込み ができないので Snykを採用 VSCode拡張 強力なサジェスト機 能 PRチェック Security Hubのダッシュ ボードが使いにくいので Security Lake+QuickSight で自作 Inspectorのダッシュボー ドでトリアージができな かったのでSnykを採用 Snykのダッシュボードがいい感じ だったのでクラウドセキュリティも Snykにしようかと検討したが、コス ト面で断念

Slide 42

Slide 42 text

(C) Gunosy Inc. All Rights Reserved. PAGE | ホスト・基盤 42 デプロイパイプラインで実施しているセキュリティ オーケスト レーター レジストリ CI/CD 開発 開発者 Gitリポジトリ CircleCI GitHub Actions ECR (Private Registry) Argo CD Docker Hub EKS ECS EC2 Fargate 開発中の Scanと修 正 PRチェック 定期スキャ ン 差分をス キャン 定期ス キャン ミスコン フィグの チェック マニュフェス トスキャン、 Image Scan

Slide 43

Slide 43 text

(C) Gunosy Inc. All Rights Reserved. デプロイフローに組み込んだ後の課題

Slide 44

Slide 44 text

(C) Gunosy Inc. All Rights Reserved. PAGE | 44 Shift-leftしてもright側のスキャンと対応も必要 ■ 対象 – 現在動いている本番環境 ■ 目的 – 本番環境でのセキュリティ リスク確認 ホスト・基盤 オーケスト レーター レジストリ CI/CD 開発 ■ 対象 – 本番環境にデプロイするア プリ・環境 ■ 目的 – 本番環境に脆弱性がある アプリ・環境がデプロイされ ないようにする Shift-Left 現実世界 これから起きる未来

Slide 45

Slide 45 text

(C) Gunosy Inc. All Rights Reserved. PAGE | 45 Shift-leftしてもright側のスキャンと対応も必要 ■ 対象 – 現在動いている本番環境 ■ 目的 – 本番環境でのセキュリティ リスク確認 ホスト・基盤 オーケスト レーター レジストリ CI/CD 開発 ■ 対象 – 本番環境にデプロイするア プリ・環境 ■ 目的 – 本番環境に脆弱性がある アプリ・環境がデプロイされ ないようにする Shift-Left 現実世界 これから起きる未来 目的も対象も 異なるので 両方必要!

Slide 46

Slide 46 text

(C) Gunosy Inc. All Rights Reserved. PAGE | 46 本番環境とソースリポジトリで指摘が違う ■ ソースリポジトリで脆弱性を修正しても、本番環境の脆弱性は指摘される

Slide 47

Slide 47 text

(C) Gunosy Inc. All Rights Reserved. PAGE | 47 本番環境とソースリポジトリで指摘が違う ■ ソースリポジトリで脆弱性を修正しても、本番環境の脆弱性は指摘される ■ どういうことかというと – 本番環境で脆弱性が検知される – ソースコードを修正してコミット・マージ – 開発環境・ステージング環境にデプロイして確認 – (ここまで本番環境の脆弱性は検知されたままの状態) – 本番環境にデプロイ – (ここまでくると本番環境の脆弱性は検知されなくなる)

Slide 48

Slide 48 text

(C) Gunosy Inc. All Rights Reserved. PAGE | 48 本番環境とソースリポジトリで指摘が違う ■ ソースリポジトリで脆弱性を修正しても、本番環境の脆弱性は指摘される ■ どういうことかというと – 本番環境で脆弱性が検知される – ソースコードを修正してコミット・マージ – 開発環境・ステージング環境にデプロイして確認 – (ここまで本番環境の脆弱性は検知されたままの状態) – 本番環境にデプロイ – (ここまでくると本番環境の脆弱性は検知されなくなる) ■ つまり本番環境にデプロイされるまでは以下の状況が発生する – ソースリポジトリ上のスキャン結果は脆弱性なし – 本番環境のスキャン結果には脆弱性あり

Slide 49

Slide 49 text

(C) Gunosy Inc. All Rights Reserved. PAGE | 49 本番環境とソースリポジトリで指摘が違う ■ ソースリポジトリで脆弱性を修正しても、本番環境の脆弱性は指摘される ■ どういうことかというと – 本番環境で脆弱性が検知される – ソースコードを修正してコミット・マージ – 開発環境・ステージング環境にデプロイして確認 – (ここまで本番環境の脆弱性は検知されたままの状態) – 本番環境にデプロイ – (ここまでくると本番環境の脆弱性は検知なくなる) ■ つまり本番環境にデプロイされるまでは以下の状況が発生する – ソースリポジトリ上のスキャン結果は脆弱性なし – 本番環境のスキャン結果には脆弱性あり ■ 対応としては、リスク評価は本番環境スキャンで、修正確認はソースコードスキャ ンで行うように使い分ける

Slide 50

Slide 50 text

(C) Gunosy Inc. All Rights Reserved. PAGE | 50 トリアージが手間 ■ 対応しない方向に倒す目的で、CVEの詳細まで確認してトリアージすると手間が かかりすぎる – このCVEは攻撃条件がXXXで、このライブラリをそういう使い方はしていな いから対応しなくてヨシ! – ライブラリの脆弱性指摘はあるけどアプリケーションで使ってないから対応し なくてヨシ!

Slide 51

Slide 51 text

(C) Gunosy Inc. All Rights Reserved. PAGE | 51 トリアージが手間 ■ 対応しない方向に倒す目的で、CVEの詳細まで確認してトリアージすると手間が かかりすぎる – このCVEは攻撃条件がXXXで、このライブラリをそういう使い方はしていな いから対応しなくてヨシ! – ライブラリの脆弱性指摘はあるけどアプリケーションで使ってないから対応し なくてヨシ! ■ 対応の考え方としては – やらない理由をこねくり回すよりは、脆弱性指摘があれば対応する方が前向 きで健康的 ● 重要なのは、Base Image、ライブラリをシュッと差し替えられるCI/CDを 整備したり、テストを回せる開発体制を作ること

Slide 52

Slide 52 text

(C) Gunosy Inc. All Rights Reserved. PAGE | 52 トリアージが手間 ■ 対応しない方向に倒す目的で、CVEの詳細まで確認してトリアージすると手間が かかりすぎる – このCVEは攻撃条件がXXXで、このライブラリをそういう使い方はしていな いから対応しなくてヨシ! – ライブラリの脆弱性指摘はあるけどアプリケーションで使ってないから対応し なくてヨシ! ■ 対応の考え方としては – やらない理由をこねくり回すよりは、脆弱性指摘があれば対応する方が前向 きで健康的 ● 重要なのは、Base Image、ライブラリをシュッと差し替えられるCI/CDを 整備したり、テストを回せる開発体制を作ること ■ CI/CD、テスト周りは開発生産性の文脈でも大事になってくるので、普段からの 足回り整備がセキュリティ対応にも効いてきます

Slide 53

Slide 53 text

(C) Gunosy Inc. All Rights Reserved. PAGE | 53 脆弱性を修正してもゼロにならない ■ 脆弱性を修正しても新しい脆弱性が公表されると検知される脆弱性は永遠にゼロ になりません – BaseImage更新、ライブラリ更新したら更新後に違う脆弱性が混入 – Fixがなかったり、孫依存ライブラリの脆弱性

Slide 54

Slide 54 text

(C) Gunosy Inc. All Rights Reserved. PAGE | 54 脆弱性を修正してもゼロにならない ■ 脆弱性を修正しても新しい脆弱性が公表されると検知される脆弱性は永遠にゼロ になりません – BaseImage更新、ライブラリ更新したら更新後に違う脆弱性が混入 – Fixがなかったり、孫依存ライブラリの脆弱性 ■ 向き合い方としては、デプロイ完了時点で検出がゼロになることを目指さない – 受容可能な範囲までリスクを軽減するのが目的なので、検出ゼロを目指さな くても達成可能 ● 軽減策がとれる場合は積極的にとりましょう

Slide 55

Slide 55 text

(C) Gunosy Inc. All Rights Reserved. PAGE | 55 脆弱性を修正してもゼロにならない ■ 脆弱性を修正しても新しい脆弱性が公表されると検知される脆弱性は永遠にゼロ になりません – BaseImage更新、ライブラリ更新したら更新後に違う脆弱性が混入 – Fixがなかったり、孫依存ライブラリの脆弱性 ■ 向き合い方としては、デプロイ完了時点で検出がゼロになることを目指さない – 受容可能な範囲までリスクを軽減するのが目的なので、検出ゼロを目指さな くても達成可能 ● 軽減策がとれる場合は積極的にとりましょう ■ 具体的には、以下のような対応を段階的に行う – BaseImageを更新する ● マイナーバージョンアップだと影響が少ない – Critical(+攻撃コードあり)の脆弱性だけ対応する

Slide 56

Slide 56 text

(C) Gunosy Inc. All Rights Reserved. まとめ

Slide 57

Slide 57 text

(C) Gunosy Inc. All Rights Reserved. PAGE | 57 まとめ ■ セキュリティ対策はリスク管理 – リスク管理は本番環境のスキャンから始めましょう ■ セキュリティ対応に銀の弾丸はありません – セキュリティ対応の目的は受容可能な範囲にリスクを抑えること ● ゼロは目指さない – 脆弱性を減らすには結局はマンパワーと事前調整が必要です ■ コンテナセキュリティはコンテナだけのセキュリティ対応で終わらないですし終わら せないことが大事 – ツールをうまく利用しましょう – ツールに踊らされないのも大事 ● Shift-leftは大事だけどright側が不要になるわけではない ■ 前向きで健康的なセキュリティ対応をしましょう – 普段からのCI/CD、テスト周りの整備が効いてきます

Slide 58

Slide 58 text

(C) Gunosy Inc. All Rights Reserved. PAGE | 58 出典・参考書籍 Liz Rice コンテナセキュリティ

Slide 59

Slide 59 text

(C) Gunosy Inc. All Rights Reserved. PAGE | 59 出典・参考Web

Slide 60

Slide 60 text

情報を世界中の人に最適に届ける