
#99 å ¬è¡šåããæ»æãããŠããPHPã®ç©ŽãAWS WAFã§æ ãŠãŠå¡ããã¢ããããŒããŸã§æ¢ãã話
察象èªè : å®åå±€
ãå ¬è¡šæ¥ã«ã¯ãããæ»æãå§ãŸã£ãŠããã
æšæã®æãAmazonã®è åšã€ã³ããªãžã§ã³ã¹éšéã®å ±åã«ãè¡ã®æ°ãåŒããŸãããPHPã®é倧ãªè匱æ§ãPHP2Shellããçã詊ã¿ããå ¬è¡šã®4æ¥åã®10æ17æ¥ã«ã¯èŠ³æž¬ãããŠããã®ã§ãã
ååã®èšäºã§ç§ã¯ã2024幎ã®åäŸãããšã«ãä¿®æ£ã®2æ¥åŸã«ã¯æ»æãæ¥ãããšæžããŸãããä»åã®ç¶äºã¯2æ¥ã©ãããããŒãã§ãããä¿®æ£çãåœãŠãŠããªãPHPã¯ãããçãããŠããåæã§åããããããŸããã
æåªå ã¯PHPã®æŽæ°ã§ãããã ãããã«ã¯æŽæ°ã§ããªããµãŒããŒããããŸããããã§AWSãå ¬éãããAWS WAFã§é²åºãæžããæ¹æ³ãããå人ã®åŠç¿çšAWSã¢ã«ãŠã³ãã®æ€èšŒç°å¢ã§æ¥ãã§å®è£ ããŸããããããŠãçŠããã倱æããŸããã
ãã®èšäºã§ã¯ãAWS WAFã®éçãšç§ã®å€±æã仿¥äžã«ããæé ãæŽçããŸãã
â»æ¬èšäºã¯2026幎10æ23æ¥æç¹ã®å ¬éæ å ±ã«ããšã¥ããŠããŸãã

