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
生PHPで学ぶSSRF.pdf
Search
dyoshikawa
October 08, 2024
0
120
生PHPで学ぶSSRF.pdf
dyoshikawa
October 08, 2024
Tweet
Share
More Decks by dyoshikawa
See All by dyoshikawa
エンジニア向けコミュニティZennの開発チームを支える自動化の仕組み.pdf
dyoshikawa1993
0
1.9k
Zennへのスパム投稿が急増したのでLLMでなんとかした話
dyoshikawa1993
0
860
Google Cloud Vertex AIにおけるGemini vs Claude
dyoshikawa1993
0
130
OSSコミットしてZennの課題を解決した話
dyoshikawa1993
0
390
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
193
16k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
30
4.6k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.4k
Thoughts on Productivity
jonyablonski
69
4.5k
Facilitating Awesome Meetings
lara
51
6.2k
Site-Speed That Sticks
csswizardry
3
370
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.4k
Adopting Sorbet at Scale
ufuk
74
9.2k
Faster Mobile Websites
deanohume
306
31k
Optimizing for Happiness
mojombo
376
70k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7.1k
A designer walks into a library…
pauljervisheath
205
24k
Transcript
生PHPで学ぶSSRF 10/19(土) PHP勉強会in広島 vol.1 LT枠 @dyoshikawa
簡単に自己紹介 • https://x.com/dyoshikawa1993 • 広島住みソフトウェアエンジニア • Next.js / Ruby on
Rails など • 応用情報技術者 / AWS Security Specialtyなど
留意事項 • 発表者もセキュリティ勉強中の身です(予防線) • コードは例示のために簡略化されているため、そのまま本番利用はしないでくださ い • 誤りがあればご指摘ください
SSRF知ってますか?
https://owasp.org/Top10/ja/ OWASP Top 10に入っている
私のSSRFとの出会い • 今年(2024年)春に応用情報技術者試験合格 • 秋に情報処理安全確保支援士試験を申し込み • SSRF(サーバーサイドリクエストフォージェリ)を知る • CSRF(クロスサイトリクエストフォージェリ)は聞いたことあるけど、SSRFって何 ・・・?
SSRFとは
SSRFとは ネットワーク 公開サーバ 非公開サーバ 192.168.0.1 https://example.com として公開 GET https://example.com?target=http://192.168.0.1 任意のURLをパラメータとして受け付けて内容を取得するような
Webアプリケーションの場合に 攻撃者がWebサーバ自身や非公開のサーバの情報を取得できてしまう脆弱性
任意のURLを受け付ける生PHP ※脆弱なコードです
任意のURLを受け付けるWebアプリなんかある? 実は結構ある • ChatGPTに任意のURLを渡して「このページを要約して」と依頼 • XやFacebookに任意のURLを渡してリンクカード(OGP)を表示
どうすればいいの?
SSRF対策 • 可能であれば、任意のURLを受け付ける仕様をやめる • URLをホワイトリストで管理して検証する、IDとURLのテーブルを作ってIDを受け取 るようにするなど
URLをホワイトリストで制限
とはいえ仕様がそれを許さない場合もある • 任意のURLを受け付けないと機能要件が満たせない場合、決定版な対策はない • ネットワーク分離 +、形式の検証、WAF、生のレスポンスをそのままクライアントに返さない など組み合わせて対策する • ブラックリスト方式はダメ、簡単に迂回される https://owasp.org/Top10/ja/A10_2021-Server-Side_Request_Forgery_%28SSRF%29/
参考 • https://owasp.org/Top10/ja/ • https://owasp.org/Top10/ja/A10_2021-Server-Side_Request_Forgery_%28SS RF%29/ • https://blog.tokumaru.org/2018/12/introduction-to-ssrf-server-side-request-forg ery.html •
https://zenn.dev/chot/articles/88ea57e3108978 • https://www.docswell.com/s/wild0ni0n/5DENY9-2023-05-08-115632
Thank you