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

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

mrtc0
September 16, 2021

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

mrtc0

September 16, 2021
Tweet

More Decks by mrtc0

Other Decks in Technology

Transcript

  1. whoami Kohei Morita / @mrtc0 GMO Pepabo, Inc. セキュリティ対策室 シニアエンジニア

    OWASP Fukuoka Chapter Leader セキュリティ・キャンプ 講師 / ステアリングコミッティメンバー blog.ssrf.in / container-seucrity.dev
  2. 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
  3. DevSecOps 継続的なセキュリティ強化を行うために ... Security as Code • DevOps プロセスにセキュリティツールを統合する •

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

    12月 セキュリティインシデントの 再発防止策完了 2019年 インシデントハンドリング手法の 標準化 DevSecOps へのマインド切り替え 2021年 DevSecOps を実現するための ツールや仕組みを開発 事業部横断のセキュリティ対策を実施する組織として活動
  5. 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
  6. DevSecOps • OpenStack ベースのプライベートクラウド Nyah 上で稼働 ◦ 一部 AWS や

    GCP を利用し、ハイブリッドクラウドになっているサービスもある • ソースコード管理は GitHub Enterprise Server ◦ CI も GitHub Actions Self-hosted Runner を使用 ◦ コンテナレジストリも GitHub Packages を使用 ペパボのサービスとセキュリティ対策基盤 マネージドサービスは利用せず、セキュリティ基盤を自前で構築しているのが特徴
  7. Threat Modeling • 潜在的な脅威を特定しサービスのセキュリティを向上させるために、脅威モデリングをサービスの開 発者 + セキュリティ対策室で実施 • 事前に Dataflow

    を書いてもらい、STRIDE を使って評価。リスクの深刻度を判断して、対策や緩和策 を実施 Threat Modeling Dataflow の例. draw.io を利用. 脅威モデリングを実施する上で必要な情報が記載されているか確認のためのチェックリスト
  8. Inventory Management • 既知の脆弱性のトリアージなどを目的に、様々なインベントリを管理している Inventory Management アプリケーションの依存ライブラリ cyclone-dx で SBOM

    にして Dependency-Track で管理 OS のバージョンやパッケージなど Wazuh の syscollector で収集、別 DB で管理 オンプレ/VM 含めたサーバー一覧 Wazuh がインストールされているかを 確認するためにも収集、リポジトリで管理
  9. SAST • ペパボではコードレビュー時にセキュリティチェックを必ず行うことにしている • セキュリティレビューを支援するために「脆弱性の可能性のある」箇所を自動で指摘する GitHub Actions を活用している ◦ Semgrep

    + 各言語の SAST ツール コードレビュー時のセキュリティ支援 PHP のセキュリティレビュー支援 Bot による指摘の例 検出した内容とチェック項目に加えて、 その脆弱性に関するガイドライン等へのポインタを記載
  10. 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
  11. Security Monitoring • Agent / Manager で構成される OSS のセキュリティプラットフォーム ◦

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

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

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

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

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

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

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

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