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
410
セキュリティテストでより安心できるリリースにしよう
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)
業務で使える一歩進んだPython使いになるために / To become an advanced user of Python that can be used at work
yumechi
13
13k
LTの裏技
yumechi
2
1.3k
やがてカンファレンス登壇者になる
yumechi
1
260
形式スクラムの功罪
yumechi
3
1.4k
プロポーザルを出してみよう考えてみよう
yumechi
1
520
PHPをasdfで動かしてみたんです
yumechi
2
1k
Shell環境の初手
yumechi
1
150
Last CoLab
yumechi
1
210
これまで10年くらいふりかえり続けて思ったふりかえりに必要なたった1つのこと
yumechi
2
940
Other Decks in Technology
See All in Technology
技術に触れたり、顔を出そう
maruto
1
150
#TRG24 / David Cuartielles / Post Open Source
tarugoconf
0
580
三菱電機で社内コミュニティを立ち上げた話
kurebayashi
1
360
AWSマルチアカウント統制環境のすゝめ / 20250115 Mitsutoshi Matsuo
shift_evolve
0
120
深層学習と3Dキャプチャ・3Dモデル生成(土木学会応用力学委員会 応用数理・AIセミナー)
pfn
PRO
0
460
Amazon Route 53, 待ちに待った TLSAレコードのサポート開始
kenichinakamura
0
170
生成AI × 旅行 LLMを活用した旅行プラン生成・チャットボット
kominet_ava
0
160
【Oracle Cloud ウェビナー】2025年のセキュリティ脅威を読み解く:リスクに備えるためのレジリエンスとデータ保護
oracle4engineer
PRO
1
100
ドメイン駆動設計の実践により事業の成長スピードと保守性を両立するショッピングクーポン
lycorptech_jp
PRO
12
2.2k
Azureの開発で辛いところ
re3turn
0
240
FODにおけるホーム画面編成のレコメンド
watarukudo
PRO
2
280
Building Scalable Backend Services with Firebase
wisdommatt
0
110
Featured
See All Featured
Measuring & Analyzing Core Web Vitals
bluesmoon
5
210
Code Review Best Practice
trishagee
65
17k
Producing Creativity
orderedlist
PRO
343
39k
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.4k
Practical Orchestrator
shlominoach
186
10k
Music & Morning Musume
bryan
46
6.3k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
We Have a Design System, Now What?
morganepeng
51
7.3k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
230
52k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
The Language of Interfaces
destraynor
155
24k
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