dehio3’s diary

仕事、生活、趣味のメモ

CNDT2020での各社の取組から学ぶコンテナセキュリティ

はじめに

CNDT2020において、コンテナセキュリティに関連するセッションが複数ありました。

event.cloudnativedays.jp

自分自身が今後、マイクロサービス化を推進する立場になった時の為に、コンテナセキュリティにどう取り組むべきかを、各社の事例を参考にまとめておこうと思います。

まず確認すべきはNIST SP 800-190

多くのセッションにて出てくるコンテナセキュリティを考える上での準拠すべき基準が「NIST SP800-190」でした。

NIST SP800-190にて定義されているコンテナ技術における5つのリスク。

  1. イメージのリスク
  2. レジストリのリスク
  3. オーケストレータのリスク
  4. コンテナのリスク
  5. ホストOSのリスク

f:id:dehio3:20200915145142p:plain
Yahoo! JAPANにおけるSecure DevOpsの実践

基本として上記リスクに対して、色々なアプローチをする必要があります。

以降からは各社の取り組みについて簡単にまとめてます。

詳細については動画にて確認できるので、ざっくりどんな実装になっているのかをスライドベースで記載してます。

Yahoo! JAPAN

event.cloudnativedays.jp

実行環境をスコープとしたセキュリティの実装にてSysdigセキュアの導入

f:id:dehio3:20200915145342p:plain
Yahoo! JAPANにおけるSecure DevOpsの実践

製品選定に際し目指していた業務フロー

振舞い検知
  • セキュリティポリシーを製品を通してk8sに導入し、SOC(後述)にて常に監視
  • 既に利用しているsplunk Enterprise SecurityにLog/Alertを飛ばして監視

f:id:dehio3:20200915153130p:plain
Yahoo! JAPANにおけるSecure DevOpsの実践

www.splunk.com

構成チェック

f:id:dehio3:20200915154200p:plain
Yahoo! JAPANにおけるSecure DevOpsの実践

  • CaaS管理者にてポリシーを定義し、k8sの設定に不正な設定がないかチェック
  • ポリシー違反があればエンジニアに通知

CIS Benchmarkを利用して自前で実装しようとしていたが断念

f:id:dehio3:20200915155439p:plain
Yahoo! JAPANにおけるSecure DevOpsの実践

www.cisecurity.org

脆弱性検知
  • CSIRTが脆弱性チェックのポリシーを定義
  • 稼働中のコンテナに脆弱性があればエンジニアに通知

f:id:dehio3:20200915160141p:plain
Yahoo! JAPANにおけるSecure DevOpsの実践

製品選定

西海岸へ実際に足を運んで5社を周り選定

f:id:dehio3:20200916122835p:plain
Yahoo! JAPANにおけるSecure DevOpsの実践

f:id:dehio3:20200916123028p:plain
Yahoo! JAPANにおけるSecure DevOpsの実践

UIなど想定に一致したSysdigを選定

f:id:dehio3:20200915163312p:plain
Yahoo! JAPANにおけるSecure DevOpsの実践

sysdig.jp

体制と役割

f:id:dehio3:20200915161133p:plain
Yahoo! JAPANにおけるSecure DevOpsの実践

f:id:dehio3:20200915160910p:plain
Yahoo! JAPANにおけるSecure DevOpsの実践

f:id:dehio3:20200915160931p:plain
Yahoo! JAPANにおけるSecure DevOpsの実践

f:id:dehio3:20200915161039p:plain
Yahoo! JAPANにおけるSecure DevOpsの実践

システム構成

f:id:dehio3:20200915161211p:plain
Yahoo! JAPANにおけるSecure DevOpsの実践

ZOZOテクノロジー

event.cloudnativedays.jp

新ID基盤におけるアプリケーション管理のセキュリティ要件である、セキュリティアップデート速やかにより入れるための取り組み。

f:id:dehio3:20200915165136p:plain
ZOZOにおけるID基盤のk8sへのリプレイスとセキュリティの取り組み

コンテナイメージ脆弱性検知

  • trivyを導入
  • GitHubActionsを利用して、定期実行と都度実行

f:id:dehio3:20200915164636p:plain
ZOZOにおけるID基盤のk8sへのリプレイスとセキュリティの取り組み

freee

event.cloudnativedays.jp

マイクロサービス基盤における外部から受ける攻撃(サイバー攻撃)について、多層防御の考え方でセキュリティを実装。

アメリカの軍事技術だったKill Chainの考え方をサイバーアタックに適用したCyber Kill Chainを元に対応。 対応方針として、輸送以降の段階でログを取ってアラートをあげる。(偵察、武器調達については単独企業での実装は難しい為除外)

