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

GMO Developer Day 2021 - DevSecOps 推進の取り組みの紹介.pdf

B49933741d74e122bc1314b2975e9fc9?s=47 mrtc0
September 16, 2021

GMO Developer Day 2021 - DevSecOps 推進の取り組みの紹介.pdf

B49933741d74e122bc1314b2975e9fc9?s=128

mrtc0

September 16, 2021
Tweet

Transcript

  1. DevSecOps 推進の取り組みの紹介 GMO Pepabo, Inc. / Kohei Morita @mrtc0 GMO

    Developer Day 2021 #GMOdevday
  2. whoami Kohei Morita / @mrtc0 GMO Pepabo, Inc. セキュリティ対策室 シニアエンジニア

    OWASP Fukuoka Chapter Leader セキュリティ・キャンプ 講師 / ステアリングコミッティメンバー blog.ssrf.in / container-seucrity.dev
  3. About • ペパボにおける DevSecOps への最近の取り組みについてお話しします About this talk 1. 脅威モデリング

    2. Inventory Management 3. SAST 4. セキュリティモニタリング 5. コミュニケーション ペパボテックカンファレンス #14 でお話した内容も含め、最近の取り組みについてお話します。 https://tech.pepabo.com/pdf/pepabo-tech-conference-14-security-team-slide.pdf
  4. DevSecOps シフトレフトと自動化によって開発サイクルにセキュリティ対策を組み込んでいく DevSecOps 「DevSecOps」で検索すると ∞ な表現をイメージした図が出てきます

  5. DevSecOps DevSecOps 手戻りのコストを小さくする 協力によりサイロ化を防いで 人材育成にも寄与

  6. DevSecOps 継続的なセキュリティ強化を行うために ... Security as Code • DevOps プロセスにセキュリティツールを統合する •

    「あるべき状態」をコードやポリシーで定義する • 自動化する Security as Code, Policy as Code, Test Driven Security で継続的かつ確実なセキュリティ対策を実施 セキュリティエンジニアリングとしての領域として発展させていくミッションの一つ
  7. DevSecOps セキュリティ対策室 各事業部がセキュリティ対策を実施 2018年 🔥 セキュリティ・インシデントが発生 2018年 3月 セキュリティ対策室発足 2018年

    12月 セキュリティインシデントの 再発防止策完了 2019年 インシデントハンドリング手法の 標準化 DevSecOps へのマインド切り替え 2021年 DevSecOps を実現するための ツールや仕組みを開発 事業部横断のセキュリティ対策を実施する組織として活動
  8. DevSecOps ペパボでも「セキュリティを対策を意識しなくても実施されている状態」を目指している DevSecOps Cycle in Pepabo Code • 脅威モデリング •

    セキュアコーディングトレーニング • SAST, DAST Test Monitoring • 各種インベントリ情報の管理 • ポートやファイル改竄などの監視 Incident Response • sssbot による支援 • Slack reacji 等による情報共有の工夫 例えば... 詳しくはペパボテックカンファレンス #14 のスライドをご覧ください https://tech.pepabo.com/pdf/pepabo-tech-conference-14-security-team-slide.pdf
  9. DevSecOps • OpenStack ベースのプライベートクラウド Nyah 上で稼働 ◦ 一部 AWS や

    GCP を利用し、ハイブリッドクラウドになっているサービスもある • ソースコード管理は GitHub Enterprise Server ◦ CI も GitHub Actions Self-hosted Runner を使用 ◦ コンテナレジストリも GitHub Packages を使用 ペパボのサービスとセキュリティ対策基盤 マネージドサービスは利用せず、セキュリティ基盤を自前で構築しているのが特徴
  10. Threat Modeling

  11. Threat Modeling • 潜在的な脅威を特定しサービスのセキュリティを向上させるために、脅威モデリングをサービスの開 発者 + セキュリティ対策室で実施 • 事前に Dataflow

    を書いてもらい、STRIDE を使って評価。リスクの深刻度を判断して、対策や緩和策 を実施 Threat Modeling Dataflow の例. draw.io を利用. 脅威モデリングを実施する上で必要な情報が記載されているか確認のためのチェックリスト
  12. Threat Modeling • 特定した脅威は「脅威」「手法」「前提」「攻撃元」「攻撃先」をまとめて記録 • リスク評価を行い、対策 /緩和策をアクションアイテムとして追加 Threat Modeling 脅威は

    S.T.R.I.D ごとに Notion にまとめ 特定した脅威の対策を実施
  13. Inventory Management

  14. Inventory Management • 既知の脆弱性のトリアージなどを目的に、様々なインベントリを管理している Inventory Management アプリケーションの依存ライブラリ cyclone-dx で SBOM

    にして Dependency-Track で管理 OS のバージョンやパッケージなど Wazuh の syscollector で収集、別 DB で管理 オンプレ/VM 含めたサーバー一覧 Wazuh がインストールされているかを 確認するためにも収集、リポジトリで管理
  15. SAST

  16. SAST • ペパボではコードレビュー時にセキュリティチェックを必ず行うことにしている • セキュリティレビューを支援するために「脆弱性の可能性のある」箇所を自動で指摘する GitHub Actions を活用している ◦ Semgrep

    + 各言語の SAST ツール コードレビュー時のセキュリティ支援 PHP のセキュリティレビュー支援 Bot による指摘の例 検出した内容とチェック項目に加えて、 その脆弱性に関するガイドライン等へのポインタを記載
  17. SAST • https://semgrep.dev/ • Tree-sitter でパースした構文木に対して grep ができるツール Semgrep 関数としての

    exec() の使用を検出し、文字 列としての exec() は検出しない
  18. SAST • ルールは YAML で定義し`message` の文字列をレビューコメントとして投稿 Semgrep + GitHub Actions

    # php-xss-echo.yaml rules: - id: xss-echo patterns: - pattern: | echo $X; - pattern-not: | echo "..."; - pattern-not: | htmlspecialchars(..., ENT_QUOTES, "UTF-8"); ... message: | :warning: Found XSS! See https://security-guide... languages: ["php"] severity: WARNING
  19. Security Monitoring

  20. Security Monitoring • Agent / Manager で構成される OSS のセキュリティプラットフォーム ◦

    FIM や Log Analysis, Vulnerability Detection など機能が多彩 例えば SSH のログを拾って、ルールに基づいてアラートを上げ、アラートによっては自動でトリ アージを行うことが可能 Wazuh • ペパボでは全サーバーへの導入を目標としており、現在 1500台以上のサーバーを監視している
  21. Security Monitoring Wazuh による監視の仕組み (logcollector) Wazuh Agent のコンポーネントの例 • syscheck

    … FIM • syscollector … Inventory の収集 • logcollector … ログやコマンド実行結果の収集
  22. Security Monitoring • デプロイなどの正常な変更についてもアラートが発砲されてしまい、狼少年状態に... 異常なアラートのみ通知するために、正常なアラートを自動トリアージする Auto triage Wazuh alerts •

    通知モデルの変更 (ossec integration → kafka + WebApp) • 流量の制限とサマリ化 • 動的/静的な Mute ポリシーの実装 • シグネチャ収集によるアラート削減 • プロビジョニングツールによるデプロイ前後のコンテキスト取得 • Annotation によるトリアージ支援 • ルールをテストできる環境の整備
  23. Security Monitoring • プライベートクラウド Nyah 上に Kubernetes クラスタを構築するツール • 各サービスのセキュリティレベルを揃えるためにデフォルトでセキュアになるようにしている

    NKE (Nyah Kubernetes Engine) kube-apiserver の監査ログの取得 Secret などへのアクセスログを取得し、有事の際に対応できるように Falco による監視 Wazuh など既存のツールではコンテナ上のイベント監査ができないため Gatekeeper の導入 PSS を定義し、準拠しない Pod の作成をモニタリング & ブロック
  24. Communication

  25. Communication 「DevOps」vs「Sec」 の対立にならないようにする DevSecOps の推進 コミュニケーションが「セキュリティを当たり前とする文化」を育てるレバレッジとなる • セキュリティを組織文化として育む • 小さな異変や気づきを気軽に共有できる組織

    • 平時・緊急を問わず、迅速・正確な対応につなげる ツールを導入して終わり! ではなく、コミュニケーションを通して組織のセキュリティマインドを育てる
  26. Commincation CO3 ( Communication / Completeness / Continuous ) セキュリティ対策室の方針

    • Communication … コミュニケーションを取る。「みんなと仲良くする」。 • Completeness … インシデントを収束させる。対策を完了する。 • Continuous … 対策を継続する。継続にレバレッジする技術を使う。
  27. Communication • セキュアコーディング研修や新卒研修でのトレーニング • SSS Tuesday (中途入社者向けのセキュリティオンボーディング ) • 社内イベント(ペパボテックフライデー

    )で宣伝と啓蒙 コミュニケーションの取り組み DevSecOps モデルの理解を得てもらうために様々な取り組みをしている 研修での「sss」絵文字リアクションの様子 インシデント訓練や研修時でも sssbot を利用
  28. Communication 自動化(基盤構築)とコミュニケーションが DevSecOps 推進のポイント 💡 DevSecOps の推進 • ツールの導入、自動化でセキュリティ対策を "継続"

    する • セキュリティ文化を醸成するために "コミュニケーション" に力を入れる • 上記を実施することで迅速・正確な対策を "完了" できる もちろん、組織によっては、これだけでは足りないこともあると思います。 DevSecOps やシフトレフトへの切り替えは、組織ごとにアプローチが変わってきますが、参考になれば幸いです。
  29. We are hiring ! 以下、一つでもマッチする方を募集しています!!1 我々のミッションや取り組みに共感、興味を持って頂いた方へ • 技術力、コミュニケーションで DevSecOps の推進に貢献したい方

    • プロダクトのセキュリティエンジニアリングに関わりたい方 • この発表を聞いて「面白そう!」となった方 「ペパボ 採用」[ 検索 ] https://recruit.pepabo.com/