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
WordPress保安検査ガイド〜運用可能なセキュリティを始めるために〜 / wpcamp_h...
Search
yoshinori matsumoto
April 20, 2019
Technology
1
700
WordPress保安検査ガイド〜運用可能なセキュリティを始めるために〜 / wpcamp_haneda_security
yoshinori matsumoto
April 20, 2019
Tweet
Share
More Decks by yoshinori matsumoto
See All by yoshinori matsumoto
WordPress セキュリティガイド #wpmeetupkyoto / WP Security Guide
ym405nm
6
3.4k
FIDO2導入してみたを考えてみた / Around The Auth Capy Matsumoto
ym405nm
0
290
Hack L33t Fighters Ⅱ #owaspsendai
ym405nm
0
370
CAPYのFIDOへの取り組み / Capy FIDO
ym405nm
0
170
WordPress 管理者がおさえておきたい Web アプリケーションセキュリティ / owasp-wordpress-meetup
ym405nm
1
1.6k
Extreme Honyepotter
ym405nm
0
850
攻撃者からみたWordPressセキュリティ / WordCamp Kansai 2015
ym405nm
8
5k
コミュニティ活動からみるPHPセキュリティ / PHP Conference Kansai 2015
ym405nm
0
570
Other Decks in Technology
See All in Technology
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
12
81k
Biz職でもDifyでできる! 「触らないAIワークフロー」を実現する方法
igarashikana
3
2.3k
フレームワークを意識させないワークショップづくり
keigosuda
0
240
AI駆動で進める依存ライブラリ更新 ─ Vue プロジェクトの品質向上と開発スピード改善の実践録
sayn0
1
170
serverless team topology
_kensh
3
160
JSConf JPのwebsiteをGatsbyからNext.jsに移行した話 - Next.jsの多言語静的サイトと課題
leko
2
180
「改善」ってこれでいいんだっけ?
ukigmo_hiro
0
410
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
2.8k
Dylib Hijacking on macOS: Dead or Alive?
patrickwardle
0
450
事業開発におけるDify活用事例
kentarofujii
5
1.3k
今この時代に技術とどう向き合うべきか
gree_tech
PRO
2
2.1k
SQLAlchemy の select(User).where(User.id =="123") を理解してみる/sqlalchemy deep dive
3l4l5
3
260
Featured
See All Featured
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
930
KATA
mclloyd
PRO
32
15k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.7k
jQuery: Nuts, Bolts and Bling
dougneiner
65
7.9k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.2k
Designing for humans not robots
tammielis
254
26k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.6k
For a Future-Friendly Web
brad_frost
180
10k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
How GitHub (no longer) Works
holman
315
140k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
31
2.7k
Transcript
None
et r pc B C A mo d K ilk
y O h , 0 P W c aS sn , 5 6 2 1 06 , 0
Wcd h h S Wcd p I n J i
ov d rP t SI A A + 5 I 6 os h u b ae h u
) ( ۭߓͰ͜Μͳ͜ͱ͋Γ·ͤΜ͔ʁ
৬Ͱ͜Μͳ͜ͱ͋Γ·ͤΜ͔ 8PSE1SFTT ͳΜ͔ ةͳ͘Ͷ
! M 5 S W C P
) ( %SVQBMةͳ͍ͱ͍͏ߟ͑ /( Ͳͷ$.4Ͱ੬ऑੑ͕͋Δ ੬ऑੑͷରԠඞཁ ָͨͩ͠ʹ͢Δ͜ͱՄೳʁ Drupal
https://www.itmedia.co.jp/enterprise/articles/1902/28/news077.html
mi / A p . 1274 / A g tc
j s 7 A- 8 4381 2 4 4 8A4 1 82 4A 4 A ( 7 e hfn dfkl 7 A- 2 6 6 2 4 A 35 ) 06 0 608 :18 8 35 r S a_ r uo ͳΔ͘ૣ͘ରԠ ʢͰ͖ͨΒࣗಈԽ͍ͨ͠ʣ
• 8PSE1SFTTͷϩάΠϯΛकΔ • ੬ऑੑใΛ֬ೝ͢Δ • ϓϥάΠϯͱςʔϚΛબͿ • 8PSE1SFTTͷؔΛ͏ ཧऀ
։ൃऀ͚ ཧऀ ฤूऀ ߘऀ دߘऀ ߪಡऀ 8PSE1SFTTΛ҆શʹ͏ํ๏ʂ Ͱ͖Εָͳͭ શϢʔβ ʴЋ ࣄނ͕͓ͬͨ͜Β
XML RPC wp-login.php ͜͜ͷϩάΠϯػೳ͕ૂΘΕ͍͢
ΨνΨν σϑΥϧτ XQMPHJOQIQͷΞΫηε੍ݶʢ9.-31$ʣ ཁૉೝূɺΞΧϯτϩοΫ ύεϫʔυϙϦγʔͷ֬ೝ ϢʔβͲ͏͏͔Λߟ͑ͳ͕Βઃఆ͢Δ *1ΞυϨε͕ݻఆՄೳ͔ʁ ηΩϡϦςΟͷzෛՙzʢ໘ࣄʣΛ͓ئ͍Ͱ͖Δ͔ʁ ӡӦऀͷෛ୲ͲΕ͘Β͍ڐ༰Ͱ͖Δ͔ʁ
ΞΧϯτ໊ਪଌ͞Ε͍ͯΔ BVUIPSͰΞΧϯτ͕ਪଌ ˠ͜͜Λมߋ͢Δͷ໘͍͘͞ ୠ͠ύεϫʔυ໊ʹΞΧϯτΛೖΕͳ͍͜ͱॏཁ
αΠτͷอޢ ϗϫΠτϦετ 8PSE1SFTTDPNͷ 440Λར༻
ސ٬͚ͷΞΧϯτཧ8PSE1SFTTͷ ʮ$VTUPNFSʯݖݶʢ8$ಠࣗʣͱͯ͠࡞͞ΕΔ XQMPHJOQIQܦ༝ͰϩάΠϯͰ͖Δ͕ ཧը໘ XQBENJOҎԼ ʹΞΫηεͰ͖ͳ͍ •
8PSE1SFTTͷϩάΠϯϑΥʔϜͱಉ͡ڧ • ௨ৗϩάΠϯͱҧ͍ʮOPODFʯ͍͍ͭͯΔ͕ɺϫϯλΠϜͰ ͳ͍ͷͰϒϧʔτϑΥʔεରࡦʹඍົ • ϩάΠϯอޢܥͷϓϥάΠϯͦͷ··͑Δ ʢ-PHJO-PDL%PXO $SB[ZCPOF ͳͲͰݕͰ͖ͨʣ
Ϩϯλϧαʔόͷ߹ ଞαΠτ ଞαΠτ .Z 8PSE1SFTT ͋ͳͨ
'51αʔό ڞ༻αʔό '51ΞΧϯτ 81ΞΧϯτ ίϯύω ΞΧϯτ αʔό ܖใ ϗεςΟϯάձࣾͷೋཁૉೝূΛ༗ޮʹ͢Δ ͦΕͧΕύεϫʔυΛ͍·Θ͞ͳ͍ '51ΫϥΠΞϯτ࠷৽൛Λ͏ ͳΔ͘'51Θͳ͍ ίϯύω
714ΫϥυαʔϏεͷ߹ ͋ͳͨ 714 81ΞΧϯτ ίϯύω ΞΧϯτ
αʔό ܖใ ϗεςΟϯάձࣾͷೋཁૉೝূΛ༗ޮʹ͢Δ αʔόͷ44)ϩάΠϯެ։伴ೝূ ʢύεϫʔυແޮʣʹ͢Δ ηΩϡϦςΟάϧʔϓͳͲઃఆ ίϯύω .Z 8PSE1SFTT 44)% αʔόΞΧϯτ
2աڈʹ XQMPHJOQIQ ʹΞΫηε͕͋ͬͨ*1ΞυϨεΛ ϒϩοΫ͍ͯ͠Δ͕ޮՌ͋Δͷ͔ʁ ΞΫηεϩά
Attack IP .htaccess ϩάΠϯը໘ʹ͘ΞΫηε͍ͯ͠Δ*1ͦͷมߋ͞ΕΔͨΊɺ *1ΞυϨεͷϒϥοΫϦετΛཧ͢Δͷ͍͠ɻ ·ͨɺݱঢ়ւ֎ͷ*1ΞυϨεଳҬʹଟ͍͋Δ͕ɺ ࠓޙࠃ*1ΞυϨεͰͷεΩϟϯߟ͑ΒΕΔͨΊɺ ࠃ͝ͱͷΞΫηε੍ݶΛա৴͠ͳ͍Α͏ʹҙ͕ඞཁɻ
2ϩάΠϯը໘ʹ#BTJDೝূ͍ΕΔ͖ʁ ೖΕ͍͍͚ͯͲɺ໘ʹͯ͠·ͰͷϝϦοτͳ͍͔ ʢಛʹฏจ௨৴Λߦ͍ͬͯΔαΠτةݥʣ 81ͷػೳͰΧόʔͰ͖ΔͷͰϝϦοτΛڗडͰ͖ͳ͍ σϝϦοτղܾ͍ͯ͠ͳ͍ https://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/003.html
μογϡϘʔυʹ͋Δߋ৽ใཁ֬ೝ • ຊମ • ςʔϚ • ϓϥάΠϯ
ຊମ ςʔϚ ϓϥάΠϯ ΦʔτΞοϓσʔτͷର ϝδϟʔΞοϓσʔτཧը໘͔Β ΦʔτΞοϓσʔτͷର֎ ཧը໘͔Β ΦʔτΞοϓσʔτͷର֎ ཧը໘͔Β
8PSE1SFTT͔Βಋೖ σϑΥϧτͰ༗ޮ ϚΠφʔΞοϓσʔτʢηΩϡϦςΟΞοϓσʔτʣͷΈର ແޮʹ͢Δ͜ͱՄೳ
ˠΑͬΆͲͷཧ༝͕ͳ͍ݶΓແޮʹ͠ͳ͍ 2018/12 2019/3 2019/2 2019/3 ΦʔτΞοϓσʔτ खಈ Ξοϓσʔτ ΦʔτΞοϓσʔτ ݪଇతʹαϙʔτ࠷৽൛Ͱ͋Δ͕ɺ ηΩϡϦςΟύον͕ग़Δ͜ͱ͋Δ
IUUQTXXXBTBIJDPNBSUJDMFT"4,#)4,#6-0#IUNM 8PSE1SFTTͷ੬ऑੑରࡦʹ͍ͭͯ IUUQTXXXJQBHPKQTFDVSJUZDJBESWVMXPSEQSFTTIUNM ຊମ Өڹड͚Δόʔδϣϯ ܥͦ͘͠ΕҎԼ ର֎ मਖ਼ࡁΈͷόʔδϣϯ
ΦʔτΞοϓσʔτର
ެతػؔ +1$&35$$ҙשى IUUQXXXKQDFSUPSKQBU +7/ IUUQTKWOKQ ϗεςΟϯάձࣾ ҙשىϝʔϧ ͜ͷ͋ͨΓʹग़ݱ͢Δ
ใʹཁҙʂ
Ή͔͍ͣ͠ΑʔΘ͔ΒΜͱ͍͏ํͷͨΊʹ • ೝূͳ͠ʢԕִͷɺୈࡾऀʹΑΔʙʣ • ֎෦͔ΒʢϦϞʔτ͔Βʣ • ίʔυ࣮ߦʢ3$&3FNPUF$PEF&YFDVUJPOʣ ͳͲ͕ଗ͏ͱཁҙ
ͪ͜Βͷ߲Ͱ߈ܸ͕؆୯͔Ͳ͏͔ͳͲΛ֬ೝ͢Δ ·ͨΦʔτΞοϓσʔτͰରԠͰ͖͍ͯΔ͔Ͳ͏͔
• 1)1ͷόʔδϣϯ͕ݹ͗͢ͳ͍͔ ˠ ͦͦ8PSE1SFTTಈ͔ͳ͘ͳΔ • 8FCαʔόʢ"QBDIF/HJOYʣͷόʔδϣϯ͕ݹ͗͢ͳ͍͔ ˠ ZVNVQEBUF
• ϑΝΠΞΥʔϧ JQUBCMFTηΩϡϦςΟάϧʔϓ ˠ ༻͍ͯ͠ͳ͍αʔϏε͕ىಈͨ͠··ʹͳ͍ͬͯͳ͍͔ • ϩάϩʔςʔγϣϯ • 44-Խ ˠ ύεϫʔυɾݸਓใΛѻ͏໘͋ͬͨ΄͏͕͍͍ɻ4&0తʹɻ Α͘Θ͔Βͳ͍ɺ໘͍͘͞ͱ͍͏ਓ Ϩϯλϧαʔό͘͠8PSE1SFTTDPNΛར༻͠·͠ΐ͏
Yuzo Related Posts Zero-Day Vulnerability Exploited in the Wild
https://www.wordfence.com/blog/2019/04/yuzo-related-posts-zero-day-vulnerability-exploited-in-the-wild/ ੬ऑੑΛѱ༻͞Ε εΫϦϓτΛຒΊࠐ·ΕΔ Ӿཡऀ͕࣮ߦ͢Δͱ ٗαΠτʹ༠ಋ͞ΕΔ ͦͷޙϓϥάΠϯআ͞ΕΔ ։ൃऀʹ௨͍͔ͳ͍ʂʁ
ͲͪΒٗαΠτʹ ༠ಋ͞ΕΔ 8PSE1SFTTϓϥάΠϯΛૂ͏߈ܸ͕׆ൃԽ͍ͯ͠Δ݅Λ·ͱΊͯΈͨ IUUQTQJZPMPHIBUFOBEJBSZKQFOUSZ
੬ऑੑΛѱ༻͞Ε ҙίʔυ͕࣮ߦ͞ΕΔ Ξοϓσʔτʹͯ ੬ऑੑରԠՄೳ
• αΠτվ͟Μ • όοΫυΞຒΊࠐΈ • ϑΝΠϧআͳͲ • ϑΟογϯάαΠτԽ • ِαΠτͷ༠ಋ ͳΜͰͰ͖Δ Duplicator Update Patches Remote Code Execution Flaw https://www.wordfence.com/blog/2018/09/duplicator-update-patches-remote-code-execution-flaw/
8PSE1SFTTͷࣄނରԠͰΑ͘ݟΔࣄྫ 8FC4IFMMͱ͍͏πʔϧΛαʔόʹஔ͔ΕΔ ͜ΕΛΩοΧέʹαʔόͰͷૢ࡞ΛߦΘΕΔ
मਖ਼ϝϯςφϯε͕Α͘ߦΘΕ͍ͯΔͷΛબͿ ظؒ์ஔ͞Ε͍ͯΔͷཁҙ ੬ऑੑͷ߈ܸํ๏͕·͍ͬͯΔՄೳੑ͋Γ ϓϥάΠϯςʔϚͷϖʔδͰ ͜ͷΑ͏ͳදه͕ग़Δͱཁҙ
όοΫΞοϓେࣄ 8PSE1SFTTͷඪ४తͳϩάڥ͚ͩͰɺ ༗ࣄͷͱ͖ʹඃঢ়گΛѲ͢Δ͜ͱ͕͍͠ ʢݪҼΛಛఆͨ͠͏͑Ͱʣ ฏৗ࣌ʹͯ͠͠·͏ํ͕ૣ͍͜ͱ͋Δ ɾιʔεϑΝΠϧ ɾ%#
%VNQϑΝΠϧ ͷόοΫΞοϓ͕͋Ε ͳΜͱ͔ͳΔ ϓϥάΠϯΛ׆༻͢Δͷ0, ੬ऑੑͱϥΠηϯεʹؾΛ͚ͭͯ
42-ΠϯδΣΫγϣϯ 944ʢΫϩεɾαΠτɾεΫϦϓςΟϯάʣ σʔλϕʔεͷ߈ܸ σʔλϕʔεͷ࿙͍͑ॻ͖͑ͳͲ ୈࡾऀʹΑΔ +BWB4DSJQUͷ࣮ߦ αΠτ๚ऀͷෆਖ਼αΠτͷ༠ಋɺ ϚϧΣΞμϯϩʔυͳͲ
8PSE1SFTT͕ఏڙ͢ΔؔΛ༻͍Δ The WordPress Codex Is Your Friend… $wpdb->prepare ϓϨʔεϗϧμʔΛͬͨΫΤϦͷอޢ wp_kses
esc_html / esc_attr ୈࡾऀʹΑΔ+BWB4DSJQUͷ࣮ߦࢭ How to Prevent File Upload Vulnerabilities https://www.wordfence.com/learn/how-to-prevent-file-upload-vulnerabilities/ current_user_can('upload_files') ݱࡏͷϢʔβ͕ݖݶΛ͔ͭɻ ྫͰΞοϓϩʔυݖݶΛ͔ͭͲ͏͔ wp_check_filetype ϑΝΠϧλΠϓΛνΣοΫ͢Δ .*/&λΠϓΛؚΊͯνΣοΫ͢Δඞཁ͕͋Δ
Q E C S 3 7 K d L E7
o i
8PSE1SFTTαΠτΛߏங͢Δͱ͍͘Β͔͔Δʁ ݟੵΓษڧձͰՁ֨Λग़ͯ͠Έͨ IUUQTUPZBPOFUXQXPSECFODI
8PSE1SFTTαΠτΛߏங͢Δͱ͍͘Β͔͔Δʁ ݟੵΓษڧձͰՁ֨Λग़ͯ͠Έͨ IUUQTUPZBPOFUXQXPSECFODI
8PSE1SFTTαΠτΛߏங͢Δͱ͍͘Β͔͔Δʁ ݟੵΓษڧձͰՁ֨Λग़ͯ͠Έͨ IUUQTUPZBPOFUXQXPSECFODI ¥488,355
ͱϗεςΟϯάձ͔ࣾΒ࿈བྷΛड͚ͨ ͦͷͨΊαΠτఀࢭத αΠτࣗͷϏδωεΠϯύΫτ͍ͨΊ ఀࢭࣗମʹେ͖ͳӨڹͳ͍͕ɺݪҼඃঢ়گΛ֬ೝޙɺ ҆શΛ֬ೝͨ͠͏͑ͰɺͳΔ͘ૣΊʹ࠶։͍ͤͨ͞ 2ηΩϡϦςΟϕϯμͷௐࠪඅ༻͍͘Β͍Ͱ͠ΐ͏
ʮਆށΈͳͱࣃՊʯͷαΠτʹΞΫηε͢Δͱ ෆਖ਼ͳαΠτʹϦμΠϨΫτ͞ΕΔ ఆࣄҊ
ྨ ༰ Ձ֨ ॳظௐࠪ ɾΞΫηεαʔόϩάௐࠪ
ɾϑΝΠϧεΩϟϯ ʢෆਖ਼ͳϑΝΠϧ͕ͳ͍͔ʣ ɾݸਓใ࿙ӮϦεΫఆ = ηΩϡϦςΟஅ ɾηΩϡϦςΟஅ ʢπʔϧஅɺຊஅ͓Αͼ࠶அʣ = Φϓγϣϯ ɾΦϯαΠτใࠂ = ظؒɿ̍िؒఔʢஅΛআ͘ʣ ೲɿௐࠪใࠂॻ ࡞Γ͢ͷͱ ͔ΘΒΜʼʻ
υϝΠϯͱ͔ͱಉ͡Ͱ࠷ޙ·Ͱཧ͢Δ͜ͱΛతͱ͢Δ ϦΞϧͳͩͱ อकαʔϏεΛένΒͳ͍ ཧͰ͖͍ͯͳ͍ΣϒαΠτดͷݕ౼Λ IUUQTXXXJQBHPKQTFDVSJUZDJBESWVMPMEDNTIUNM
• ͓٬༷ɺؔ࿈اۀɺಜிͷઆ໌ • 8"'ͳͲͷηΩϡϦςΟͱͷ৽نܖ • หޢ࢜අ༻ • ࠶ߏஙඅ༻ɺۀऀ࠶બఆ ݕ౼߲ ࣮ࢪ߲͕
͜ͷεϥΠυϑΟΫγϣϯͰ͢ ఘΊͯ࡞Γ͢΄͏͕҆͘Ͷʁ ͓͔͚ۚͯௐࠪͯ݁͠ہݪҼ͕͔Βͳ͔ͬͨ ͏ͪͰى͜ΔͱࢥΘͳ͔ͬͨɻ
өըͷΈ͍ͨ ͦ͏ͳΜͰ͕͢ɺ্ʹઆ໌͢Δͱ͔ͳΜͱ͔Ͱൃ͞ΕΔํ 8PSE1SFTTͷඪ४తͳϩάͩͱಛఆ͍͜͠ͱ͋Γ·͢ ·͊͜ͷεϥΠυϑΟΫγϣϯͰ͔͢Β
• 8PSE1SFTTͷϩάΠϯΛकΔ • ੬ऑੑใΛ֬ೝ͢Δ • ϓϥάΠϯͱςʔϚΛબͿ • 8PSE1SFTTͷؔΛ͏ • ηΩϡϦςΟΘʔ΄͘͠ͳ͍ʁʢ୭͔ʂ
8PSE1SFTTΛ҆શʹ͏ํ๏ʂ Ͱ͖Εָͳͭ
a r u t 9 ? W a r 9
9 9 W s a r = P e r ? = 914 o h P 1 d o h s= 9
45 0 0 0 .