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
420
セキュリティテストでより安心できるリリースにしよう
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
14k
LTの裏技
yumechi
2
1.3k
やがてカンファレンス登壇者になる
yumechi
1
270
形式スクラムの功罪
yumechi
3
1.4k
プロポーザルを出してみよう考えてみよう
yumechi
1
560
PHPをasdfで動かしてみたんです
yumechi
2
1k
Shell環境の初手
yumechi
1
160
Last CoLab
yumechi
1
210
これまで10年くらいふりかえり続けて思ったふりかえりに必要なたった1つのこと
yumechi
2
950
Other Decks in Technology
See All in Technology
リアルタイム分析データベースで実現する SQLベースのオブザーバビリティ
mikimatsumoto
0
1.3k
アジャイル開発とスクラム
araihara
0
170
管理者しか知らないOutlookの裏側のAIを覗く#AzureTravelers
hirotomotaguchi
2
380
データ資産をシームレスに伝達するためのイベント駆動型アーキテクチャ
kakehashi
PRO
2
530
全文検索+セマンティックランカー+LLMの自然文検索サ−ビスで得られた知見
segavvy
2
100
『衛星データ利用の方々にとって近いようで触れる機会のなさそうな小話 ~ 衛星搭載ソフトウェアと衛星運用ソフトウェア (実物) を動かしながらわいわいする編 ~』 @日本衛星データコミニティ勉強会
meltingrabbit
0
140
Larkご案内資料
customercloud
PRO
0
650
バックエンドエンジニアのためのフロントエンド入門 #devsumiC
panda_program
18
7.5k
関東Kaggler会LT: 人狼コンペとLLM量子化について
nejumi
3
580
AndroidデバイスにFTPサーバを建立する
e10dokup
0
250
スタートアップ1人目QAエンジニアが QAチームを立ち上げ、“個”からチーム、 そして“組織”に成長するまで / How to set up QA team at reiwatravel
mii3king
2
1.5k
Helm , Kustomize に代わる !? 次世代 k8s パッケージマネージャー Glasskube 入門 / glasskube-entry
parupappa2929
0
250
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
137
6.8k
Faster Mobile Websites
deanohume
306
31k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.5k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
BBQ
matthewcrist
87
9.5k
Mobile First: as difficult as doing things right
swwweet
223
9.3k
The Pragmatic Product Professional
lauravandoore
32
6.4k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.6k
The Cost Of JavaScript in 2023
addyosmani
47
7.3k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
How to Ace a Technical Interview
jacobian
276
23k
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