f:id:dehio3:20200916110832p:plain
KubernetesにSecurityをねじこむ! - マイクロサービス基盤における多層防御システム構築の軌跡

f:id:dehio3:20200916112020p:plain
KubernetesにSecurityをねじこむ! - マイクロサービス基盤における多層防御システム構築の軌跡

外部から受ける攻撃の対策

イメージの脆弱性排除

CI/CDにてイメージの脆弱性を排除

f:id:dehio3:20200916112731p:plain
KubernetesにSecurityをねじこむ! - マイクロサービス基盤における多層防御システム構築の軌跡

f:id:dehio3:20200916113002p:plain
KubernetesにSecurityをねじこむ! - マイクロサービス基盤における多層防御システム構築の軌跡

f:id:dehio3:20200916112928p:plain
KubernetesにSecurityをねじこむ! - マイクロサービス基盤における多層防御システム構築の軌跡

podの挙動監視

動作環境へのセキュリティの対応

f:id:dehio3:20200916113708p:plain
KubernetesにSecurityをねじこむ! - マイクロサービス基盤における多層防御システム構築の軌跡

f:id:dehio3:20200916113747p:plain
KubernetesにSecurityをねじこむ! - マイクロサービス基盤における多層防御システム構築の軌跡

EKSはAuditlogはCloudWatchに出力するので、audit-bridgeを利用してFalcoへ通知

f:id:dehio3:20200916113824p:plain
KubernetesにSecurityをねじこむ! - マイクロサービス基盤における多層防御システム構築の軌跡

node内の検知

EKSのnode全体のセキュリティリスクの検知

f:id:dehio3:20200916114512p:plain
KubernetesにSecurityをねじこむ! - マイクロサービス基盤における多層防御システム構築の軌跡

f:id:dehio3:20200916114538p:plain
KubernetesにSecurityをねじこむ! - マイクロサービス基盤における多層防御システム構築の軌跡

Cluster内のネットワーク監視

Cluster内ネットワークのコンテナレベルの監視

f:id:dehio3:20200916115104p:plain
KubernetesにSecurityをねじこむ! - マイクロサービス基盤における多層防御システム構築の軌跡

シングルテナントで構成してる場合はセキュリティグループで対応可能

f:id:dehio3:20200916130056p:plain
KubernetesにSecurityをねじこむ! - マイクロサービス基盤における多層防御システム構築の軌跡

マルチテナントの場合に、クラスタ内のPodの通信をセキュリティグループで制御できず、Lateral Movementに気づけない問題がある為対応が必要

f:id:dehio3:20200916115215p:plain
KubernetesにSecurityをねじこむ! - マイクロサービス基盤における多層防御システム構築の軌跡

f:id:dehio3:20200916115237p:plain
KubernetesにSecurityをねじこむ! - マイクロサービス基盤における多層防御システム構築の軌跡

NRIセキュアテクノロジー

event.cloudnativedays.jp

実際の導入事例ではないが、NRIさんがNIST SP800-190のリスクをベースに、SysdigAquaTwistlockの各製品を検証した話

選定したベンダー

CNDT2019に出展していた国内サポート可のベンダーを選定

f:id:dehio3:20200916140825p:plain
いくつかの商用コンテナセキュリティサービスをNIST SP800-190ベースに、独自観点を追加して検証した話

機能検証評価観点

k8sの構成とNIST SP800-190の項目から洗い出した機能検証評価項目

f:id:dehio3:20200916141024p:plain
いくつかの商用コンテナセキュリティサービスをNIST SP800-190ベースに、独自観点を追加して検証した話

f:id:dehio3:20200916141633p:plain
いくつかの商用コンテナセキュリティサービスをNIST SP800-190ベースに、独自観点を追加して検証した話

検証環境

攻撃環境と6つのAWSコンテナアーキテクチャパターン事に検証

f:id:dehio3:20200916141723p:plain
いくつかの商用コンテナセキュリティサービスをNIST SP800-190ベースに、独自観点を追加して検証した話

検証結果

複数ページの為スライド参照

speakerdeck.com

感想

1から構築する可能性がある身としては、全て参考になるセッションだった!

trivy、sysdigなど、どのセッションにも出てくるような、デファクトスタンダードとなっている製品もありそうなので、まずはそこから導入してみるのが一番早いのかなという印象でした。

あとは、検知したところで対応できないと意味が無いので、導入と同時に組織に合った体制と仕組み作りができるかが一番の課題になりそうです。