Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
生PHPで学ぶSSRF.pdf
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
dyoshikawa
October 08, 2024
190
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
生PHPで学ぶSSRF.pdf
dyoshikawa
October 08, 2024
More Decks by dyoshikawa
See All by dyoshikawa
エンジニア向けコミュニティZennの開発チームを支える自動化の仕組み.pdf
dyoshikawa1993
0
2.6k
Zennへのスパム投稿が急増したのでLLMでなんとかした話
dyoshikawa1993
0
1.5k
Google Cloud Vertex AIにおけるGemini vs Claude
dyoshikawa1993
0
250
OSSコミットしてZennの課題を解決した話
dyoshikawa1993
0
740
Featured
See All Featured
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
690
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
750
Prompt Engineering for Job Search
mfonobong
0
460
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Into the Great Unknown - MozCon
thekraken
41
2.7k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
200
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
Why Our Code Smells
bkeepers
PRO
340
58k
Docker and Python
trallard
47
4.2k
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