Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
いかにしてわれわれはセキュア開発に取り組み始めたか
Search
koujimatsuda11
May 27, 2019
Technology
0
55
いかにしてわれわれはセキュア開発に取り組み始めたか
koujimatsuda11
May 27, 2019
Tweet
Share
More Decks by koujimatsuda11
See All by koujimatsuda11
FIDO2をPHPで実装してみた
koujimatsuda11
0
110
脆弱性診断を内製化してわかったこと
koujimatsuda11
0
150
Other Decks in Technology
See All in Technology
PHP 9 に備えよ - 動的プロパティ、どうすればいぃ?
taisukearase
0
370
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間
oracle4engineer
PRO
12
7.9k
AWSの生成AI入門書を執筆しました🎉
minorun365
PRO
0
150
My road to OSEE Part1
yunolay
0
120
Databricksの生成AI戦略
taka_aki
1
380
YJIT Makes Rails 1.7x faster / RubyKaigi 2024
k0kubun
4
540
開発スピードの維持向上を支える、テスト設計の 漸進的進化への取り組み / Continuous Test Design Development for Speed of Product Development
ropqa
0
190
エムスリーマルチデバイスチーム紹介資料 / Introduction of M3 Multi Device Team
m3_engineering
1
170
TDD - Test Driven Drupal
opdavies
0
3k
グイグイ系QAエンジニアでやっていくよ!
____rina____
0
780
パフォーマンス最適化のベストプラクティス
databricksjapan
0
210
OPENLOGI Company Profile
hr01
0
46k
Featured
See All Featured
Product Roadmaps are Hard
iamctodd
45
9.8k
How to Ace a Technical Interview
jacobian
273
22k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
41
4.5k
How to name files
jennybc
65
94k
Six Lessons from altMBA
skipperchong
22
3k
GraphQLとの向き合い方2022年版
quramy
33
13k
Testing 201, or: Great Expectations
jmmastey
30
6.4k
Adopting Sorbet at Scale
ufuk
69
8.6k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
323
20k
Automating Front-end Workflow
addyosmani
1357
200k
Typedesign – Prime Four
hannesfritz
36
2.1k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
188
16k
Transcript
2019.05.27 DevOpsという選択 いかにしてわれわれは セキュア開発に取り組み始めたか デジタルビジネス本部 セキュア開発推進・プロジェクトサポートチーム 松田 康司
1 自己紹介 株式会社神戸デジタル・ラボ(KDL) デジタルビジネス本部 セキュア開発推進・プロジェクトサポート チームリーダー 松田 康司 (まつだ こうじ)
ITで未来を創る 神戸デジタル・ラボ (KDL)
2 いかにしてわれわれは セキュア開発に取り組み始めたか
3 脆弱性診断の内製化
4 脆弱性診断を内製化した結果わかったこと • 似たような診断結果が多く、同じ指摘を何度もしている • 結果の中には、修正に多くの工数がかかる指摘もある • 開発者に説明しても、その脆弱性を知らない
5 KDLの取り組むセキュア開発
6 OWASP SAMM
7 OWASP SAMMとは ソフトウェアセキュリティ保証成熟度モデル Software Assurance Maturity Model 要件定義 設計
開発 テスト 運用 開発ライフサイクルを、よりセキュアにすることを 支援するドキュメント https://owaspsamm.org/ (v1.5 stable, v2.0 beta) https://www.jpcert.or.jp/securecoding_materials.html (v1.0 日本語)
8 OWASP SAMMとは • 開発プロジェクトのセキュリティ成熟度を可視化する • セキュリティ活動の妥当性や効果の評価 • 継続改善をサポート ソフトウェアセキュリティ保証成熟度モデル
Software Assurance Maturity Model 準備 調査 目標 設定 計画 立案 実行 評価 継続改善サイクル
9 ビジネス機能 開発プロセスにおける主要なビジネス機能を4つのカテゴリと 12のセキュリティ対策を定義
10 査定項目 セキュリティ対策ごとに、合計77の査定項目がある
11 セキュリティ対策 セキュリティ対策の例 成功指標 コスト・人員 戦略&指標 成熟度レベルごとに実施内容を定義 具体的な成果
12 OWASP SAMMを使う
13 現状調査 ある開発プロジェクトのセキュリティ成熟度を可視化する セキュリティテストに大きく依存した体制
14 目標設定・計画立案 組織にあった目標と計画を立てる
15 実行
16 セキュリティ要件(before) 顧客の指定があれば従う。
17 セキュリティ要件(after) プロジェクトメンバーでセキュリティ要件 検討会議を実施し、要件を決定
18 セキュリティ要件 ビジネス要件にあった脅威想定 コンプライアンス セキュリティ7要素のプロファイリング プロジェクトメンバーに共有 セキュリティ要件検討の前に・・・
19 OWASP ASVS(Application Security Verification Standard) https://github.com/OWASP/ASVS/tree/master/4.0 (v4.0) https://www.jpcert.or.jp/securecoding/materials-owaspasvs.html (v3.0.1
日本語) Webアプリケーションの開発、設計、テストで必要となるセキュリティ要件
20 Webシステム/Webアプリケーションセキュリティ要件書 https://github.com/ueno1000/secreq (v3.0 日本語) 安全なWebアプリケーションの開発に必要なセキュリティ要件
21 コードレビュー(before) やってなかった。
22 コードレビュー(after) コードレビュー負荷は激減 コード品質は、確実に上がった
23 コードレビュー みんなでセキュリティ要件の検討 コードレビューは、ライブラリを使っているかどうか? 設定が正しくされているかどうか? どう実装するか検討。クリティカルな機能は、 共通ライブラリを使う。
24 コードレビュー ◆要件 ◆設計 • 全ての入力値検証をFormManagerで行うルールとする ◆レビュー観点 • FormManager を使っていること
• 文字種、文字列、形式をvalidatorに記載していること
25 診断からのフィードバック 共通ライブラリ 開発者 案件開発者 脆弱性診断 ①セキュリティ要件実装 ②ライブラリ利用 ③納品前診断 ④ライブラリにFB
26 結果 • 似たような診断結果が多く、同じ指摘を何度もしている • 結果の中には、修正に多くの工数がかかる指摘もある • 開発者に説明しても、その脆弱性を知らない 脆弱性診断の指摘が、劇的に減りました
27 まとめ
28 まとめ • 脆弱性診断の内製化がセキュア開発のきっかけ • OWASP SAMMで可視化することから始めました • セキュリティ要件を決めるだけで、コード品質も改善
None