1.背景/目的 ◼クラウドサービスプロバイダ(CSP)もKubernetes as a Managed Service として採用したのは 言うまでもない。 ◼Kubernetes as a Managed Service を提供 するCSP ◼Kubernetes採用企業事例は以下を参照 ⚫ 記載されている企業以外にも多くの企業 が採用されているのは自明 ⚫ https://kubernetes.io/case-studies/ https://www.publickey1.jp/blog/17/kubernetescoreosfleetkubernetes.html https://ja.wikipedia.org/wiki/Kubernetes https://blog.docker.com/2017/10/docker-enterprise-edition-kubernetes/
1.背景/目的 ◼ コンテナの利用における運用管理の課題 ✓ 課題1:デプロイ配分、負荷分散ができない →マニフェストに記載して、複数コンテナを自動的にデプロイ! ✓ 課題2:障害時、自動復旧ができない →kubernetesがコンテナの障害を検知して自動復旧! ✓ 課題3:リソース不足時、オートスケールができない →マニフェストに記載することでオートスケール可能! ✓ 課題4:ロールアウト/ロールバックができない →リビジョンを管理しているので簡単に可能! ✓ 課題5:Secretsが管理できない →Secretsの管理が可能! ✓ etc Master Worker kube-api-server etcd kube-scheduler CCM/KCM kube-proxy kubelet k8s components CRI (Container Runtime Interface) image service Runtime service CNI Client CNI (Container Network Interface) runtime (runC …) Pod A Container A Container B Pod B Container A Container B iptables kubectl Ingress Other packages Linux Kernel Host OS Image Registry Image A Image B Host Machine User Generated
2.検証の進め方 ◼ 脆弱なコンテナ環境として、SockshopとBadStoreをたて、コンテナサービス の導入、GUIで設定確認、簡易な脆弱性診断環境から攻撃を行う。 Private subnet VPC Bastion Private subnet Public subnet Public subnet Peering ZAP CSP NAT gateway User Sysdig/Twistlock GUI Console Login Docker on EC2 ECS on EC2 ECS on Fargate Kubernetes on EC2 EKS on EC2 EKS on Fargate ECR CodePipeline CloudFormation Aqua GUI Console Login
Image Risks -3.1.4 Embedded clear text secrets- ~コンテナイメージに埋め込まれたシークレットを検出できるか~ 3.活動結果 ◼検証項目 ⚫ シークレットや認証情報が含まれているイメージのデプロイを禁止できるか ◼Twistlock OK ◼Sysdig OK ◼Aqua OK Aquaの secrets検知
Image Risks -3.1.5 Use of untrusted images- ~信頼できないコンテナイメージが使用されてないことを確認できるか~ 3.活動結果 ◼検証項目 ⚫ 使用するレジストリとイメージの一覧を確認できるか ⚫ レジストリを定期的にスキャンできるか ◼Twistlock OK ◼Sysdig NG ◼Aqua OK Aquaの Scan Time
Image Risks -3.1.5 Use of untrusted images- ~信頼できないコンテナイメージが仕様されてないことを確認できるか~ 3.活動結果 ◼検証項目 ⚫ イメージが暗号署名されていることを確認できるか ⚫ イメージのデプロイ前にベースラインの署名を確認できるか ◼Twistlock NG ◼Sysdig NG ◼Aqua NG Image Digestsを確認できるものはあ るが、それが例えば正規のNginxであ ることを認識できたりはしない。