Slide 1

Slide 1 text

開発プロジェクトの現状を 把握する OWASP SAMM の活用 Akitsugu Ito(@springmoon6)

Slide 2

Slide 2 text

自己紹介 • Akitsugu Ito(@springmoon6) • サイボウズ株式会社 CSIRT PoC • OWASP 関連のスライド Management for Security Life Cycle https://speakerdeck.com/owaspjapan/management-for-security-life- cycle-number-appsecapac2014 OWASP Project 使ってみた https://www.slideshare.net/akitsuguito/owasp-project

Slide 3

Slide 3 text

Agenda • OWASP SAMM って? • 12のセキュリティ対策と OWASP 成果物 • 適用事例 • まとめ

Slide 4

Slide 4 text

OWASP SAMM って?

Slide 5

Slide 5 text

要件定義 設計・開発 テスト 運用・保守 ① 要件定義 OWASP Top 10 Project ② 設計・開発 OWASP Proactive Controls OWASP Application Security Verification Standard (ASVS) OWASP Cheat Sheet Series OWASP Security Shepherd ③ テスト OWASP Zed Attack Proxy OWASP Testing Project(OWASP Testing Guide etc..) OWASP Offensive Web Testing Framework (OWTF) ④ 運用・保守 OWASP ModSecurity Core Rule Set Project OWASP APPSensor OWASP CSRFGuard Project OWASP Dependency Check

Slide 6

Slide 6 text

要件定義 設計・開発 テスト 運用・保守 ① 要件定義 OWASP Top 10 Project ② 設計・開発 OWASP Proactive Controls OWASP Application Security Verification Standard (ASVS) OWASP Cheat Sheet Series OWASP Security Shepherd ③ テスト OWASP Zed Attack Proxy OWASP Testing Project(OWASP Testing Guide etc..) OWASP Offensive Web Testing Framework (OWTF) ④ 運用・保守 OWASP ModSecurity Core Rule Set Project OWASP APPSensor OWASP CSRFGuard Project OWASP Dependency Check 開発ライフサイクルをよりセキュアにすること (OWASP SAMM)

Slide 7

Slide 7 text

OWASP SAMM • OWASP Software Assurance Maturity Model • より成熟したセキュア開発を行うことを 支援するドキュメント https://www.jpcert.or.jp/securecoding_materials.html(日本語:v1.0) https://www.owasp.org/index.php/OWASP_SAMM_Project (英語:v1.5)

Slide 8

Slide 8 text

特徴 – 定量化・可視化 開発プロジェクトのセキュリティ成熟度を 定量化・可視化し現状を把握できる NISTIR-8151 Dramatically Reducing Software Vulnerabilities 3.2 Software Assurance: The Object of Software Measures http://nvlpubs.nist.gov/nistpubs/ir/2016/NIST.IR.8151.pdf A=f(p, s, e) A: ソフトウェアセキュリティ保証の価値 p: 開発プロセス s: セキュリティテスト e: 実行環境

Slide 9

Slide 9 text

特徴 – 継続改善 現状把握 目標設定 計画立案 実施 一定の期間ごとに上記を繰り返すことで セキュリティ品質の改善に繋がる

Slide 10

Slide 10 text

文書構成

Slide 11

Slide 11 text

プロジェクトメンバー Developers Business Owners QA Testers Architects Managers Security Auditor Support / Operators

Slide 12

Slide 12 text

ビジネス機能 開発プロセスにおける主要なビジネス機能を 4つに整理 ガバナンス 構築(設計・開発) 検証 運用

Slide 13

Slide 13 text

セキュリティ対策 ビジネス機能ごとに3つのセキュリティ対策を定義 戦略・指標 ポリシー・コンプライアンス 教育・指導 脅威の査定 セキュリティ要件 セキュアなアーキテクチャ 設計レビュー 実装レビュー セキュリティテスト 課題管理 環境の堅牢化 運用体制のセキュリティ対応

Slide 14

Slide 14 text

セキュリティ対策の例 定量的な指標の例 期待結果 コスト

Slide 15

Slide 15 text

現状把握 - アセスメント Tool-box の活用 ヒアリング計画を立てることが重要 プロジェクト体制を把握し、ヒアリング項目・対象を決める

Slide 16

Slide 16 text

アセスメント項目 ガバナンス 構築 検証 運用 Manager 18 19 19 19 Architect 20 14 19 13 Security Auditor 12 19 17 8 Business Owners 16 17 8 11 Developers 11 10 19 10 QA Testers 7 7 Support Operators 14

Slide 17

Slide 17 text

成熟度の可視化(1)

Slide 18

Slide 18 text

成熟度の可視化(2)

Slide 19

Slide 19 text

目標設定~実施

