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

コンテナセキュリティ

 コンテナセキュリティ

「コンテナセキュリティ - Forkwell Library#26」の資料です。
https://forkwell.connpass.com/event/287259/

Kyohei Mizumoto

July 05, 2023
Tweet

More Decks by Kyohei Mizumoto

Other Decks in Technology

Transcript

  1. 株式会社スリーシェイク Sreake事業部 (SRE/)CSIRT - AWS, GCP, kubernetes 環境のセキュリティ強化 - SOC/CSIRT運用と改善

    - 脅威情報の収集、サイバー演習 etc… その他 - 3-shake SRE Tech Talk 運営 - 「コンテナセキュリティ」書籍監訳 水元 恭平 @kyohmizu whoami
  2. 「Container Security」 ✅ O'Reilly Mediaより2020年4月刊行 ✅ 著者はLiz Rice氏(当時Aqua、現Isovalent) ➢ https://twitter.com/lizrice

    ✅ コンテナを構成するLinuxの要素技術が中心 ✅ Docker/Kubernetesに関するセキュリティの観点 ➢ 詳細な設定、ベストプラクティスは取り扱わない https://www.oreilly.com/library/view/container-security/9781492056690/ Fundamental Technology Concepts That Protect Containerized Applications
  3. 「コンテナセキュリティ」 ✅ 2023年4月刊行 ✅ 原書の翻訳 + 監修 ➢ 原書刊行時点からの情報アップデート ➢

    関連する技術情報の追記(コラム形式) https://book.impress.co.jp/books/1122101051 コンテナ化されたアプリケーションを保護する要素技術
  4. 書籍の構成 1. コンテナセキュリティの脅威 2. Linuxシステムコール、パーミッション、 capability 3. コントロールグループ 4. コンテナの分離

    5. 仮想マシン 6. コンテナイメージ 7. イメージに含まれるソフトウェアの脆弱性 8. コンテナ分離の強化 9. コンテナエスケープ 10. コンテナネットワークセキュリティ 11. TLSによるコンポーネントの安全な接続 12. コンテナへのシークレットの受け渡し 13. コンテナのランタイム保護 14. コンテナとOWASPトップ10 付録A:セキュリティチェックリスト
  5. 書籍の構成 1. コンテナセキュリティの脅威 2. Linuxシステムコール、パーミッション、 capability 3. コントロールグループ 4. コンテナの分離

    5. 仮想マシン 6. コンテナイメージ 7. イメージに含まれるソフトウェアの脆弱性 8. コンテナ分離の強化 9. コンテナエスケープ 10. コンテナネットワークセキュリティ 11. TLSによるコンポーネントの安全な接続 12. コンテナへのシークレットの受け渡し 13. コンテナのランタイム保護 14. コンテナとOWASPトップ10 付録A:セキュリティチェックリスト Linuxの要素技術 Linuxの要素技術 Docker/Kubernetes Docker/Kubernetes Docker/Kubernetes
  6. 3章:コントロールグループ ✅ cgroupにより、プロセスが使用するリソースを制限する ➢ ディレクトリ構造とサブシステム ➢ cgroupの作成 ➢ リソース上限の設定 ➢

    プロセス割り当て ➢ cgroup v2 ✅ 手を動かしながら読み進めると◯ ✅ tenforwardさんの連載記事がおすすめ ➢ https://gihyo.jp/admin/serial/01/linux_containers/0003
  7. 4章:コンテナの分離 ✅ namespaceにより、プロセスが見えるリソースを制限する ➢ 各種namespace(UTS, PID, mount, user..) ➢ lsns,

    unshareコマンドの利用 ✅ rootディレクトリの変更と組み合わせて、擬似コンテナを作成 ➢ unshare + chrootコマンド ✅ ホストからのコンテナプロセスの見え方 ✅ 手を動かしながら読み進めると◯ ➢ https://contained.af/ が面白かったが、アクセスできなくなっている ➢ https://github.com/genuinetools/contained.af
  8. イメージセキュリティについて ✅ ビルド時のセキュリティ ➢ セキュアなDockerfile ➢ コードリポジトリ、ビルドマシンへのアクセス制御 ✅ イメージレジストリのセキュリティ ➢

    レジストリへのアクセス制御 ➢ イメージ署名 ✅ デプロイ時のセキュリティ ➢ アドミッションコントロール(署名、ポリシーチェック等) ✅ サプライチェーンセキュリティ(SLSA)
  9. 7章:イメージに含まれるソフトウェアの脆弱性 ✅ 脆弱性について ➢ イメージに含まれる脆弱性の種類 ➢ 脆弱性スキャンの仕組み ➢ ゼロデイ脆弱性 ✅

    イメージスキャンについて ➢ スキャンの対象範囲 ➢ 定期スキャンとCI/CDパイプラインへの統合 ➢ スキャン済みイメージの署名
  10. 脆弱性スキャンの仕組み ✅ 脆弱性情報のソース ➢ スキャンツールごとに様々 ➢ https://aquasecurity.github.io/trivy/v0.43/docs/scanner/vulnerability/os/#data-sources ✅ スキャン対象 ➢

    パッケージマネージャ経由でインストールされたもの ➢ https://aquasecurity.github.io/trivy/v0.43/docs/scanner/vulnerability/os/#supported-os ➢ SBOM(ソフトウェア部品表) ✅ 脆弱性管理コストの削減 ➢ イメージに不要なパッケージを含まない ➢ イメージサイズを小さくする
  11. 9章:コンテナエスケープ ✅ コンテナからの脱出(ホストの権限を得る)方法を学ぶ ➢ root権限(デフォルト)の利用 ➢ --privilegedフラグによる過剰なcapability ➢ ホストディレクトリのマウント ✅

    コンテナ - ホスト間のnamespace共有 ✅ コンテナ間のnamespace共有 ➢ サイドカーコンテナ ✅ privilegedコンテナのエスケープは他にも色々 ➢ https://container-security.dev/security/breakout-to-host.html
  12. 14章:コンテナとOWASPトップ10 A01 アクセス制御の不備 A02 暗号化の失敗 A03 インジェクション A04 安全が確認されない不安な設計 A05

    セキュリティの設定ミス A06 脆弱で古くなったコンポーネント A07 識別と認証の失敗 A08 ソフトウェアとデータの整合性の不具合 A09 セキュリティログとモニタリングの失敗 A10 サーバーサイドリクエストフォージェリ (SSRF) https://owasp.org/Top10/ja/
  13. OWASP Kubernetes Top 10 K01: Insecure Workload Configurations(安全でないワークロードの設定) → 6,9章

    K02: Supply Chain Vulnerabilities(サプライチェーンにおける脆弱性) → 7章 K03: Overly Permissive RBAC Configurations(過剰なRBACの権限設定) K04: Lack of Centralized Policy Enforcement(一元化されたポリシー適用の欠如) → 6章 K05: Inadequate Logging and Monitoring(不十分なロギングと監視) K06: Broken Authentication Mechanisms(認証メカニズムの欠陥) → 11章 K07: Missing Network Segmentation Controls(ネットワーク分離の欠如) → 10章 K08: Secrets Management Failures(シークレット管理の失敗) → 12章 K09: Misconfigured Cluster Components(クラスタコンポーネントの設定ミス) K10: Outdated and Vulnerable Kubernetes Components(古く脆弱なk8sコンポーネント)→ 7章 https://owasp.org/www-project-kubernetes-top-ten/ https://sysdig.jp/blog/owasp-kubernetes-top-10/
  14. コンテナ環境を狙うマルウェアを知る ✅ Doki ➢ Docker APIをターゲットとするバックドア型トロイの木馬 ✅ Kinsing ➢ Docker

    APIをターゲットとするクリプトマイナー ✅ Peirates ➢ Kubernetesのペネトレーションテストツール ➢ https://github.com/inguardians/peirates https://attack.mitre.org/techniques/T1610/