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
330
セキュリティテストでより安心できるリリースにしよう
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
1k
やがてカンファレンス登壇者になる
yumechi
1
180
形式スクラムの功罪
yumechi
3
1.3k
プロポーザルを出してみよう考えてみよう
yumechi
1
290
PHPをasdfで動かしてみたんです
yumechi
2
740
Shell環境の初手
yumechi
1
100
Last CoLab
yumechi
1
130
これまで10年くらいふりかえり続けて思ったふりかえりに必要なたった1つのこと
yumechi
2
810
Other Decks in Technology
See All in Technology
LINEヤフーのウェブアクセシビリティ
lycorptech_jp
PRO
2
190
5分で分かる(かもしれない) Vector engine for OpenSearch Serverless
tsukuboshi
1
420
CockroachDB はどのくらい「しぶとい」のか? / How tough is CockroachDB?
kota2and3kan
13
4.9k
PhpStorm超絶技巧40分集中講義 #phpconkagawa
yusuke
4
790
使われないものを作るな!出口から作るデータ分析基盤 / Data Platform Development Starting from the User Needs
amaotone
16
4.7k
[2024년 5월 세미나] 생성형 AI와 함께하는 데이터 분석가 커리어
datarian
0
1.3k
アプリ・TVで"旅なか体験"をもっとスマートにしてみた_team 4@NOT A HOTEL
xx23xy
0
110
.NET GraphQL Client のリアル
sansantech
PRO
1
400
エンジニアゼロの組織から内製開発の DX をどう実現したのか / How did we achieve DX in in-house development in an organization with zero engineers?
genkiogasawara
7
3.1k
CloudflareとHonoを使って飲食店のレビューができるLINEアプリを作った
shinaps
1
300
知識と実践を紡ぐGenAI / Connecting Knowledge and experience with GenAI
aki_moon
2
180
Real World Type Puzzle and Code Generation
yukukotani
4
640
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
217
8.6k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
84
45k
The MySQL Ecosystem @ GitHub 2015
samlambert
244
12k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
14
1.5k
The Brand Is Dead. Long Live the Brand.
mthomps
49
30k
Build The Right Thing And Hit Your Dates
maggiecrowley
25
2k
For a Future-Friendly Web
brad_frost
172
9k
Large-scale JavaScript Application Architecture
addyosmani
504
110k
Producing Creativity
orderedlist
PRO
338
39k
Making Projects Easy
brettharned
109
5.5k
The Power of CSS Pseudo Elements
geoffreycrofte
62
5k
Building a Scalable Design System with Sketch
lauravandoore
457
32k
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