Slide 20

Slide 20 text

12のセキュリティ対策と OWASP 成果物

Slide 21

Slide 21 text

セキュリティ対策 ビジネス機能ごとに3つのセキュリティ対策を定義 戦略・指標 ポリシー・コンプライアンス 教育・指導 脅威の査定 セキュリティ要件 セキュアなアーキテクチャ 設計レビュー 実装レビュー セキュリティテスト 課題管理 環境の堅牢化 運用体制のセキュリティ対応

Slide 22

Slide 22 text

OWASP 成果物への参照 • セキュリティ対策を推進するうえで 役に立つ OWASP ドキュメントへの参照が OWASP SAMM の中には記載されていない • 下記の条件で成果物への導線をまとめる – OWASP Project Inventory に登録されている 公式プロジェクト – 日本のローカルチャプターから公開されている 成果物

Slide 23

Slide 23 text

戦略・指標(SM) 組織内でセキュリティ保証プログラムを確立する OWASP SAMM を活用すること ロードマップの 策定 リスク評価の 実施 セキュリティ 支出の算出

Slide 24

Slide 24 text

ポリシー・コンプライアンス(PC) 組織のビジネス目的に合致した方法でコンプライアンスを確保 Policy Frameworks(OWASP Guide Project / OWASP Developer Guide) https://www.owasp.org/index.php/Policy_Frameworks (旧) https://github.com/OWASP/DevGuide/blob/master/01- Foundations/02-Policies%2C%20Standards%20and%20Guidelines.md ガバナンスと コンプライアンス ベースラインの 確立 セキュリティ 監査の実施

Slide 25

Slide 25 text

教育・指導(EG) ソフトウェアライフサイクルに携わる人材を育成する OWASP Education Project https://www.owasp.org/index.php/Category:OWASP_Educ ation_Project 教育の機会 資料の提供 セキュリティ 教育の実施 習熟度を 認証する

Slide 26

Slide 26 text

脅威の査定(TA) Application Threat Modeling (OWASP Guide Project / Cheat Sheet ) https://www.owasp.org/index.php/Application_Threat_Modeling(旧) https://www.owasp.org/index.php/Threat_Modeling_Cheat_Sheet ソフトウェアの機能と特性に基づきプロジェクトのリスクを把握 脅威・攻撃者 の理解・文書化 脅威分析 脅威と保護機能 の関連付け

Slide 27

Slide 27 text

セキュリティ要件(SR) OWASP ASVS https://www.owasp.org/index.php/Category:OWASP_Application_Security_Verificatio n_Standard_Project Webシステム/Webアプリケーションセキュリティ要件書 2.0 https://github.com/ueno1000/secreq ソフトウェアのセキュリティ要件を策定する 要件検討から セキュリティを 考慮 リスク分析に 応じて要件を 調整 セキュリティ要件 の監査

Slide 28

Slide 28 text

セキュアなアーキテクチャ(SA) OWASP Proactive Controls https://www.owasp.org/index.php/OWASP_Proactive_Controls プロアクティブに安全なソフトウェアを構築するための仕組み 設計プロセスに セキュリティを 組み込む 設計パターンを プロジェクトに 提供 再利用可能な コンポーネントの 利用と検査

Slide 29

Slide 29 text

デザインレビュー(DR) Application Security Architecture Cheat Sheet https://www.owasp.org/index.php/Application_Security_A rchitecture_Cheat_Sheet セキュリティ問題に対するソフトウェアとアーキテクチャの評価 レビュープロセス にセキュリティを 組み込む 設計レビュー プロセスの策定 レビュープロセス に従った アセスメント実施

Slide 30

Slide 30 text

実装レビュー(IR) OWASP Code Review Project https://www.owasp.org/index.php/Category:OWASP_Code_Review_Project Secure Coding Cheat Sheet https://www.owasp.org/index.php/Secure_Coding_Cheat_Sheet ソフトウェアのセキュリティをソースコードと構成レベルで検査 コードレビューの 実施 自動コード解析 ツールの利用 コードレビュー 合格基準の策定

Slide 31

Slide 31 text

セキュリティテスト(ST) 脆弱性診断士スキルマッププロジェクト https://www.owasp.org/index.php/Category:OWASP_Applicatio n_Security_Verification_Standard_Project ランタイム環境におけるソフトウェアのセキュリティテスト テスト実施 プロセスの構築 自動テスト ツールの利用 アプリケーション 固有のテスト実施

Slide 32

Slide 32 text

課題管理(IM) OWASP Incident Response Project https://www.owasp.org/index.php/OWASP_Incident_Resp onse_Project インシデント報告や対応に関する組織内のプロセス 報告窓口や インシデント対応 チームの理解 インシデント対応 プロセスの理解 定量データを 用いたプロセス改善

