Upgrade to Pro — share decks privately, control downloads, hide ads and more …

脆弱性から学ぶ
Webセキュリティ Part2/study-web-security-from-vulnerability2

hypermkt
December 01, 2019

脆弱性から学ぶ
Webセキュリティ Part2/study-web-security-from-vulnerability2

バーチー @hypermkt
2019.12.01 PHPカンファレンス
https://phpcon.php.gr.jp/2019/

脆弱性から学ぶ
Webセキュリティ Part1 はこちら
https://speakerdeck.com/hypermkt/study-web-security-from-vulnerability1

hypermkt

December 01, 2019
Tweet

More Decks by hypermkt

Other Decks in Programming

Transcript

  1. ੬ऑੑͷڴҖ • ݸਓ৘ใͷӾཡ • WebαΠτͷվ͟Μ • ΢Πϧεײછ • ผͷར༻ऀ΁ͷͳΓ͢·͠ •

    WebαΠτΛར༻ෆՄʹ͢Δ • ϨϐϡςʔγϣϯϦεΫ(اۀʹର͢ΔϚΠφεධՁʣ • ܦࡁతଛࣦ 16
  2. ੈͷதʹ͸༷ʑͳ੬ऑੑ͕͋Δ • SQLΠϯδΣΫγϣϯ • ΫϩεαΠτεΫϦϓςΟϯά • CSRF • σΟϨΫτϦτϥόʔαϧ •

    OSίϚϯυɾΠϯδΣΫγϣϯ • ηογϣϯ؅ཧͷෆඋ • HTTP/ϝʔϧϔομʔΠϯδΣΫγϣϯ • ΞΫηε੍ޚ΍ೝՄ੍ޚͷܽམ • ͳͲ 27
  3. ࠓ೔͸ҎԼ3఺Λղઆ͠·͢ • SQLΠϯδΣΫγϣϯ • ΫϩεαΠτεΫϦϓςΟϯά • CSRF • σΟϨΫτϦτϥόʔαϧ •

    OSίϚϯυɾΠϯδΣΫγϣϯ • ηογϣϯ؅ཧͷෆඋ • HTTP/ϝʔϧϔομʔΠϯδΣΫγϣϯ • ΞΫηε੍ޚ΍ೝՄ੍ޚͷܽམ • ͳͲ 28
  4. Ͳ͏΍ͬͯར༻ऀʹηογϣϯIDΛૹΓࠐΉͷ͔ • ηογϣϯɾΞμϓγϣϯ / Session Adoption • ࣗ෼͕ൃߦ͍ͯ͠ͳ͍ηογϣϯIDΛ༗ޮͳηογϣϯIDͱͯ͠ڐՄ
 ͯ͠͠·͏͜ͱ •

    ࠶ݱྫʣ 1.URLʹΑΔηογϣϯID͕อ࣋Ͱ͖Δঢ়ଶͱ͢Δ 2.߈ܸंʹΑΓ֎෦αΠτ͔Β http://example.jp/?PHPSESSID=hoge ʹ༠ಋ͞ΕΔ 3.ར༻ऀ͸ͦͷঢ়ଶͰϩάΠϯ͢Δ 61 ηογϣϯIDͷURLอ࣋Մઃఆ
 session.use_cookies: 1 session.use_only_cookies: 0 session.use_trans_sid: 1
  5. ݪҼ 1. XSS • ෆਖ਼ͳεΫϦϓτʹΑΓηογϣϯID͕औಘ͞ΕΔ • ηογϣϯϋΠδϟοΫʹѱ༻͞ΕΔ 2. ਪଌՄೳͳηογϣϯID •

    ηογϣϯID͕ਪଌ͞ΕΔ͜ͱʹΑΓηογϣϯID͕औಘ͞ΕΔ • ηογϣϯϋΠδϟοΫʹѱ༻͞ΕΔ 3. ηογϣϯIDͷURLύϥϝʔλʔར༻ • ྫ) http://example.jp/?PHPSESSID=XXX • ࠷ۙͷγεςϜͰ͸΄΅ແ͍ɻݹ͍ΨϥέʔγεςϜʹݟΒΕΔ • RefererϔομʔʹΑΓηογϣϯID͕࿙Ӯ͢Δ • ηογϣϯϋΠδϟοΫ/ηογϣϯIDͷݻఆԽʹѱ༻͞ΕΔ 4. ೝূલޙͰηογϣϯID͕ಉ͡ • ηογϣϯIDͷݻఆԽʹѱ༻͞ΕΔ 63
  6. ηογϣϯIDΛਪଌࠔ೉ͳ΋ͷʹ͢Δ • ҆શͳཚ਺ΛݩʹηογϣϯIDΛൃߦ͢Δ • PHP5.4Ҏ߱ • ҉߸࿦తٖࣅཚ਺ੜ੒ث(CSPRNG) Λ࢖༻ͯ҆͠શͳηογϣϯID͕ൃߦ͞ΕΔ Α͏ʹͳ͍ͬͯΔ •

    PHP5.4ະຬ • php.iniʹҎԼઃఆΛՃ͑ͯ҆શͳηογϣϯཚ਺ΛݩʹηογϣϯIDΛൃߦ͢Δ 66 [Session] session.entropy_file = /dev/urandom session.entroy_length = 32 PHP 5.4͔ΒσϑΥϧτͰ͜ͷઃఆʹͳ͍ͬͯΔɻͦͷ··ͰOKɻ
  7. ηογϣϯID͸ΫοΩʔͷΈͰอ࣋ɺURLύϥϝʔλʔͰอ࣋͠ͳ͍ 67 ໊લ σϑΥϧτ஋ આ໌ TFTTJPOVTF@DPPLJFT lz ηογϣϯͷอ࣋ʹΫοΩʔΛ
 ར༻͢Δ TFTTJPOVTF@POMZ@DPPLJFT

    lz ΫοΩʔͷΈʹηογϣϯΛ
 อ࣋͢Δ TFTTJPOVTF@USBOT@TJE lz 63-ʹηογϣϯ*%อ࣋Λ
 ͠ͳ͍ σϑΥϧτ஋ͷ··Ͱ php.iniઃఆ
  8. • ମܥతʹֶͿ ҆શͳWebΞϓ Ϧέʔγϣϯͷ࡞Γํ ୈ2൛ ੬ ऑੑ͕ੜ·ΕΔݪཧͱରࡦͷ࣮ ફ / ಙؙ

    ߒ (ஶ) • IPA ҆શͳ΢ΣϒαΠτͷ࡞Γ ํ ୈ7൛
 https://www.ipa.go.jp/ security/vuln/websecurity.html 71
  9. CookieʹSecureଐੑΛՃ͑Δ • HTTPS௨৴࣌ͷΈCookie͕ϒϥ΢β͔Βૹ৴ͤ͞ɺ
 HTTP௨৴࣌ͷCookieྲྀग़Λ๷͙ • php.ini ͷ session.cookie_secure Λ 1

    ʹ͢Δ͜ͱͰରԠՄ 75 ग़య: https://www.php.net/manual/ja/session.configuration.php#ini.session.cookie-secure