はじめに
CNDT2020において、コンテナセキュリティに関連するセッションが複数ありました。
自分自身が今後、マイクロサービス化を推進する立場になった時の為に、コンテナセキュリティにどう取り組むべきかを、各社の事例を参考にまとめておこうと思います。
まず確認すべきはNIST SP 800-190
多くのセッションにて出てくるコンテナセキュリティを考える上での準拠すべき基準が「NIST SP800-190」でした。
NIST SP800-190にて定義されているコンテナ技術における5つのリスク。
- イメージのリスク
- レジストリのリスク
- オーケストレータのリスク
- コンテナのリスク
- ホストOSのリスク
基本として上記リスクに対して、色々なアプローチをする必要があります。
以降からは各社の取り組みについて簡単にまとめてます。
詳細については動画にて確認できるので、ざっくりどんな実装になっているのかをスライドベースで記載してます。
Yahoo! JAPAN
実行環境をスコープとしたセキュリティの実装にてSysdigセキュアの導入
製品選定に際し目指していた業務フロー
振舞い検知
- セキュリティポリシーを製品を通してk8sに導入し、SOC(後述)にて常に監視
- 既に利用しているsplunk Enterprise SecurityにLog/Alertを飛ばして監視
構成チェック
- CaaS管理者にてポリシーを定義し、k8sの設定に不正な設定がないかチェック
- ポリシー違反があればエンジニアに通知
CIS Benchmarkを利用して自前で実装しようとしていたが断念
脆弱性検知
製品選定
西海岸へ実際に足を運んで5社を周り選定
UIなど想定に一致したSysdigを選定
体制と役割
システム構成
- Watch Tower / Sysdig提供のモニタリングSaaS
- Vulnerability Database / 脆弱性データベース
ZOZOテクノロジー
新ID基盤におけるアプリケーション管理のセキュリティ要件である、セキュリティアップデート速やかにより入れるための取り組み。
コンテナイメージ脆弱性検知
- trivyを導入
- GitHubActionsを利用して、定期実行と都度実行
freee
マイクロサービス基盤における外部から受ける攻撃(サイバー攻撃)について、多層防御の考え方でセキュリティを実装。
アメリカの軍事技術だったKill Chainの考え方をサイバーアタックに適用したCyber Kill Chainを元に対応。 対応方針として、輸送以降の段階でログを取ってアラートをあげる。(偵察、武器調達については単独企業での実装は難しい為除外)
外部から受ける攻撃の対策
イメージの脆弱性排除
CI/CDにてイメージの脆弱性を排除
podの挙動監視
動作環境へのセキュリティの対応
EKSはAuditlogはCloudWatchに出力するので、audit-bridgeを利用してFalcoへ通知
node内の検知
EKSのnode全体のセキュリティリスクの検知
Cluster内のネットワーク監視
Cluster内ネットワークのコンテナレベルの監視
シングルテナントで構成してる場合はセキュリティグループで対応可能
マルチテナントの場合に、クラスタ内のPodの通信をセキュリティグループで制御できず、Lateral Movementに気づけない問題がある為対応が必要
感想
1から構築する可能性がある身としては、全て参考になるセッションだった!
trivy、sysdigなど、どのセッションにも出てくるような、デファクトスタンダードとなっている製品もありそうなので、まずはそこから導入してみるのが一番早いのかなという印象でした。
あとは、検知したところで対応できないと意味が無いので、導入と同時に組織に合った体制と仕組み作りができるかが一番の課題になりそうです。