#OWT2017JP OWASP SAMM by 伊藤彰嗣, サイボウズ
開発プロジェクトの現状を把握するOWASP SAMM の活用Akitsugu Ito(@springmoon6)
View Slide
自己紹介• Akitsugu Ito(@springmoon6)• サイボウズ株式会社 CSIRT PoC• OWASP 関連のスライドManagement for Security Life Cyclehttps://speakerdeck.com/owaspjapan/management-for-security-life-cycle-number-appsecapac2014OWASP Project 使ってみたhttps://www.slideshare.net/akitsuguito/owasp-project
Agenda• OWASP SAMM って?• 12のセキュリティ対策と OWASP 成果物• 適用事例• まとめ
OWASP SAMM って?
要件定義 設計・開発 テスト 運用・保守① 要件定義 OWASP Top 10 Project② 設計・開発 OWASP Proactive ControlsOWASP Application Security Verification Standard (ASVS)OWASP Cheat Sheet SeriesOWASP Security Shepherd③ テスト OWASP Zed Attack ProxyOWASP Testing Project(OWASP Testing Guide etc..)OWASP Offensive Web Testing Framework (OWTF)④ 運用・保守 OWASP ModSecurity Core Rule Set ProjectOWASP APPSensorOWASP CSRFGuard ProjectOWASP Dependency Check
要件定義 設計・開発 テスト 運用・保守① 要件定義 OWASP Top 10 Project② 設計・開発 OWASP Proactive ControlsOWASP Application Security Verification Standard (ASVS)OWASP Cheat Sheet SeriesOWASP Security Shepherd③ テスト OWASP Zed Attack ProxyOWASP Testing Project(OWASP Testing Guide etc..)OWASP Offensive Web Testing Framework (OWTF)④ 運用・保守 OWASP ModSecurity Core Rule Set ProjectOWASP APPSensorOWASP CSRFGuard ProjectOWASP Dependency Check開発ライフサイクルをよりセキュアにすること (OWASP SAMM)
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)
特徴 – 定量化・可視化開発プロジェクトのセキュリティ成熟度を定量化・可視化し現状を把握できるNISTIR-8151 Dramatically Reducing Software Vulnerabilities3.2 Software Assurance: The Object of Software Measureshttp://nvlpubs.nist.gov/nistpubs/ir/2016/NIST.IR.8151.pdfA=f(p, s, e)A: ソフトウェアセキュリティ保証の価値p: 開発プロセスs: セキュリティテストe: 実行環境
特徴 – 継続改善現状把握 目標設定計画立案実施一定の期間ごとに上記を繰り返すことでセキュリティ品質の改善に繋がる
文書構成
プロジェクトメンバーDevelopersBusiness OwnersQA TestersArchitects ManagersSecurity Auditor Support / Operators
ビジネス機能開発プロセスにおける主要なビジネス機能を4つに整理ガバナンス 構築(設計・開発) 検証 運用
セキュリティ対策ビジネス機能ごとに3つのセキュリティ対策を定義戦略・指標ポリシー・コンプライアンス教育・指導脅威の査定セキュリティ要件セキュアなアーキテクチャ設計レビュー実装レビューセキュリティテスト課題管理環境の堅牢化運用体制のセキュリティ対応
セキュリティ対策の例定量的な指標の例期待結果 コスト
現状把握 - アセスメントTool-box の活用ヒアリング計画を立てることが重要プロジェクト体制を把握し、ヒアリング項目・対象を決める
アセスメント項目ガバナンス 構築 検証 運用Manager 18 19 19 19Architect 20 14 19 13SecurityAuditor12 19 17 8BusinessOwners16 17 8 11Developers 11 10 19 10QA Testers 7 7SupportOperators14
成熟度の可視化(1)
成熟度の可視化(2)
目標設定~実施
12のセキュリティ対策とOWASP 成果物
OWASP 成果物への参照• セキュリティ対策を推進するうえで役に立つ OWASP ドキュメントへの参照がOWASP SAMM の中には記載されていない• 下記の条件で成果物への導線をまとめる– OWASP Project Inventory に登録されている公式プロジェクト– 日本のローカルチャプターから公開されている成果物
戦略・指標(SM)組織内でセキュリティ保証プログラムを確立するOWASP SAMM を活用することロードマップの策定リスク評価の実施セキュリティ支出の算出
ポリシー・コンプライアンス(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ガバナンスとコンプライアンスベースラインの確立セキュリティ監査の実施
教育・指導(EG)ソフトウェアライフサイクルに携わる人材を育成するOWASP Education Projecthttps://www.owasp.org/index.php/Category:OWASP_Education_Project教育の機会資料の提供セキュリティ教育の実施習熟度を認証する
脅威の査定(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ソフトウェアの機能と特性に基づきプロジェクトのリスクを把握脅威・攻撃者の理解・文書化脅威分析 脅威と保護機能の関連付け
セキュリティ要件(SR)OWASP ASVShttps://www.owasp.org/index.php/Category:OWASP_Application_Security_Verification_Standard_ProjectWebシステム/Webアプリケーションセキュリティ要件書 2.0https://github.com/ueno1000/secreqソフトウェアのセキュリティ要件を策定する要件検討からセキュリティを考慮リスク分析に応じて要件を調整セキュリティ要件の監査
セキュアなアーキテクチャ(SA)OWASP Proactive Controlshttps://www.owasp.org/index.php/OWASP_Proactive_Controlsプロアクティブに安全なソフトウェアを構築するための仕組み設計プロセスにセキュリティを組み込む設計パターンをプロジェクトに提供再利用可能なコンポーネントの利用と検査
デザインレビュー(DR)Application Security Architecture Cheat Sheethttps://www.owasp.org/index.php/Application_Security_Architecture_Cheat_Sheetセキュリティ問題に対するソフトウェアとアーキテクチャの評価レビュープロセスにセキュリティを組み込む設計レビュープロセスの策定レビュープロセスに従ったアセスメント実施
実装レビュー(IR)OWASP Code Review Projecthttps://www.owasp.org/index.php/Category:OWASP_Code_Review_ProjectSecure Coding Cheat Sheethttps://www.owasp.org/index.php/Secure_Coding_Cheat_Sheetソフトウェアのセキュリティをソースコードと構成レベルで検査コードレビューの実施自動コード解析ツールの利用コードレビュー合格基準の策定
セキュリティテスト(ST)脆弱性診断士スキルマッププロジェクトhttps://www.owasp.org/index.php/Category:OWASP_Application_Security_Verification_Standard_Projectランタイム環境におけるソフトウェアのセキュリティテストテスト実施プロセスの構築自動テストツールの利用アプリケーション固有のテスト実施
課題管理(IM)OWASP Incident Response Projecthttps://www.owasp.org/index.php/OWASP_Incident_Response_Projectインシデント報告や対応に関する組織内のプロセス報告窓口やインシデント対応チームの理解インシデント対応プロセスの理解定量データを用いたプロセス改善
環境の堅牢化(EH)OWASP Dependency Checkhttps://www.owasp.org/index.php/OWASP_Dependency_CheckOWASP Security Operations Center (SOC) Framework Projecthttps://www.owasp.org/index.php/OWASP_Security_Operations_Center_(SOC)_Framework_Projectソフトウェアが稼働する運用基盤をセキュアに構築する運用環境のベースラインを理解運用の堅牢化自動化の推進ベストプラクティスを用いて運用環境を検証
運用体制のセキュリティ対応(OE)OWASP SAMM のアセスメント項目を Cheat sheet として活用良いプロジェクトがあれば教えてください!ソフトウェアのセキュリティ情報を収集し情報発信する開発・運用間の連絡体制の構築手順書の伝達と変更管理運用環境の検証
活用事例
OWASP SAMM との出会い• OWASP Japan Local Chapter Meeting– https://owasp.doorkeeper.jp/events/58340https://www.slideshare.net/okdt/owasp-samm
活用例アドバイス集作成情報提供プロジェクトの可視化工数小 工数大
アドバイス集の作成アセスメント項目ごとに参考になるドキュメントを収集
タイムリーな情報提供(1)Web ページを作成する際の JavaScript利用に関するルールを緩和したい。利便性を維持しながらリスクを軽減できるように議論させてください。こんな資料があります。安全な Web サイトの作り方3rd Party Javascript Management Cheat Sheet
タイムリーな情報提供(2)お客様から質問を受けています。開発活動は文書化されたセキュアなシステム開発手法(セキュリティ要件の定義およびテストを含む)に基づき、遂行されていますか?OWASP ASVS を用いてサービスのセキュリティ要件を精査し、セキュリティ要件に関する標準への適合性確認を進めています。https://www.slideshare.net/akitsuguito/owasp-project
新規プロジェクトへの情報提供新たにサービスをリリースするチームが認証を取得するにあたり事前準備が必要となる項目を具体的な活動内容と併せて伝達戦略・指標セキュリティ要件セキュリティテスト課題管理運用体制のセキュリティ対応
情報提供例(運用)• 日時確認タスクの実施方法(ログの監視など)• パッチの適用プロセス(全社基準との差異など)• 自動適用の有無(パッチマネージャーの利用など)• 追加のセキュリティ緩和策の有無(WAF / IDS etc..)• 外部監査の実施頻度(運用環境)• 変更管理データベースの運用• リハーサルについて(実施基準とコミュニケーション)• 鍵管理について
情報提供例(開発)• 機能一覧に関する文書• セキュリティ機能一覧に関する文書• 運用基盤以外に利用しているサードパーティコンポーネントの把握• コードレビューの実施状況• ログ管理の実装状況• 監視すべきアラートやエラーに関する文書• 文書の更新体制
開発プロジェクトの定量化の試み作成したツールキットのアウトプットを元に、現在のプロジェクトの状況を可視化現在の課題の把握と今後の目標について議論
あるプロジェクトの現状(Pros)これまで PSIRT が力を入れてきた領域や、オペレーションチームが対応してきた領域は成熟している
あるプロジェクトの現状(cons)プロジェクト間を横断して統一された観点に基づいたセキュリティ対策を導入する点に課題がある
ロードマップテンプレートの活用業種別にロードマップ策定用のテンプレートが存在ソフトウェアベンダー(独立系)サービスプロバイダ金融サービス政府組織テンプレートを元に各組織に適合するようにカスタマイズすることでロードマップ作成時のコスト削減
まとめ
OWASP SAMM• 成熟したセキュア開発を行うことを支援• 7つのプロジェクト関係者を定義• 4つのビジネス機能、12のセキュリティ対策で構成ソフトウェアセキュリティ保証成熟度モデル• プロジェクトへの情報提供• 開発プロジェクトの定量化活用事例様々なプロジェクトに参加しませんか!