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

Kubernetes ワークロードのセキュアな実行と開発者向けセキュリティツール Snyk の活用

Kubernetes ワークロードのセキュアな実行と開発者向けセキュリティツール Snyk の活用

Toshi Aizawa

August 05, 2022
Tweet

More Decks by Toshi Aizawa

Other Decks in Technology

Transcript

  1. Kubernetes ワークロード セキュアな実行と 開発者向けセキュリティツール Snyk 活用 Cloud Native Security Conference

    2022 2022-08-05 ソリューションエンジニア 相澤俊幸
  2. ToshiAizawa toshi-snyk toshiaizawa Toshi (トシ) • 相澤 俊幸 / Toshi

    Aizawa • Snyk Solutions Engineer • 音楽、猫、落語が好き
  3. アジェンダ Teams Kubernetes Workloads Security Kubernetes Configuration Security Snyk Developer

    Security プラットフォーム まとめ
  4. Snyk Developer Security プラットフォーム

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

    CONFIDENTIAL
  6. デベロッパーセキュリティ クラウド時代 セキュリティを実現するため 新しいコンセプト Developer Security 生産性 向上、セキュアな開発、 そしてイノベーション 促進を

    Snyk で実現できます。 クラウドネイティブな技術スタック における、最先端 セキュリティ対策 ソリューションを Snyk 提供します。
  7. クラウド普及に伴い開発者 役割が拡大 クラウド以前 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
  8. 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年 増加見込み
  9. これまで これから 後工程で 修正 ↓ セキュリティ対策コスト増大 最新式 「継続的」開発モデル ↓ 「継続的」セキュリティ対策モデルが必要

    本番 STOP セキュリティチェッ ク 修正 セキュリティに求められている変化
  10. 検知 修正 予防 監視 管理 セキュリティ担当 開発者 使いやすさ 最先端 セキュリティノウハウ

    ツールによる自動化 Snyk による SDLC 全体で セキュリティ対策
  11. Snyk によるコーディングから本番環境に至るセキュリティ対策 コーディング SCM (ソースコード管理 ) CI / CD 本番環境

    / クラウド 検出 / 修正 検出 / 修正 / 監視 検出 / 修正 / 監視 監視 (IDE) (Git Repos) (CLI) (Kubernetes, Registry, etc.) スキャン → 自動修正 チェックイン・マージ時 スキャン実行 ビルド時 スキャン実行 脆弱性検出 → アラート発出 開発しながらスキャン → 脆弱性あれ 即修正 監視ルール 設定 ビルド連携した検出・修正
  12. クラウド時代 アプリケーション リスク 潜む場所 Open Source Libraries Containers App Code

    IaC 脆弱性 80% 間接的な依存関係で見つかる 数百におよぶLinuxパッケージがコンテナに 含まれて おり、そこから多数 脆弱性が引き継がれる クラウドで 脆弱性発生原因 第1位 設定ミス [米国 NSA] 頻繁なデプロイ - ウォーターフォールで 追いつ けない。スキャンに何時間もかけられない コードベース 10-20% コードベース 80-90%
  13. 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.) クラウド時代 アプリケーション リスク 潜む場所
  14. Snyk Developer Security プラットフォーム 特長 デベロッパーファースト (開発ワークフローへ 統合) 業界トップレベル 脆弱性

    DB 脆弱性 自動修正機能 (Fix PR) と Priority Score によるトリアージ 情報セキュリティガバナンスを 支える一元的な管理機能 (Report 機能など)
  15. Kubernetes Configuration Security

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

  17. クラウドプロバイダー たいてい、ク ラウド設定用ツールを提供していま すが、クラウドリソース 設定ミスが クラウド上 脆弱性 一番 発生 原因となっています。

    設定ミス=セキュリティリスク https://media.defense.gov/2020/Jan/22/2002237484/-1/-1/0/CSI-MITIGATING-CLOUD-VULNERABILITIES_20200121.PDF
  18. 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
  19. CLI SDLC 各フェーズでテスト実行 IDE CI/CD SCM 早いタイミングで フィードバッ クを提供できる。コミット前 テ

    ストが可能。 すべて 変更に対してチェック を徹底できる。チーム全体に統 一基準を適用。 ルール 継続的な遵守。変更 されていないコードも保護でき る。
  20. 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
  21. Testing in IDE Kubernetes 設定を書くタイミングで 設定ミス・脆弱性を発見し、修正でき る

  22. 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 テストを確実に実行する上で 最適。一方開発 フェーズとして 比較的遅いタイミング。
  23. Testing from source GitHub、BitBucket や Gitlab から インポート

  24. Kubernetes Workloads Security

  25. Image . Pod Pod Pod Pod Pod Pod Pod Pod

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

  27. インストール方法 $ 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
  28. 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
  29. 脆弱性 トリアージ (Priority Score) 854 Vulnerability severity Available fixes Recently

    announced Kubernetes context
  30. 脆弱性 トリアージ (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.
  31. ベースイメージに大量 脆弱性が含まれている場合 Snyk ワークロード内 イメージについて、ベースイメージを自動検出した上で、よりセキュアなベースイ メージへ アップグレードを推奨します。

  32. Teams

  33. 修正 Developer が担当 Development teams Security team 設定作業 コード化という移行 開発チーム

    セキュリティチームに比べ て人員 伸びが著しい 開発 早いタイミングで 修正がより効 率的 開発チームがアプリについて熟知してい る
  34. ガバナンス Security が統括 Development teams Security team レポート機能 活用 セキュリティチーム

    全般的ガバナンス に責任を持つ (個別 脆弱性対応 開 発チームに任せる) 開発チーム 教育など、セキュリティ体 制 改善・改革に取り組む
  35. まとめ

  36. Snyk Developer Security プラットフォーム • Developer Security = 開発者によるセキュリティ対策 •

    Kubernetes Configuration Security → Snyk IaC スキャンにより SDLC 各フェーズでテスト • Kubernetes Workloads Security → 危険な脆弱性へ優先的に対処、ベースイメージアップグレード • Teams 開発チーム/セキュリティチーム間 分業
  37. 参考資料等 • 知っておきたい 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
  38. Thank you! snyk.io よりフリープランにサインアップ できます。ぜひSnykをお試しください! 質問大歓迎!👉 @toshiaizawa