Slide 1

Slide 1 text

Kubernetes ワークロード セキュアな実行と 開発者向けセキュリティツール Snyk 活用 Cloud Native Security Conference 2022 2022-08-05 ソリューションエンジニア 相澤俊幸

Slide 2

Slide 2 text

ToshiAizawa toshi-snyk toshiaizawa Toshi (トシ) ● 相澤 俊幸 / Toshi Aizawa ● Snyk Solutions Engineer ● 音楽、猫、落語が好き

Slide 3

Slide 3 text

アジェンダ Teams Kubernetes Workloads Security Kubernetes Configuration Security Snyk Developer Security プラットフォーム まとめ

Slide 4

Slide 4 text

Snyk Developer Security プラットフォーム

Slide 5

Slide 5 text

Snyk Developer Security プラットフォームを使え 、 迅速な開発とセキュリティ 両立が可能になります。 STRICTLY PRIVATE AND CONFIDENTIAL

Slide 6

Slide 6 text

デベロッパーセキュリティ クラウド時代 セキュリティを実現するため 新しいコンセプト Developer Security 生産性 向上、セキュアな開発、 そしてイノベーション 促進を Snyk で実現できます。 クラウドネイティブな技術スタック における、最先端 セキュリティ対策 ソリューションを Snyk 提供します。

Slide 7

Slide 7 text

クラウド普及に伴い開発者 役割が拡大 クラウド以前 IT セキュリティ - 一元管理 クラウド時代 AppSec - 分散化 App code Security IT Apps (Dropbox, Email) Open Source Library Network Servers, VM’s Hardware App code Open Source Library OSS Platform / Apps Cloud / SaaS Services Containers VPC, Service Mesh Kubernetes Cloud Developers IT / Operations DevOps Services Growing Developer Role Shrinking IT/Ops Role セキュリティ 分散化により、脆弱性 リスクも増大 Security

Slide 8

Slide 8 text

Source: IDC, White House, US Department of Commerce, Cybersecurity Ventures, Truist Security Research. Note: 2021 developer figure extrapolated based on 2020-2025 CAGR of 10.5%. US unfilled cybersecurity positions in the past year as of September 2021. 開発者人口 増加によりセキュリティ人材 不足が顕著に ビジネス 成長を支えている開発者 増加する一方で.... 全世界 開発者人口 2018 2022 2025 Beyond 2200万 3200万 4300万 年平均成長率 11% 年平均成長率 9% 米国内 サイバーセキュリティ 関連職種で 空席ポジション数 60万 2025年まで全世界で新たに募集される サイバーセキュリティ関連ポジション 数 350万 セキュリティ人材 不足がスケールを妨げる 164% アプリケーションセキュリティ人材 に対する需要 今後 5年 増加見込み

Slide 9

Slide 9 text

これまで これから 後工程で 修正 ↓ セキュリティ対策コスト増大 最新式 「継続的」開発モデル ↓ 「継続的」セキュリティ対策モデルが必要 本番 STOP セキュリティチェッ ク 修正 セキュリティに求められている変化

Slide 10

Slide 10 text

検知 修正 予防 監視 管理 セキュリティ担当 開発者 使いやすさ 最先端 セキュリティノウハウ ツールによる自動化 Snyk による SDLC 全体で セキュリティ対策

Slide 11

Slide 11 text

Snyk によるコーディングから本番環境に至るセキュリティ対策 コーディング SCM (ソースコード管理 ) CI / CD 本番環境 / クラウド 検出 / 修正 検出 / 修正 / 監視 検出 / 修正 / 監視 監視 (IDE) (Git Repos) (CLI) (Kubernetes, Registry, etc.) スキャン → 自動修正 チェックイン・マージ時 スキャン実行 ビルド時 スキャン実行 脆弱性検出 → アラート発出 開発しながらスキャン → 脆弱性あれ 即修正 監視ルール 設定 ビルド連携した検出・修正

Slide 12

Slide 12 text

クラウド時代 アプリケーション リスク 潜む場所 Open Source Libraries Containers App Code IaC 脆弱性 80% 間接的な依存関係で見つかる 数百におよぶLinuxパッケージがコンテナに 含まれて おり、そこから多数 脆弱性が引き継がれる クラウドで 脆弱性発生原因 第1位 設定ミス [米国 NSA] 頻繁なデプロイ - ウォーターフォールで 追いつ けない。スキャンに何時間もかけられない コードベース 10-20% コードベース 80-90%

Slide 13

Slide 13 text

