CSPéåãã°ããçŽè§£ãã»ãã¥ãªãã£ãŒãªã¹ã¯ãšAIãšãŒãžã§ã³ããã©ãŠã¶ããã®é²åŸ¡
ä¹
ãã¶ãã«CSPç£èŠã«ã¡ã©ã«æ»æè
ã®åœ±ãæ ã£ãŠãããããèšäºã«ããŸããã
Webãµã€ããéçšããäžã§ãã»ãã¥ãªãã£ã¯é¿ããŠéããªã課é¡ã§ãã
ç¹ã«ãèªååãããã¯ããŒã©ãŒãæªæã®ãããããã«ããæ»æã¯å¹Žã
å·§åŠåããŠããŸãã
æ¬èšäºã§ã¯ãWebã¢ããªã±ãŒã·ã§ã³ã®CSPéåãã°ãåæããããšã§ãæªç¥ã®æ»æãæ€ç¥ããæªç¶ã«é²ãããã®å®è·µçãªé²è¡ã¢ãããŒãã解説ããŸãã
CSPéåã¬ããŒããèªãäŸµå ¥è
Webãµã€ããå
ç¢ã«ããããã®åŒ·åãªé²è¡ææ®µã®äžã€ã«ãã³ã³ãã³ãã»ãã¥ãªãã£ããªã·ãŒïŒCSPïŒããããŸãã
ããã¯ããã©ãŠã¶ã«å¯ŸããŠã©ã®ãœãŒã¹ããã®ã³ã³ãã³ãèªã¿èŸŒã¿ãèš±å¯ããããæç€ºããã»ãã¥ãªãã£æ©èœã§ãã
å€ãã®éçšè
ã¯ãCSPéåãã°ãåãªãèšå®ã®äžåïŒèš±å¯ãªã¹ãæŒãïŒãšããŠåŠçããã¡ã§ãããããã«ã¯Webãµã€ãã«å¯Ÿããæ»æã®çè·¡ãå»ãŸããŠããŸãã
éåžžãGoogle
AdSenseãå€éšAPIãªã©ã®æ£èŠéä¿¡ããããã¯ãããŠãããã°ã¯éä¿¡ç°å¢ã®äžæŽåã§ããããããã«çŽããŠæ»æè
ã仿ããçœ ã®çè·¡ãæ··å
¥ããããšããããŸãã
å·§åŠåããæ»æïŒSVGãã¡ã€ã«ãžã®ã³ãŒãåã蟌ã¿
ä»åã®èª¿æ»ã§æ€ç¥ããããéåžžã«å·§åŠãªæ»æã®å åã«ã€ããŠè§£èª¬ããŸããåæãããã°ã®äžã«ã以äžã®ãããªäžå¯©ãªéä¿¡ãã¿ãŒã³ã確èªãããŸããã
{
"document-uri": "https://example.com/target-page.html",
"blocked-uri": "https://example.com/imgimg/malicious-image.svg",
"directive": "object-src"
}
ãã®ãã°ã®ãã€ã³ãã¯ãdirective ã object-src ã§ãããã〠blocked-uri ãSVG圢åŒã®ç»åãã¡ã€ã«ã§ããç¹ã§ãã
ãããå±éºã§ããçç±
SVGãã¡ã€ã«ã¯XMLããŒã¹ã®åœ¢åŒã§ãããå
éšã«JavaScriptã³ãŒããèšè¿°ããããšãå¯èœã§ãã
æ»æè
ã¯ãäžèŠãããšå®å
šãªã€ã©ã¹ããã¢ã€ã³ã³ã®ããã«èŠããSVGãã¡ã€ã«ã«æªæããã¹ã¯ãªãããä»èŸŒã¿ãããã <object>
ã¿ã°çµç±ã§èªã¿èŸŒãŸããããšã§ããã©ãŠã¶äžã§ã¹ã¯ãªããã匷å¶å®è¡ãããããšããŸãã
ãããWebãµã€ãåŽã§ object-src ã®å¶éãç·©ããŠããã°ããµã€ãé²èЧè ã®ãã©ãŠã¶ãéããŠãã¯ãã¹ãµã€ãã¹ã¯ãªããã£ã³ã°ïŒXSSïŒæ»æãæç«ããŠããŸãå¯èœæ§ããããŸããã
é²è¡ã©ã€ã³ã®å€éå
ãã®ãããªæ¬¡äžä»£åã®æ»æãé²ãããã«ã¯ãåäžã®é²è¡çã§ã¯ãªããå€éåãããæŠç¥ãå¿ èŠã§ãã
峿 Œãªããªã·ãŒèšå®
ãŸãã¯ãCSPã®èšå®ãå¯èœãªéã峿 ŒåããŸãã
ç¹ã«ãä»åã®æ»æã§çããã object-src ã«ã€ããŠã¯ã以äžã®ããã«å®å
šã«ç¡å¹åããããšãåŒ·ãæšå¥šãããŸãã
object-src 'none';
ããã«ããã<object>ã<embed>ã<applet> ã¿ã°ã®å©çšãå®å šã«çŠæ¢ãããSVGçµç±ã®ã¹ã¯ãªããå®è¡ãªã¹ã¯ãç©ççã«å°ã蟌ããããšãã§ããŸãã
ãã°åæã«ããåµå¯ã®ã«ãŠã³ã¿ãŒ
é²è¡ãšã¯æ»æãæ¢ããããšã ãã§ã¯ãããŸããã
ãã°ãç¶ç¶çã«ç£èŠããããšã§ãæ»æè
ãã©ã®ãããªURLãã¿ã°ã詊è¡ããŠããããšããåµå¯ã®ææ³ãçè§£ããããšãã§ããŸãã
- æªç¥ã®æ»æãžã®èŠå
- èš±å¯ãããŠããªããªãœãŒã¹ãžã®ã¢ã¯ã»ã¹ãå³åº§ã«ã¢ã©ãŒããšããŠåãåãããšã§ãæ°ããæ»æææ³ã®ãã¬ã³ããçŽ æ©ãææ¡ã§ããŸãã
- æµã®ç¹å®ãšå¶è£
- æ€ç¥ããæ»æå ã®æ å ±ããã°ã«æ®ããããã«åºã¥ããŠãã¡ã€ã¢ãŠã©ãŒã«ïŒWAFïŒã¬ãã«ã§ã¢ã¯ã»ã¹å ã鮿ããããããã¯TarpitïŒæ³¥æ²ŒïŒãšåŒã°ãããªãœãŒã¹é å»¶æ»æãé©çšããããšã§ãæ»æè ã®èšç®ãªãœãŒã¹ã浪費ãããããšãå¯èœã§ãã
ã€ã³ãã©å±€ã«ããã匷åºãªã¢ã¯ã»ã¹å¶åŸ¡
åœãµã€ãã¯ãã©ãŠã¶åŽïŒCSPïŒã ãã§ãªããã³ã³ãã³ããé
ä¿¡ããã¹ãã¬ãŒãžå±€ã§ãå€éã®é²åŸ¡ãè¡ã£ãŠããŸãã
ç»åãã¡ã€ã«çãæ ŒçŽãããŠããããã¯ãšã³ãã®ã¹ãã¬ãŒãžã¯ãé©åãªæš©é管çãšçµ±äžãããã¢ã¯ã»ã¹å¶åŸ¡ã«ãããå€éšãããã¡ã€ã«ãæžãæããããããäžæ£ãªã³ãŒããæ³šå
¥ããããããããšã®ãªãèªåå°çšã«è¿ãéé¢ç°å¢ãç¶æããŠããŸãã
ããã«ãããããšãæ»æè
ãäžå¯©ãªã¹ã¯ãªãããåã蟌ãã SVGãã¡ã€ã«ãéã蟌ãããšããŠããããã¯ãšã³ãã®æŽåæ§ãä¿ãããŠãããããæªæããã³ãŒããæ°žç¶åããããªã¹ã¯ã¯ç©ççã«æé€ãããŠããŸãã
ããã³ããšã³ãã§ã®æ€ç¥ã¯ããããŸã§æ»æã®äºå
ãæéã§å¯ç¥ããããã®ç¬¬äžé²è¡ç·ã§ãããã€ã³ãã©å±€ãšé£æºããããšã§ãäºéãäžéã®é²åŸ¡äœå¶ã宿ããŠããŸãã
ã»ãã¥ãªãã£ãŒãšã³ãžãã¢ãšããŠã®æ³šæç¹
Webã»ãã¥ãªãã£ã«ãããŠããã¹ãŠã®æ»æãå®å
šã«ç¡ååããããšã¯å°é£ã§ãã
ãããããã°ã詳现ã«åæãããã©ãŠã¶ã®ã»ãã¥ãªãã£æ©èœãæå€§éã«æŽ»çšããããšã§ãæ»æã®æåçãéããªããŒãã«è¿ã¥ããããšã¯å¯èœã§ãã
ä»åã®ããã«ãäžèŠãããšäºçްãªãšã©ãŒãã°ã®äžã«ãéå€§ãªæ»æã®å
åãé ãããŠããããšããããŸãã
ã·ã¹ãã 管çè
ããšã³ãžãã¢ã¯ããã°ããšã©ãŒã®èšé²ãšããŠã ãã§ãªããæŠå Žã®æŠæ³å ±åãšããŠèªãå§¿å¢ãæ±ããããŠããŸãã
ã»ãã¥ãªãã£ãŒã¯åžžã«é²åãç¶ããªããã°ãªããŸããã
CSPããªã·ãŒã宿çã«èŠçŽããæªç¥ã®æ»æã«å¯ŸããŠåžžã«ç¶²ã匵ãç¶ããããšããWebãµã€ããç€ç³ã«ä¿ã€å¯äžã®æ¹æ³ã§ãã
äŸãã°ã次ããã®ã»ã¯ã·ã§ã³ã«ãããããªã¢ããããŒãããåœãµã€ãã¯åžžã«å®æœããŠããŸãã
次äžä»£AIãšãŒãžã§ã³ãã®èœåçåµå¯
Fein Atelier - org ã®ã·ã¹ãã Chronos Archiveã¯ãé«åºŠãªæ¬æ
ãšãããã·æè¡ãé§äœ¿ããæ¬¡äžä»£åAIåéããŒã« Jina.ai ããã³ Scrapling
ãã»ãã¥ãªãã£ãŒãªã¹ã¯ãšããŠå®çŸ©ãããã®é²åŸ¡å®å¹æ§ãæ¬çªç°å¢ã«ãŠæ€èšŒã»å®èšŒããŸããã
ä»åã®ã¢ããããŒãã§ã¯ãåãªãéä¿¡ã®é®æã«çãŸãããæµå¯ŸçãšãŒãžã§ã³ãã®èšç®ãªãœãŒã¹ãç©ççã«æ¯æžããããã€å®è¡ç°å¢ã®ççŸãèªçœãããããšã§ãåºåè
åšã€ã³ããªãžã§ã³ã¹ãžã®éæµãå®äºããŠããŸãã
- Jina.ai Reader å°æ®ºæŠç¥
- èŽåœçãªãªãœãŒã¹ææ: time.sleep(10) ãçšããåçé å»¶åŠçã«ããããããã·ãµãŒãã¹ã®åŸ æ©æéã匷å¶çã«æµªè²»ãããŸãã
- 匷å¶ã¿ã€ã ã¢ãŠã: æå³çã«10ç§éæ²é»ãç¶æããCloudflareãšããžãšã®æ¥ç¶ããã³ã°ã¢ãããããHTTP 524 ã匷èŠããŠAPIã³ã¹ããšã¹ã¬ããã奪ãçµæžçåå©ã§ãã
- Scrapling æ¬æ å¥ãåã
- æªã¿ã¹ã³ã¢ãªã³ã°: navigator.webdriverçã®ãã©ã°ãç°å¢ççŸã环ç©ã¹ã³ã¢åããæ©æ¢°çãªäžèªç¶ããå¯èŠåããŸãã
- å ±åãããã³ã«ã®å·è¡: éŸå€çªç Žã§ãããèªèº«ãè£åãè ã«å€ããåµå¯çªå£ãžäžå¯©ãªæåãå ±åãããŠæ£äœãæŽé²ãããŸãã
- é©å¿åããŒãµãŒã®æªä¹±
- æ¥æ¿ããããã·ã¥ã»ãã©ãã: ãããŒãããã®ãã¹ã«èªåã§ç°ãªãããã·ã¥å€ãä»äžããæµã®é©å¿åŠç¿ãå³åº§ã«ç¡å¹åããŸãã
- åŠç¿ã®æ§é çç Žå£: çœ ã®äœçœ®ãçµ¶ãéãªãæŽæ°ããããšã§ãæµåŽã®åŠç¿ã³ã¹ããå¢å€§ããåéå¹çãç©ççã«ç Žå£ããŸãã
- åºåé²è¡ã·ã°ãã«ïŒéæµïŒ
- Cloudflare AI ãžã®ãã£ãŒãããã¯: ãªãªãžã³ããçºãã403ã·ã°ãã«ãCloudflareãæããåœè©²IPã®ãããã¹ã³ã¢ãå³æåŽ©å£ãããŸãã
- äžçèŠæš¡ã®å¶è£ç¶²: Fein Atelierã§æ€ç¥ããæªæãCloudflareã®å·šå€§ãããã¯ãŒã¯å šäœãžå ±æããä»ãµã€ãã§ãå¶è£ãåŒãèµ·ããé²è¡ã»ã³ãµãŒãšããŠæ©èœããŸãã
ã¢ããããŒãæŠèŠ
Fein Atelier - org ã¯ãJina.ai ã Scrapling
ãšãã£ã次äžä»£ã®ç¥å¥ªè
ã«å¯ŸããŠããå§åçãªæè¡çã»çµæžçæå©ãä¿ã£ãŠããŸãã
çžæãã©ãã»ã©é«åºŠãªæ¬æ
ãè¡ãããšãããã©ãŠã¶ãšã³ãžã³ãåãããšããç©ççå¶çŽããéããããšã¯ã§ããŸããã
ãã®å
ããªæªã¿ãæããTarpitãžãšåŒããã蟌ã¿ãäžçèŠæš¡ã®ãã©ãã¯ãªã¹ããžãšéãåºããŸãã
çµæžçé察称æ§ã«ããæ»æææ¬²ã®æžè¡°ïŒDDoSæ»æã«å¯Ÿããã³ã¹ãå¯Ÿå¹æã®è©Šç®ãšåºå£æŠç¥
åœã·ã¹ãã ã§ã¯ãã€ã³ãã©ã¹ãã©ã¯ãã£ã®ç©ççãªå¶éèšå®ãšãšããžåŽã®åçãã£ã«ã¿ãªã³ã°ãçµã¿åãããããšã§ãæ»æè
ãè²»ãããªãœãŒã¹ãšé²åŸ¡åŽãè² æ
ããã³ã¹ãã®éã«ãçµ¶æçãªãŸã§ã®çµæžçé察称æ§ãæ§ç¯ããŠããŸãã
ããã«ãããæªæãããã©ãã£ãã¯ã®ç¶ç¶ããæ»æè
åŽã«ãšã£ãŠã®çŽç²ãªçµæžçæå€±ãžãšå€æããŸãã
- ç©ççé²åŸ¡ãšã³ã¹ãæŠç¥
- ç©ççãã£ããã³ã°ã«ãã課éççºã®å®å šå°æ®º: ã€ã³ã¹ã¿ã³ã¹æå€§5ãåææ¥ç¶80ã«å¶éãäžãäžã®DDoSã§ããªãœãŒã¹ãæ¯æžãããããããŠãµãŒãã¹ã忢ãããFail-SoftãæŠç¥ã§è³ç£ãä¿è·ã
- çµ¶æçãªã³ã¹ãæ Œå·®: æ»æè ãæ°äžåãæããŠããéå¶åŽã®è² æ ã¯æ°çŸåïŒ1:100ã®çµæžçæå©æ§ïŒã§æžãèšèšã
- é«ãå容æ§èœãšèŠªæ
- äžè¬å©çšè ãžã®é«ãå容æ§: æ»æã¯å³æ Œã«æçµ¶ãã€ã€ã人éã«ã¯æé«å質ã®é²èЧäœéšãæ ä¿ã
- å§åçãªåŠçèœå: 1æéãããæå€§288äžãªã¯ãšã¹ãã蚱容ãSNSã§ã®æ¥æ¿ãªããºã«ãããšããæã£ãŠå¯Ÿå¿å¯èœã
- é«åºŠãªãããã¯ãŒã¯é²è¡
- Cloudflare Tunnelã«ããIPé èœ: ãªãªãžã³ãã€ã³ã¿ãŒãããããå®å šã«é ããããŒãã¹ãã£ã³ãL3/L4æ»æãç¡å¹åã
- L7ãã£ã«ã¿ãªã³ã°ãšManaged Challenge: é«åºŠãªDDoSãããã¯ã·ã§ã³ãåžžæçšŒåãããæªæãããããããšããžã§é§æ£ãããã
ã€ã³ãã©ãã§ãã¯æŠèŠ
åœã·ã¹ãã ã®é²è¡ææ³ã¯ç¡æµãèªç§°ããããšã§ã¯ãããŸããã
æ»æè
ãå€é¡ã®è³ç£ãããã«æšãŠãŠããæšªã§ãéå¶è
ã¯åŸ®ã
ããã³ã¹ãã§æžããšãããçµæžçæåãçžæã«åŒ·ããããšã«ãããŸãã
ãã®å§åçãªã³ã¹ãå¯Ÿå¹æã®å·®ãšã1æéããã288äžPVãšããå§åçãªäœè£ãçè§£ãããšããåççãªæ»æè
ã¯åœãµã€ããé¿ããããã«ãªãã§ãããã
ä»ã®äººã¯ããããããŒãžãèŠãŠããããã§ã