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
yumechi(Motoki Hirao)
March 24, 2023
Technology
0
520
セキュリティテストでより安心できるリリースにしよう
2023/03/23〜25 開催 PHPerKaigi 2023 Day 1 LT
yumechi(Motoki Hirao)
March 24, 2023
Tweet
Share
More Decks by yumechi(Motoki Hirao)
See All by yumechi(Motoki Hirao)
Chart.jsで長い項目を表示するときのハマりどころ
yumechi
0
130
異夢同船 読んできました!
yumechi
0
240
地方カンファレンスのスタッフしてて思うこと
yumechi
0
140
2025年半忘年会ふりかえり
yumechi
0
35
業務で使える一歩進んだPython使いになるために / To become an advanced user of Python that can be used at work
yumechi
13
14k
LTの裏技
yumechi
2
1.5k
やがてカンファレンス登壇者になる
yumechi
1
320
形式スクラムの功罪
yumechi
3
1.5k
プロポーザルを出してみよう考えてみよう
yumechi
1
800
Other Decks in Technology
See All in Technology
重厚長大企業で、顧客価値をスケールさせるためのプロダクトづくりとプロダクト開発チームづくりの裏側 / Developers X Summit 2025
mongolyy
0
160
Perlの生きのこり - YAPC::Fukuoka 2025
kfly8
0
140
国産クラウドを支える設計とチームの変遷 “技術・組織・ミッション”
kazeburo
4
4.4k
明日から真似してOk!NOT A HOTELで実践している入社手続きの自動化
nkajihara
1
870
Quarkusで作るInteractive Stream Application
joker1007
0
160
ソフトウェア開発現代史: 55%が変化に備えていない現実 ─ AI支援型開発時代のReboot Japan #agilejapan
takabow
7
4.5k
AI エージェントを評価するための温故知新と Spec Driven Evaluation
icoxfog417
PRO
1
400
Progressive Deliveryで支える!スケールする衛星コンステレーションの地上システム運用 / Ground Station Operation for Scalable Satellite Constellation by Progressive Delivery
iselegant
1
210
PostgreSQL で列データ”ファイル”を利用する ~Arrow/Parquet を統合したデータベースの作成~
kaigai
0
130
Javaコミュニティの歩き方 ~参加から貢献まで、すべて教えます~
tabatad
0
130
「O(n log(n))のパフォーマンス」の意味がわかるようになろう
dhirabayashi
0
200
JavaScript パーサーに using 対応をする過程で与えたエコシステムへの影響
baseballyama
1
110
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
42
2.9k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
Building a Scalable Design System with Sketch
lauravandoore
463
33k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
The World Runs on Bad Software
bkeepers
PRO
72
12k
The Pragmatic Product Professional
lauravandoore
36
7k
Java REST API Framework Comparison - PWX 2021
mraible
34
9k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.8k
Speed Design
sergeychernyshev
32
1.2k
Statistics for Hackers
jakevdp
799
220k
Transcript
https://www.dip-net.co.jp/ Motoki Hirao セキュリティテストでより 安心できるリリースにしよう
https://www.dip-net.co.jp/ 発表者について • 2021年7月に開発者としてディップに ジョイン • スクラムマスターや開発を担当 • ゲームが好き 2
会社ではこんな アイコンでやってます!
https://www.dip-net.co.jp/ • 2022年4月にアーキテクチャ リプレイスをしました • リプレイスプロジェクトの 一環でセキュリティテスト を実施 今回の発表の背景 https://fortee.jp/phpcon-2022/proposal/ab138440-5240-43be-99ed-3680bad17085
より
https://www.dip-net.co.jp/ リプレイスプロジェクトの課題 • セキュリティ面での検証はできておらず、攻撃に耐えう るソフトウェアであるかは懸念があった • JavaのコードをPHPに移植した • ふるまいに関しては単体・結合・総合テストで入念に確認済 •
一方で実際に外部公開した際、攻撃されて問題が起きる可能性 がある 4
https://www.dip-net.co.jp/ 5 そもそもチームに セキュリティに 詳しい人いない…
https://www.dip-net.co.jp/ ツール選定の中で上がったこと • セットアップが容易で、実行に特殊な知識を必要とせず、 実施結果も確認しやすい • 定期的に実行しやすい仕組みが整っていると嬉しい • 定期的に実施して検査し続けて健全な状態を維持したい •
例えばCIに組み込み可能、定期実行する仕組みがツール自体に 備わっている 6
https://www.dip-net.co.jp/ VAddyを使う 7 引用:https://vaddy.net/ja/
https://www.dip-net.co.jp/ VAddy主な機能 • クロール(シナリオ)の記録、脆弱性検査実施 • 検査結果のレポート • メンバー・権限管理 8
https://www.dip-net.co.jp/ • ブラウザでクロールを記録 して、「スキャン実行」を クリックするだけ
https://www.dip-net.co.jp/ • SQLインジェクション • クロスサイトスクリプティング(XSS) • リモートファイルインクルード(RFI) • コマンドインジェクション •
ディレクトリトラバーサル • ブラインドSQLインジェクション • 安全でないデシリアライゼーション • XML外部実体攻撃(XXE) • HTTPヘッダインジェクション • SSRF脆弱性 • 非公開ファイル検査 VAddy主な検査対象 10 ※プランによって異なります 引用:https://vaddy.net/ja/plan.html
https://www.dip-net.co.jp/ CLI・APIからの実行も可能 • go-vaddy: VAddy API Command-Line Tool • https://github.com/vaddy/go-vaddy/blob/master/README_ja.md
• VAddy Web API Scan Document • https://github.com/vaddy/WebAPI-document/blob/master/VAddy- WebApi-ja.md • 外部から操作しやすいので、CIへの組み込みや定期実行がし やすい 11
https://www.dip-net.co.jp/ 12 VAddyなら なんとかできる かも…
https://www.dip-net.co.jp/ 実際にセキュリティテストやっていく • 調査含めて2ヶ月くらいかけました(2021/11〜2021/12) • クロールはPC版とスマートフォン版を分けて記録 • PC版とスマートフォン版で内部ロジックが異なるため • VAddyではヘッダー情報が記録されていた
• クロール数は50以下くらいで、手作業で収集 13
https://www.dip-net.co.jp/ 実行の高速化 • サービスのフォーム入力項目やvalue値が多すぎるためか、タイ ムアウトが頻発しテストが終わらない問題発生 • 基本情報、職務経歴、トラッキングパラメータなどで数百項目以上 • 対策として次の2つを実施 •
アセットデータへのリクエストをPacファイルを用いてフィルタ • それでも厳しい部分については検査項目をいくつかのグループに分け て実施し、実施時間を調整 14
https://www.dip-net.co.jp/ 実施した結果… 15 • 数ケースだが問題発見 • 元々のコードにも残っている 不具合だった • リリース前に修正
https://www.dip-net.co.jp/ \ 🎉無事リリース🎉 /
https://www.dip-net.co.jp/ 今後に向けて • 継続的に実施する計画・運用を考える • 機能が追加される=セキュリティリスクが増える • 常に検査し続けてこそ意味がある • スケジュール実行したい
• 我々のフォームのつくり上、CIに組み込めない • ジョブ管理ツールとCLIやAPIを組み合わせて定期実行を実現したい 17
https://www.dip-net.co.jp/ まとめ • セキュリティテストを実行する際、Webサービスを使う手も ある • 選定基準に照らし、私たちはVAddyを選択した • セキュリティテストを実行し、若干数の問題を発見できた •
継続的に実施する計画や運用はこれから検討する 18
https://www.dip-net.co.jp/ • 大きなプロダクトに挑戦し て見たい方は是非一度カジ ュアル面談でお話しさせて ください! • 3/25にはブースもあります ので、お話ししましょう! 積極採用やってます!
https://www.dip-net.co.jp/ Appendix • 商用可・フリーイラスト素材|ソコスト https://soco- st.com/ 20