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
630
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
セキュリティテストでより安心できるリリースにしよう
2023/03/23〜25 開催 PHPerKaigi 2023 Day 1 LT
yumechi(Motoki Hirao)
March 24, 2023
More Decks by yumechi(Motoki Hirao)
See All by yumechi(Motoki Hirao)
おれおれサービスをいっぱいつくろう
yumechi
0
110
ブログ用の記事投稿数 可視化の仕組みを作る
yumechi
0
93
2026年 エンジニアリング自己学習法
yumechi
0
240
PyCon mini Shizuoka 2026 ご紹介
yumechi
0
82
Chart.jsで長い項目を表示するときのハマりどころ
yumechi
0
240
異夢同船 読んできました!
yumechi
0
330
地方カンファレンスのスタッフしてて思うこと
yumechi
0
260
2025年半忘年会ふりかえり
yumechi
0
110
業務で使える一歩進んだPython使いになるために / To become an advanced user of Python that can be used at work
yumechi
13
14k
Other Decks in Technology
See All in Technology
LanceDB入門
mocobeta
3
100
【CEDEC2026】『Relink』を拡張せよ - 『GRANBLUE FANTASY: Relink - Endless Ragnarok』の開発速度と品質を守るCI運用
cygames
PRO
0
140
Webアクセシビリティ入門 2026
recruitengineers
PRO
3
460
AI駆動開発は個人技からチーム戦へ:組織でAIを使いこなすための実践設計
moongift
PRO
0
480
AWS ネットワーク構築でハマった(ハマりかけた) 5選とそこから得た教訓
nagisa53
4
200
新しい SLO が良い感じにハマっている話
z63d
5
2.2k
DatadogのBits Chatが開発組織にもたらしたもの / What Bits Chat Has Brought Us
sms_tech
1
130
Redmine 7.0 新機能・機能強化解説(OSC2026京都ダイジェスト版)
vividtone
1
210
QAエンジニア起点で進める、SmartHRにおける信頼性向上について
kaomi_wombat
1
120
TypeScript入門 2026
recruitengineers
PRO
3
500
ラジオの科学
frievea
0
280
認知負荷をGemini で溶かす — GKE 基盤「Orbit」における AI エージェントの実践
sansantech
PRO
1
270
Featured
See All Featured
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
360
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
Building Adaptive Systems
keathley
44
3.2k
A Soul's Torment
seathinner
6
3.4k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
45k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
1.1k
A designer walks into a library…
pauljervisheath
211
24k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
200
Java REST API Framework Comparison - PWX 2021
mraible
34
9.6k
We Have a Design System, Now What?
morganepeng
55
8.3k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
2
3.7k
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