Open Source Libraries Containers App Code IaC Snyk Code Snyk IaC Snyk Open Source Snyk Container Target: Programing Languages (C#, Go, Java, JS, Python, etc.) Target: Package managers (npm, Maven, Nuget, pip, etc.) Target: Dockerfile (via Git, etc.) & Container images (via Container registries, K8S, etc.) Target: Infrastructure as Code files (Terraform, CloudFormation, ARM, k8s, etc.) クラウド時代 アプリケーション リスク 潜む場所

Slide 14

Slide 14 text

Snyk Developer Security プラットフォーム 特長 デベロッパーファースト (開発ワークフローへ 統合) 業界トップレベル 脆弱性 DB 脆弱性 自動修正機能 (Fix PR) と Priority Score によるトリアージ 情報セキュリティガバナンスを 支える一元的な管理機能 (Report 機能など)

Slide 15

Slide 15 text

Kubernetes Configuration Security

Slide 16

Slide 16 text

設定ミス=セキュリティリスク セキュリティ上 設定ミス もっと も一般的な問題です。デフォルト 設定がセキュアでないこと、不完 全な設定、場当たりで行った設定 などが原因となって起こります。 https://owasp.org/www-project-top-ten/2017/A6_2017-Security_Misconfiguration

Slide 17

Slide 17 text

クラウドプロバイダー たいてい、ク ラウド設定用ツールを提供していま すが、クラウドリソース 設定ミスが クラウド上 脆弱性 一番 発生 原因となっています。 設定ミス=セキュリティリスク https://media.defense.gov/2020/Jan/22/2002237484/-1/-1/0/CSI-MITIGATING-CLOUD-VULNERABILITIES_20200121.PDF

Slide 18

Slide 18 text

Kubernetes == YAML apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: selector: matchLabels: app: nginx replicas: 2 # tells deployment to run 2 pods matching the template template: metadata: labels: app: nginx spec: containers: - name: nginx

Slide 19

Slide 19 text

CLI SDLC 各フェーズでテスト実行 IDE CI/CD SCM 早いタイミングで フィードバッ クを提供できる。コミット前 テ ストが可能。 すべて 変更に対してチェック を徹底できる。チーム全体に統 一基準を適用。 ルール 継続的な遵守。変更 されていないコードも保護でき る。

Slide 20

Slide 20 text

Testing locally $ snyk iac test Testing deployment.yaml... Infrastructure as code issues: ✗ Container does not drop all default capabilities [Medium Severity] [SNYK-CC-K8S-6] in Deployment introduced by [DocId: 0] > input > spec > template > spec > containers[snykest] > securityContext > capabilities > drop ✗ Container is running without root user control [Medium Severity] [SNYK-CC-K8S-10] in Deployment introduced by [DocId: 0] > input > spec > template > spec > containers[snykest] > securityContext > runAsNonRoot

Slide 21

Slide 21 text

Testing in IDE Kubernetes 設定を書くタイミングで 設定ミス・脆弱性を発見し、修正でき る

Slide 22

Slide 22 text

version: '2.1' orbs: snyk: snyk/snyk@x.y.z workflows: test: jobs: - snyk/scan-iac - uses: snyk/actions/iac@master env: SNYK_TOKEN: ${{ secrets.SNYK }} with: file: manifest.yaml Testing in CI GitHub Actions CircleCI テストを確実に実行する上で 最適。一方開発 フェーズとして 比較的遅いタイミング。

Slide 23

Slide 23 text

Testing from source GitHub、BitBucket や Gitlab から インポート

Slide 24

Slide 24 text

Kubernetes Workloads Security

Slide 25

Slide 25 text

Image . Pod Pod Pod Pod Pod Pod Pod Pod Pod Base image Your applications Pod Deployment Replication Controller アプリケーションに含まれてい る脆弱性 Kubernetes により増幅・露出 された脆弱性 App dependencies Kubernetes=脆弱性 増幅システム?

Slide 26

Slide 26 text

Snyk で Kubernetes app 内 脆弱性を検出

Slide 27

Slide 27 text

インストール方法 $ helm upgrade --install snyk-monitor snyk-charts/snyk-monitor \ --namespace snyk-monitor \ --set clusterName="Production cluster" https://docs.snyk.io/products/snyk-container/kubernetes-workload-and-image-scanning/kubernetes-integration-overview

Slide 28

Slide 28 text

Kubernetes インテグレーション 動作 Kubernetes API Snyk “Workload changed” Get workload details Get parent of workload Send workload metadata Store metadata Pull image Scan image Send scan result Store scan results Running on your cluster Controller

Slide 29

Slide 29 text

脆弱性 トリアージ (Priority Score) 854 Vulnerability severity Available fixes Recently announced Kubernetes context

Slide 30

Slide 30 text

脆弱性 トリアージ (Priority Score) 854 Vulnerability severity Available fixes Recently announced Kubernetes context Not setting a read only root filesystem where the CWE indicates filesystem access is required. Permission issues (for instance running privileged, able to run as root, not dropping capabilities) and a CVSSv3 Privileges (PR) vector present in the vulnerability.

Slide 31

Slide 31 text

ベースイメージに大量 脆弱性が含まれている場合 Snyk ワークロード内 イメージについて、ベースイメージを自動検出した上で、よりセキュアなベースイ メージへ アップグレードを推奨します。

Slide 32

Slide 32 text

Teams

Slide 33

Slide 33 text

修正 Developer が担当 Development teams Security team 設定作業 コード化という移行 開発チーム セキュリティチームに比べ て人員 伸びが著しい 開発 早いタイミングで 修正がより効 率的 開発チームがアプリについて熟知してい る

Slide 34

Slide 34 text

ガバナンス Security が統括 Development teams Security team レポート機能 活用 セキュリティチーム 全般的ガバナンス に責任を持つ (個別 脆弱性対応 開 発チームに任せる) 開発チーム 教育など、セキュリティ体 制 改善・改革に取り組む

Slide 35

Slide 35 text

まとめ

Slide 36

Slide 36 text

Snyk Developer Security プラットフォーム ● Developer Security = 開発者によるセキュリティ対策 ● Kubernetes Configuration Security → Snyk IaC スキャンにより SDLC 各フェーズでテスト ● Kubernetes Workloads Security → 危険な脆弱性へ優先的に対処、ベースイメージアップグレード ● Teams 開発チーム/セキュリティチーム間 分業

Slide 37

Slide 37 text

参考資料等 ● 知っておきたい Kubernetes Security Context 設定 10 選 https://qiita.com/SnykSec/items/3f3ee4948e90c0e7e3cc ● What is container security? (英語) https://snyk.io/learn/container-security/ ● Snyk Free plan & Sign Up https://app.snyk.io/login

Slide 38

Slide 38 text

Thank you! snyk.io よりフリープランにサインアップ できます。ぜひSnykをお試しください! 質問大歓迎!👉 @toshiaizawa