1. å ¬è¡šã®4æ¥åãããããçãããŠãã
PHP2Shellã¯ãåååãäžãã2ä»¶ã®è匱æ§ïŒCVE-2026-109618ãšCVE-2026-109619ïŒã®ç·ç§°ã§ãããã°ã€ã³ãªãã§ãå€ãããµãŒããŒäžã®ããã°ã©ã ãåãããããããããããŸãã
èŠã€ããã®ã¯ãAmazonã®ãããŒãããç¶²ãMadPotãã§ããããããŒãããã¯ãæ»æè ããã³ãå¯ããŠæå£ãèšé²ãããããšãã®ãµãŒããŒã®ããšã§ãã10æ17æ¥ãåçšã®å¿ååãããã¯ãŒã¯ããæªçšã®è©Šã¿ãå±ããŠããŸãããæ å ±ããŸã å ¬éå¶éïŒãšã³ããŒãŽïŒäžã®ææã§ããæ»æè ãæ å ±ãåŸãçµè·¯ã¯ãããã£ãŠããŸããã
å ¬è¡šåŸã¯æ°æéã§æ°ããæŠå¿µå®èšŒã³ãŒãïŒæ»æãæç«ããããšã瀺ãã³ãŒãïŒãçŸããããã«AWSã®ã»ã³ãµãŒãžäœ¿ãããŸãããAWSã¯ãåæã®å ¬éæç¹ã§PHP2Shellããã§ã«å®ç°å¢ã§åºãæªçšãããŠãããšæžããŠããŸãã
âŠååãIPAã¯æªçšã確èªããŠããªããä»ã®ãã¡ã«æŽæ°ã§ããããåããç®ããšæžããç§ããã®ãä»ã®ãã¡ãã¯ããšã£ãã«çµãã£ãŠãããã§ãã
AWSã¯ãå ¬éã·ã¹ãã ã®é倧ãªè匱æ§ã«ã¯ãæéåäœãã§å¯Ÿå¿ããããæ±ããŠããŸãã7æ¥ã30æ¥ã®ç¶äºã¯ãããååšããªããšããèŠåã§ããã
çè·¡ã®èª¿æ»ãã10æ17æ¥ãŸã§ããã®ãŒãããæ±ããŠããŸããå ¬è¡šããåã«äŸµå®³ãèµ·ããŠããå¯èœæ§ãããããã§ãã
åºå ž: AWSãAmazon Threat Intelligence ã PHP2Shell ã®è匱æ§å ¬éåã®æªçšã MadPot ã§ç¹å®ãïŒ2026幎10æ22æ¥ïŒ
2. AWS WAFã ãã§ã¯å®ããããªãïŒé²ããããšãšé²ããªãããš
AWS WAFã¯ãWebã¢ããªã®æåã§æªãããªã¯ãšã¹ããæ¢ãããµãŒãã¹ã§ããAWSã¯ä»åã®AWS WAFããå€å±€é²åŸ¡ã®ããã®å¶åŸ¡ããšäœçœ®ã¥ããPHPã®æŽæ°ã®ä»£ããã«ã¯ãªããªããšæèšããŠããŸããIPAã®ç¶å ±ããæ«å®å¯Ÿçãé£ãããã°ãå€éšããã®ã¢ã¯ã»ã¹é®æããµãŒãã¹ã®äžæåæ¢ãŸã§å€æããããæ±ããŠããŸããã
PHP2Shellã¯ãã¢ããªã®ã³ãŒããåãåã«èµ·ããŸããPHPããã¡ã€ã«ã¢ããããŒãçšã®åœ¢åŒïŒmultipart/form-dataïŒã®ãªã¯ãšã¹ããåŠçããæ®µéã§ããAWSã®ã«ãŒã«ã¯æ¬¡ã®4ã€ã§ãã
ã¢ããããŒãé²æã®æ©èœãçããªã¯ãšã¹ããæ¢ããïŒPOSTã§ãPHPã®ã»ãã·ã§ã³IDãšãPHP_SESSION_UPLOAD_PROGRESSããå«ããã®
ã¢ããããŒã圢åŒãã®ãã®ãæ¢ããïŒã¢ããããŒãæ©èœããªãã¢ããªã«éã
倧ããããæ¬æãæ¢ããïŒã¡ã¢ãªäžè¶³ãèµ·ããçµè·¯ãæžãã
åãIPããã®POSTã®é£æãæããïŒã¬ãŒãå¶é
é²ããªããã®ãæèšãããŠããŸãããµã€ãºäžéã®å åŽã§ãæ¬æã®äžã«å°ããªããŒãããããŒã倧éã«äžŠã¹ãã¡ã¢ãªãèšããŸããæå£ã¯èŠããŸãããPHP 8.5ã®ãfatal_error_backtracesãã®ãããªããµãŒããŒåŽã®èšå®ã絡ãçµè·¯ãAWS WAFã®å€åŽã§ãã
âŠã€ãŸããWAFã ãå ¥ããŠãå¯Ÿå¿æžã¿ããšå ±åãããã穎ãéãããŸãŸå®å¿ããããšã«ãªããŸãã
åºå ž: AWSãAWS WAF ã䜿çšãã PHP2Shell RCE èåŒ±æ§ (CVE-2026-109618 ããã³ CVE-2026-109619) ã®ç·©åçãïŒ2026幎10æ22æ¥ïŒ
åºå ž: IPAãPHPã®è匱æ§å¯Ÿçã«ã€ããŠ(CVE-2026-109618ãCVE-2026-109619ïŒPHP2shell)ãïŒ2026幎10æ22æ¥ïŒ
3. çŠã£ãŠãèªåã§ã¢ããããŒããŸã§æ¢ãã
ç§ã®æ€èšŒç°å¢ã¯ãALBïŒApplication Load BalancerïŒéä¿¡ãæ¯ãåããAWSã®å ¥å£ïŒã®åŸãã§WordPressãåãããã®ã§ãã
äžå»ãæ©ãå¡ããªããããšçŠã£ãç§ã¯ããŠã§ãACLïŒAWS WAFã®ã«ãŒã«ããŸãšããèšå®ïŒã«4ã€ã®ã«ãŒã«ãè¶³ããŸãããã¢ããããŒã圢åŒãæ¢ããã«ãŒã«ãŸã§ãæåããBlockïŒé®æïŒã§ãã詊ãã«ç®¡çç»é¢ããç»åãäžãããšããšã©ãŒã§æ¢ãŸããŸãããWordPressã®ã¡ãã£ã¢è¿œå ãããŸãã«multipart/form-dataã ã£ããã§ãã
å ¬éäžã®ãµã€ããªããæ»æè ããå ã«èªåã§æ©èœãæ¢ããŠããããšã«ãªããŸããèçãå·ããŸããã
AWSã®ããã°ã«ã¯ãæ³šææžãããããŸããããã¹ãŠã®ã«ãŒã«ã¯ãŸãCountã¢ãŒãã§å§ããæ£åœãªéä¿¡ã«äžèŽããªããšç¢ºãããŠããBlockã«åãæ¿ãããCountã¯ãæ¢ããã«ãäžèŽããåæ°ãã ããæ°ããã¢ãŒãã§ãã
ããäžã€ã®åéãããæ¬æã®æ€æ»ãµã€ãºã§ããCloudFrontãAPI Gatewayã§ã¯äžéãåŒãäžããããŸãããALBã¯8KBã§åºå®ã8KBè¶ ã®æ¬æãæ¢ããã«ãŒã«ããã®ãŸãŸå ¥ãããšããµã€ãã®ç»åã¢ããããŒããŸã§æ¢ãŸããŸãã
çµå±ãã¢ããããŒã圢åŒã®ã«ãŒã«ã¯å€ããæ¬æãµã€ãºã®ã«ãŒã«ã¯ã¢ããããŒãå ã®ãã¹ã察象å€ã«ããŸããã
åºå ž: AWSãAWS WAF ã䜿çšãã PHP2Shell RCE èåŒ±æ§ (CVE-2026-109618 ããã³ CVE-2026-109619) ã®ç·©åçãïŒ2026幎10æ22æ¥ïŒ
4. 仿¥äžã«ããAWS WAFã®å®è£ æé ïŒCountã§å§ããŠBlockãž
仿¥äžã«çµãããããé çªã§ãã
æ£åžãããïŒPHPã®ããŒãžã§ã³ãåããæ¹ïŒmod_phpãPHP-FPMãªã©ïŒãå ¬éã®å ¥å£ã確èªããŸã
ã¢ããããŒãã®æç¡ã確ãããïŒäœ¿ããªããã¢ããããŒã圢åŒãæ¢ããã«ãŒã«ã¯äœ¿ããŸãã
ãã°ãæå¹ã«ããŠCountã§è¿œå ããïŒãµã³ãã«ãšCloudWatchã§ãæ£åœãªéä¿¡ãäžèŽããªããèŠãŸã
Blockã«åãæ¿ããïŒé²æã®ã«ãŒã«ã¯ããµã€ãºãã¬ãŒãå¶éããå ã«è©äŸ¡ãããŸã
ãã¹ãããïŒPHPSESSIDãCookieãæ¬æã«ãPHP_SESSION_UPLOAD_PROGRESSãæ¬æã«å«ããPOSTãéãã403ãšè©²åœã«ãŒã«ã®ã¡ããªã¯ã¹ã確ãããŸã
ãµãŒããŒåŽãèšå®ããïŒ`session.upload_progress.enabled=0` ã«ããŠå šã¯ãŒã«ãŒãåèµ·åããŸããPHP 8.5ãªã `fatal_error_backtraces=0` ã
ãããŒãžãã«ãŒã«ïŒAWSãçšæããã«ãŒã«ã®ã»ããïŒã«ãã8KBè¶ ã®æ¬æãæ¢ããSizeRestrictions_BODYããããŸããPHPåãã®ã«ãŒã«çŸ€ã«ããCVE-2026-109619ãžã®ä¿è·ãå ãããŸããã
æ€èšŒç°å¢ã®PHPã¯ä¿®æ£çã«æŽæ°ãããã°ã10æ17æ¥ãŸã§ããã®ãŒããŸãããè¿·ã£ãŠããã®ã¯æŽæ°åŸã®ã«ãŒã«ã®æ±ããAWSã¯ãåé€ããããè£å©ãšããŠç¶æããšããŠããŠããŸã 決ããããŠããŸããã
åºå ž: AWSãSecurity Bulletin 2026-143-AWS: PHP web runtimes (CVE-2026-109618 and CVE-2026-109619)ãïŒ2026幎10æ21æ¥ã»ç±³åœå€ªå¹³æŽæéïŒ
ãŸãšã
PHP2Shellã¯å ¬è¡šã®4æ¥åããçãããå ¬è¡šæç¹ã§ãã§ã«åºãæªçšãããŠããŸãããä¿®æ£çãåœãŠãŠããªãPHPã¯ãçãããŠããåæã§ä»æ¥äžã«åããŸã
AWS WAFã¯ãPHPãæŽæ°ãããŸã§ã®ã€ãªãã«ãããŸããã4ã€ã®ã«ãŒã«ã§é²åºã¯æžãããŠãããµãŒããŒåŽã®èšå®ã絡ãçµè·¯ã¯é²ããŸãã
ã«ãŒã«ã¯Countã§å§ããŠããBlockãžãALBã¯æ¬æã®æ€æ»ã8KBåºå®ãªã®ã§ãã¢ããããŒãã®ããã¢ããªã§ã¯å¯Ÿè±¡ã®ãã¹ãçµããŸã
æŽæ°ãçµããä»ãã10æ17æ¥ããã®éã«äœãå ¥ã蟌ãã§ããªãã£ããããã°ãèŠããã³ã«èœã¡çããŸãããã¯ãŒã«ãŒãæ¯åäœãçŽã `pm.max_requests=1` ã¯ãæ§èœãžã®åœ±é¿ãèªããããŸã 詊ããŠããŸããã
æåŸã«âŠã¡ãã£ãšã ã宣äŒã§ãïŒäžç·ã«åã仲éãæ¢ããŠããŸãïŒ
ãã®èšäºãæžããŠããã¢ã¯ã·ã¹NWããŒã åºå ±éšãã¯ãããåœç€Ÿã§ã¯çŸåšãæ°ããã¡ã³ããŒãç©æ¥µçã«æ¡çšããŠããŸãã æå
端ã®AIãããŒãããŒã«ãã¯ã¯ã¯ã¯ãããããªææŠãã§ããç°å¢ãæŽã£ãŠããŸãããŸãã¯ã«ãžã¥ã¢ã«ã«ã話ãããŸãããïŒ æ°åã®æ¹ãããã£ãªã¢æ¡çšã®æ¹ãããã²ãæ°è»œã«ãã§ãã¯ããŠãã ããïŒ
âæ ªåŒäŒç€Ÿã¢ã¯ã·ã¹äººäºæ¡çšæ
åœ(note)
âæ ªåŒäŒç€Ÿã¢ã¯ã·ã¹æ±äººæ
å ±(ç§ã®ä»²éã®åæããã£ã±ããããŸã)
âæ ªåŒäŒç€Ÿã¢ã¯ã·ã¹äžéæ¡çšãµã€ã
âæ ªåŒäŒç€Ÿã¢ã¯ã·ã¹ããŒã ããŒãž
#ã¢ã¯ã·ã¹ã#ã»ãã¥ãªãã£ã#AIã#ãšã³ãžãã¢ã#ã¹ãããŠã¿ãŠãNWããŒã åºå ±éšã#ãŒããã©ã¹ãã#ãµã€ããŒã»ãã¥ãªãã£ã#ITã#AI#è匱æ§#PHP#WordPressã #php2shell