Slide 33

Slide 33 text

環境の堅牢化(EH) OWASP Dependency Check https://www.owasp.org/index.php/OWASP_Dependency_Check OWASP Security Operations Center (SOC) Framework Project https://www.owasp.org/index.php/OWASP_Security_Operations_Center_ (SOC)_Framework_Project ソフトウェアが稼働する運用基盤をセキュアに構築する 運用環境の ベースラインを 理解 運用の堅牢化 自動化の推進 ベストプラクティスを 用いて運用環境を検証

Slide 34

Slide 34 text

運用体制のセキュリティ対応(OE) OWASP SAMM のアセスメント項目を Cheat sheet として活用 良いプロジェクトがあれば教えてください! ソフトウェアのセキュリティ情報を収集し情報発信する 開発・運用間の 連絡体制の構築 手順書の伝達と 変更管理 運用環境の検証

Slide 35

Slide 35 text

活用事例

Slide 36

Slide 36 text

OWASP SAMM との出会い • OWASP Japan Local Chapter Meeting – https://owasp.doorkeeper.jp/events/58340 https://www.slideshare.net/okdt/owasp-samm

Slide 37

Slide 37 text

No content

Slide 38

Slide 38 text

活用例 アドバイス集 作成 情報提供 プロジェクトの 可視化 工数小 工数大

Slide 39

Slide 39 text

アドバイス集の作成 アセスメント項目ごとに参考になるドキュメントを収集

Slide 40

Slide 40 text

タイムリーな情報提供(1) Web ページを作成する際の JavaScript 利用に関するルールを緩和したい。 利便性を維持しながらリスクを軽減できるように 議論させてください。こんな資料があります。 安全な Web サイトの作り方 3rd Party Javascript Management Cheat Sheet

Slide 41

Slide 41 text

タイムリーな情報提供(2) お客様から質問を受けています。 開発活動は文書化されたセキュアなシステム開発手法 (セキュリティ要件の定義およびテストを含む)に基づき、 遂行されていますか? OWASP ASVS を用いてサービスのセキュリティ 要件を精査し、セキュリティ要件に関する標準 への適合性確認を進めています。 https://www.slideshare.net/akitsuguito/owasp-project

Slide 42

Slide 42 text

新規プロジェクトへの情報提供 新たにサービスをリリースするチームが 認証を取得するにあたり事前準備が必要となる 項目を具体的な活動内容と併せて伝達 戦略・指標 セキュリティ要件 セキュリティテスト 課題管理 運用体制のセキュリティ対応

Slide 43

Slide 43 text

情報提供例(運用) • 日時確認タスクの実施方法(ログの監視など) • パッチの適用プロセス(全社基準との差異など) • 自動適用の有無(パッチマネージャーの利用など) • 追加のセキュリティ緩和策の有無(WAF / IDS etc..) • 外部監査の実施頻度(運用環境) • 変更管理データベースの運用 • リハーサルについて(実施基準とコミュニケーション) • 鍵管理について

Slide 44

Slide 44 text

情報提供例(開発) • 機能一覧に関する文書 • セキュリティ機能一覧に関する文書 • 運用基盤以外に利用しているサードパーティ コンポーネントの把握 • コードレビューの実施状況 • ログ管理の実装状況 • 監視すべきアラートやエラーに関する文書 • 文書の更新体制

Slide 45

Slide 45 text

開発プロジェクトの定量化の試み 作成したツールキットのアウトプットを元に、 現在のプロジェクトの状況を可視化 現在の課題の把握と今後の目標について議論

Slide 46

Slide 46 text

あるプロジェクトの現状(Pros) これまで PSIRT が力を入れてきた領域や、 オペレーションチームが対応してきた領域は成熟している

Slide 47

Slide 47 text

あるプロジェクトの現状(cons) プロジェクト間を横断して統一された観点に基づいた セキュリティ対策を導入する点に課題がある

Slide 48

Slide 48 text

ロードマップテンプレートの活用 業種別にロードマップ策定用の テンプレートが存在 ソフトウェアベンダー(独立系) サービスプロバイダ 金融サービス 政府組織 テンプレートを元に各組織に適合するように カスタマイズすることでロードマップ作成時のコスト削減

Slide 49

Slide 49 text

まとめ

Slide 50

Slide 50 text

OWASP SAMM • 成熟したセキュア開発を行うことを支援 • 7つのプロジェクト関係者を定義 • 4つのビジネス機能、12のセキュリティ対策で構成 ソフトウェアセキュリティ保証成熟度モデル • プロジェクトへの情報提供 • 開発プロジェクトの定量化 活用事例 様々なプロジェクトに参加しませんか!