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

コンテナのセキュリティについてコンテナ本出版後のアップデートをまとめてみた.pdf

うつふみ
March 31, 2025
7

 コンテナのセキュリティについてコンテナ本出版後のアップデートをまとめてみた.pdf

うつふみ

March 31, 2025
Tweet

Transcript

  1. 東京オフィス(本社) 〒108-0073 東京都港区三田3-13-16 三田43MTビル12F 札幌オフィス 〒060-0004 北海道札幌市中央区北4条西6-1 毎日札幌会館9F シリコンバレーインキュベーションセンター 3350

    Scott Blvd. #29 Santa Clara, CA 95054 株式会社ビッグツリーテクノロジー&コンサルティング コンテナ本で紹介された セキュリティ対策とその後のアップデートをまとめてみた 2024年10月31日
  2. 2 Copyright © 2024 BTC Corporation All Rights Reserved. 自己紹介

    宇都宮 郁香(うつのみや ふみか) • 2022年 新卒入社 3年目 • DX事業部所属 • 新卒から現在まで某官公庁のクラウドCoE業務を担当 <保有資格>
  3. 3 Copyright © 2024 BTC Corporation All Rights Reserved. 1

    イメージに対するセキュリティ対策の観点(p.127) イメージに対するセキュリティ対策として本の中では主に以下の内容が紹介されています。 チェック項目 概要 イメージ脆弱性 ECRによる 脆弱性スキャン AWSが提供する「AWS_NATIVE」スキャン機能を使用し、イメージの脆弱性を検知する。 • スキャン対象はOSパッケージ • 無料で利用可能 Trivyによる 脆弱性スキャン OSSのイメージスキャンツール • スキャン対象はOSパッケージ、アプリケーション依存関係 • 無料で利用可能 Inspectorによる 脆弱性スキャン 主にCVEデータべースの情報をもとに、イメージの脆弱性を検知する。 • スキャン対象はOSパッケージ、アプリケーション依存関係 • 有料(最初にスキャンされたコンテナイメージあたり:$0.11、コンテナイメージに対する連続スキャンごと:$0.01) 継続的なスキャン CI/CDパイプラインに継続的なコンテナイメージスキャンを取り入れる。 ※開発やリリースが頻繁になされない場合は、定期的な手動スキャンを実行する。 イメージ設定の不具合 Dockleを利用し、コンテナイメージへCIS BenchmarkやDockerベストプラクティスに基づいたチェックを実行する。 埋め込まれた マルウェア 提供元が信頼できる ベースイメージの利用 提供元が不明なベースイメージの利用は避ける。 例: • Docker Hub:Docker社自体が提供している公式イメージ、認定済みベンダーが提供している公式イメージ • ECR:ECR Public GalleryでVerified accountのバッジがあるイメージ GuardDutyの活用 GuardDutyにより、コンテナ内にマルウェアが混在し外部との不正な通信があった際に検知する。 埋め込まれた平文の秘密情報 秘密情報はイメージ外の安全な領域に保存し、コンテナを実行する際に動的に提供する。 Secret ManagerやSSM パラメータストアのARNと環境変数名をタスク定義内でマッピングすることで、コンテナイメージ内のOS の環境変数として認識させる。 信頼できないイメージの使用 ECRを利用し、自分たちの環境内における信頼できるイメージとレジストの一元的管理を実現する。 イメージの署名検証を行うことで、ベースイメージ等の改ざん検知を行う。 2022年4月時点では、ECRにおけるイメージ署名の検証について対応中だったが、2023年にAWS SignerとECRがコンテナイ メージに署名して検証できるイメージ署名を導入した。
  4. 4 Copyright © 2024 BTC Corporation All Rights Reserved. AWSで提供されるコンテナイメージスキャン機能の比較

    1 イメージに対するセキュリティ対策の観点(p.127) スキャン対象 • OSパッケージ • プログラミング言語パッケージ(Java、JavaScript、Python、 Rubyなど) • OSパッケージ スキャンタイミング • コンテナイメージプッシュ時 • 自動(連続スキャンにより、脆弱性情報の更新とほぼ同じタイミ ングでコンテナイメージをスキャン可能) • コンテナイメージプッシュ時 • 手動(24時間に1回任意のタイミングで特定のリポジトリをス キャン可能) 利用料金 有料 • 最初にスキャンされたコンテナイメージあたり: $0.11 • コンテナイメージに対する連続スキャンごとに: $0.01 無料 その他 • EventBridgeと連携可能 • Security Hubと統合可能(発見された脆弱性が自動的に Security Hubに送信される) • EventBridgeと連携可能 • 旧バージョンあり(AWS公式より新バージョンへの切替を推 奨) Inspector(拡張スキャン) ECR(基本スキャン) 概要 • Inspectorのコンテナイメージスキャン機能 • CVEデータベースから脆弱性対応情報を取得し、Inspectorに てコンテナイメージの脆弱性を検知する • ECRのコンテナイメージスキャン機能 • AWSが提供する「AWS_NATIVE」スキャン機能を使用し、 コンテナイメージの脆弱性を検知する。 ◼ ECR(基本スキャン)と拡張スキャンの併用はできないため、それぞれの特徴を理解したうえで利用する サービスを検討する。 参考:https://docs.aws.amazon.com/inspector/latest/user/supported.html
  5. 5 Copyright © 2024 BTC Corporation All Rights Reserved. 1

    イメージに対するセキュリティ対策の観点(p.127) イメージに対するセキュリティ対策として本の中では主に以下の内容が紹介されています。 チェック項目 概要 イメージ脆弱性 ECRによる 脆弱性スキャン AWSが提供する「AWS_NATIVE」スキャン機能を使用し、イメージの脆弱性を検知する。 • スキャン対象はOSパッケージ • 無料で利用可能 Trivyによる 脆弱性スキャン OSSのイメージスキャンツール • スキャン対象はOSパッケージ、アプリケーション依存関係 • 無料で利用可能 Inspectorによる 脆弱性スキャン 主にCVEデータべースの情報をもとに、イメージの脆弱性を検知する。 • スキャン対象はOSパッケージ、アプリケーション依存関係 • 有料(最初にスキャンされたコンテナイメージあたり:$0.11、コンテナイメージに対する連続スキャンごと:$0.01) 継続的なスキャン CI/CDパイプラインに継続的なコンテナイメージスキャンを取り入れる。 ※開発やリリースが頻繁になされない場合は、定期的な手動スキャンを実行する。 イメージ設定の不具合 Dockleを利用し、コンテナイメージへCIS BenchmarkやDockerベストプラクティスに基づいたチェックを実行する。 埋め込まれた マルウェア 提供元が信頼できる ベースイメージの利用 提供元が不明なベースイメージの利用は避ける。 例: • Docker Hub:Docker社自体が提供している公式イメージ、認定済みベンダーが提供している公式イメージ • ECR:ECR Public GalleryでVerified accountのバッジがあるイメージ GuardDutyの活用 GuardDutyにより、コンテナ内にマルウェアが混在し外部との不正な通信があった際に検知する。 埋め込まれた平文の秘密情報 秘密情報はイメージ外の安全な領域に保存し、コンテナを実行する際に動的に提供する。 Secret ManagerやSSM パラメータストアのARNと環境変数名をタスク定義内でマッピングすることで、コンテナイメージ内のOS の環境変数として認識させる。 信頼できないイメージの使用 ECRを利用し、自分たちの環境内における信頼できるイメージとレジストの一元的管理を実現する。 イメージの署名検証を行うことで、ベースイメージ等の改ざん検知を行う。 2022年4月時点では、ECRにおけるイメージ署名の検証について対応中だったが、2023年にAWS SignerとECRがコンテナイ メージに署名して検証できるイメージ署名を導入した。
  6. 6 Copyright © 2024 BTC Corporation All Rights Reserved. ECR

    + AWS Signer によるコンテナイメージの署名・検証 1 イメージに対するセキュリティ対策の観点(p.127) 署名 検証 CodeCommit CodeBuild ECR Signer CodeCommit CodeBuild EKS Signer ECR コンテナイメージへの署名 イメージをPush イメージをPull コンテナイメージの検証
  7. 7 Copyright © 2024 BTC Corporation All Rights Reserved. レジストリに対するセキュリティ対策として本の中では主に以下の内容が紹介されています。

    チェック項目 概要 レジストリ内の古いイメージ タグを利用して複数バージョンを管理する。 ECRではイメージタグの上書きを禁止するIMMUTABLE設定を有効化することを推奨。 不十分な 認証・認可制限 プライベートリポジトリ の選択 基本的にはプライベートリポジトリを利用する。 IAMポリシーを設定するすることで、ECRのパブリックリポジトリの作成を禁止し、想定外のリポジトリの公開を防ぐ。 リポジトリポリシー の活用 リポジトリ自体にポリシーを設定し、IAMポリシーよりさらにきめ細やかなアクセス制御を行う。 2 レジストリに対するセキュリティ対策の観点(p.136)
  8. 8 Copyright © 2024 BTC Corporation All Rights Reserved. イメージに対するセキュリティ対策として本の中では主に以下の内容が紹介されています。

    チェック項目 概要 無制限の管理アクセス 最小権限の原則で、むやみに管理アクセス権限を付与しない。 各チームのメンバーへIAMへの柔軟なアクセス制限が可能な一方で、縛りすぎると開発アジリティを損ないかねないため、要件に よって検討する。 コンテナ間ネットワークトラフィックの 不十分な分離 VPC全体を俯瞰してネットワークセキュリティを検討する。 ECS on Fargateの場合、IPv4アドレスがECSタスクに割当てられるとそれ自体がネットワーク上のノードとして位置づけられる。 3 オーケストレータに対するセキュリティ対策の観点(p.139)
  9. 9 Copyright © 2024 BTC Corporation All Rights Reserved. イメージに対するセキュリティ対策として本の中では主に以下の内容が紹介されています。

    チェック項目 概要 コンテナからの無 制限ネットワーク アクセス パブリックネットワーク →VPCへの通信 ALBをパブリックサブネットに配置し、WAFと連携する。 コンテナはプライベートサブネットに配置し、コンテナに紐づくセキュリティグループのインバウンドルールとして、ALBに紐づくセキュリティ グループIDからのみ許可するルールを追加する。 AWSでデフォルトで有効化されているAWS Shield StandardでL3、L4を標的とするDDoS攻撃の脅威から保護する。 コンテナ間の通信 コンテナやALBに紐づくセキュリティグループのルールを設定し、通信を制御する。 VPC→パブリック ネットワークへの通信 NAT Gatewayをパブリックサブネットに配置する。 VPC内のリソースとVPC外のリソースをプライベートに接続する場合は、通信するAWSサービス毎にVPCエンドポイントを作成する。 アプリケーションの脆弱性 WAFを利用する。 ECSタスク定義では、コンテナのルートファイルシステムアクセスを読み取り専用に設定しファイル改ざんに関する脅威を小さくする。 未承認のコンテナ IAMポリシーやリポジトリポリシーにより未承認のコンテナのデプロイを阻止する。 • ECRのリポジトリポリシーにて、CI/CD(CodeBuildに付与するIAMロール)以外のイメージプッシュを拒否する。 • IAMユーザに割当てられるIAMポリシーにて、ECSタスク定義の更新を拒否。 GuardDuty Runtime Monitoring の活用 コンテナに対して潜在的なランタイムセキュリティに関する問題を検出する。 2023年にこれまでEKSのみに提供されていた本機能がECS、EC2にも対応した。 4 コンテナに対するセキュリティ対策(p.142)
  10. 10 Copyright © 2024 BTC Corporation All Rights Reserved. ◼

    OSレベルのイベントを監視し、潜在的な脅威を検出するGuardDutyの機能 ◼ 検出できるアクティビティの例 • 通常ではないネットワークトラフィック:コンテナからの予期しないアウトバウンド接続 • 既知の悪意のあるIPまたはドメインへのアクセス:コンテナが既知の悪意あるIPやドメインと通信 • 暗号通貨マイニング:CPUまたはGPU使用率の予期しない急増 ◼ 脅威検出後の動作 検出結果をSecurity HubやEventBridge、Detectiveと連携させることが可能。 ※ 検出後の運用はユーザ側で作りこむ必要があるため、商用製品と比べ運用の手間がかかる。 GuardDuty Runtime Monitoringの概要 4 コンテナに対するセキュリティ対策(p.142)