DEF CON 33ã§ã¯ãé²èЧããŒãžã«ã€ã³ã¿ãŒãã§ãŒã¹èŠçŽ ãæ¿å ¥ãããã©ãŠã¶ã¢ããªã³ã«å¯Ÿããæ»æææ³ãçºè¡šãããŸããããã¹ã¯ãŒããããŒãžã£ãŒæ©èœãåããã¢ããªã³ã«ãã®æ»æãé©çšãããšãèªèšŒãã©ã¡ãŒã¿ãã¯ã¬ãžããã«ãŒããã©ã¡ãŒã¿ãå人ããŒã¿ãäºèŠçŽ èªèšŒçšã®ã¯ã³ã¿ã€ã ãã¹ã¯ãŒããªã©ããã¹ã¯ãŒããããŒãžã£ãŒã«ä¿åãããŠããæ å ±ãæŒæŽ©ããå¯èœæ§ããããŸãããã®åé¡ã¯ã1PasswordãBitwardenãLastPassãKeePassXC-BrowserãNordPassãProtonPassãKeeperãªã©ããã¹ã察象ãšãªã£ããã¹ãŠã®ãã¹ã¯ãŒããããŒãžã£ãŒã«åœ±é¿ããŸãã
ãã®æ»æææ³ã¯ããã©ãŠã¶ã¢ããªã³ãèªåãã¹ã¯ãŒã眮æãèŠæ±ãããã€ã¢ãã°ã衚瀺ãããããŒãžã«çŽæ¥æ¿å ¥ãããã®èŠçŽ ãããŒãžã®DOMïŒããã¥ã¡ã³ããªããžã§ã¯ãã¢ãã«ïŒã«çµ±åãããšããç¹ã«åºã¥ããŠããŸããæ»æè ããäŸãã°ãµã€ãã®XSSè匱æ§ãæªçšãããªã©ããŠãããŒãžäžã§JavaScriptã³ãŒããå®è¡ã§ããå Žåããã©ãŠã¶ã¢ããªã³ã«ãã£ãŠæ¿å ¥ããããã®ãå«ããDOMå ã®ãã¹ãŠã®èŠçŽ ãæäœã§ããŸãã
ãšãããã確èªãã€ã¢ãã°ãéæã«ãããã®ãã€ã¢ãã°å ã®ãã¿ã³ããæ»æè ãäœæããåœã®ãã€ã¢ãã°ã®ãã¿ã³ãšç©ºéçã«çµã¿åãããŠããŠãŒã¶ãŒã«ã¯ãªãã¯ãä¿ããŠããŸããšããææ³ãèããããŸãããã®ãããªåœã®ãã€ã¢ãã°ã¯ãCookieãåºåãããŒããã£ããã£ä»ããã©ãŒã ã®æäœèš±å¯ãæ±ããåœã®ãªã¯ãšã¹ããªã©ã§ããéæãªãã¹ã¯ãŒããããŒãžã£ãŒãã€ã¢ãã°ã®äžã«åœã®ãã€ã¢ãã°ãé 眮ããç»é¢äžã®ãã¿ã³ã®äœçœ®ãçµã¿åãããããšã§ããŠãŒã¶ãŒã¯åºåä»ãã®ãŠã£ã³ããŠãéãããã¿ã³ãªã©ãã¯ãªãã¯ãããšåéãããŠããã«ãããããããå®éã«ã¯ãã¹ã¯ãŒããããŒãžã£ãŒãã€ã¢ãã°å ã®èªèšŒãã©ã¡ãŒã¿ã確èªãããã¿ã³ãã¯ãªãã¯ããããã«ä»åããããšãã§ããŸãã

æ»æã¯æ¬¡ã®æé ã§è¡ãããŸãã
- ã¯ãªãã¯ãä¿ããããªéªéãªèŠçŽ ãããŒãžäžã«äœæããŸãã
- ãã°ã€ã³ãŸãã¯å人ããŒã¿ã®å ¥åçšã® Web ãã©ãŒã ãããŒãžã«è¿œå ããŸãã
- Web ãã©ãŒã ã®éæåºŠãèšå®ããŸã (CSS ã§ã¯ãopacity: 0.001ã)ã
- focus() ã¡ãœããã䜿çšããŠãã©ãŒã å ã®ãã£ãŒã«ãã«å ¥åãã©ãŒã«ã¹ãèšå®ãããã¹ã¯ãŒã ãããŒãžã£ãŒã®èªåå ¥åãã€ã¢ãã°ãã¢ã¯ãã£ãã«ããŸãã
- DOM ã«è¡šç€ºããããã¹ã¯ãŒã ãããŒãžã£ãŒ ãã€ã¢ãã°ãèŠã€ããŠãéæã«èšå®ããŸãã
- ãŠãŒã¶ãŒãããŒãžäžã®ç®ã«èŠããäŸµå ¥çãªèŠçŽ ãã¯ãªãã¯ããã®ãåŸ ã¡ãŸããç®ã«èŠããèŠçŽ ãšç®ã«èŠããªãèŠçŽ ãé©åã«çµã¿åããããŠããã°ãéæãªãã€ã¢ãã°ã®ãã¿ã³ãã¯ãªãã¯ããããã¹ã¯ãŒã ãããŒãžã£ãŒã䜿çšããŠãã£ãŒã«ãã«å ¥åãããŸãã
- å®äºãã Web ãã©ãŒã ããããŒã¿ãæœåºããæ»æè ã®ãµãŒããŒã«éä¿¡ããŸãã
ãã¹ã¯ãŒããããŒãžã£ãŒã«ãããèªèšŒãã©ã¡ãŒã¿ã®èªåå ¥åã¯ããµã€ããéããéã«ãããã®ãã©ã¡ãŒã¿ãä¿åãããŠããå Žåã«ã®ã¿æå¹ã«ãªããããæ»æã仿ããã«ã¯ãæ»æå¯Ÿè±¡ãµã€ããŸãã¯ãã®ãµããã¡ã€ã³ã§JavaScriptã³ãŒããå®è¡ã§ããå¿ èŠããããŸããã€ãŸããæ»æã仿ããã«ã¯ãæ»æå¯Ÿè±¡ãµã€ããšåããã¡ã€ã³ã®ãµããã¡ã€ã³ãååŸãããããŠãŒã¶ãŒã«è¡šç€ºãããã³ã³ãã³ãã«ã³ãŒããæ¿å ¥ã§ããXSSè匱æ§ããµã€ãäžã§èŠã€ããå¿ èŠããããŸãã
å€ãã®ãŠãŒã¶ãŒãããã°ã€ã³ãã©ã¡ãŒã¿ã®ä¿åãšäºèŠçŽ èªèšŒçšã®ã¯ã³ã¿ã€ã ãã¹ã¯ãŒãã®çæãåããã¹ã¯ãŒããããŒãžã£ãŒã§è¡ã£ãŠããããšãææãããŠããŸããããã«ãããã¯ã³ã¿ã€ã ãã¹ã¯ãŒãã®èªåå ¥åæã«ãæ€èšå¯Ÿè±¡ã®æ»æææ³ã䜿çšãããå¯èœæ§ããããŸããäŸãšããŠãXSSè匱æ§ãå«ããŠã§ããµã€ãissuetracker.google.comãžã®æ»æã瀺ããŸãããã°ã€ã³ãã©ã¡ãŒã¿ãšäºèŠçŽ èªèšŒçšã®ã³ãŒããååŸããã«ã¯ããŠãŒã¶ãŒã«XSSè匱æ§ãæªçšãããªã³ã¯ãéä¿¡ããæ¶ç©ºã®äŸµå ¥åãªã¯ãšã¹ãïŒCookieã®åŠçèš±å¯ãããŒãœãã©ã€ãºã®èš±å¯ããã©ã€ãã·ãŒããªã·ãŒãžã®åæïŒãåœè£ ããŠ3åã®ã¯ãªãã¯ããããã ãã§ååã§ãã
XSS è匱æ§ã®ãããµã€ãã«å ããŠããµããã¡ã€ã³ãåžæè ã«æäŸãããµãŒãã¹ã«å¯ŸããŠãæ»æãå®è¡ãããå ŽåããããŸããããã©ã«ãèšå®ã®ã»ãšãã©ã®ãã¹ã¯ãŒã ãããŒãžã£ãŒã¯ãã¡ã€ã³ ãã¡ã€ã³ã ãã§ãªããµããã¡ã€ã³ã®ãã°ã€ã³ ãã©ã¡ãŒã¿ãå ¥åããŸãã
ãã®æ»æã¯ããã¹ã¯ãŒããããŒãžã£ãŒã«ä¿åãããŠãããŠãŒã¶ãŒã®å人æ å ±ãã¯ã¬ãžããã«ãŒãæ å ±ãç¹å®ããããã«ãå©çšãããŸããããããããããããŒã¿ãæŒæŽ©ãããã«ã¯ãå¥ã®ãµã€ãã®ã³ã³ããã¹ãã§JavaScriptã³ãŒããå®è¡ããå¿ èŠã¯ãªãã被害è ãæ»æè ã®ãµã€ãã®ããŒãžã«èªå°ããã ãã§ååã§ããå人æ å ±ã®å ŽåããŠã§ããã©ãŒã ã¯ãå人æ å ±ã®çš®é¡ïŒäœæãã¯ã¬ãžããã«ãŒãçªå·ãæ°åïŒã«åºã¥ããŠå ¥åãããå人æ å ±ã¯åç §ãããŸããã ãã¡ã€ã³æãå±éºãªã¿ã€ãã®æŒæŽ©ã¯ã¯ã¬ãžããã«ãŒãããŒã¿ã§ãããã¹ã¯ãŒã ãããŒãžã£ãŒã«ã¯ã«ãŒãçªå·ã ãã§ãªããæå¹æéã確èªã³ãŒããå«ãŸããŠããããã§ãã
ãã®åé¡ãç¹å®ããç ç©¶è ã¯ããã¹ã¯ãŒããããŒãžã£ãŒæ©èœãåãã11çš®é¡ã®ãã©ãŠã¶ã¢ããªã³ïŒåèš39.7äžå°ã®ã¢ã¯ãã£ãã€ã³ã¹ããŒã«ïŒããã¹ãããŸãããããããããã®çš®ã®æ»æã«å¯ŸããŠè匱ã§ãããäžéšã®ã¡ãŒã«ãŒã¯ãè¿åçãªæ¹æ³ã§æ»æããããã¯ããã¢ããããŒãïŒNordPass 5.13.24ãProtonPass 1.31.6ãRoboForm 9.7.6ãDashlane 6.2531.1ãKeeper 17.2.0ãEnpass 6.11.6ãBitwarden 2025.8.1ïŒããªãªãŒã¹ããŸãããä»ã®ã¢ããªã³ïŒKeePassXC-Browserã1PasswordãiCloud PasswordsãEnpassãLastPassãLogMeOnceïŒã«ã€ããŠã¯ãçŸæç¹ã§ã¯ä¿®æ£ããã°ã©ã ããªãªãŒã¹ãããŠããŸãããåçš®ãã¹ã¯ãŒããããŒãžã£ãŒã®è匱æ§ã確èªããããã®ãã¹ãããŒãžãå ¬éãããŠããŸãã


1Password éçºè ã¯ããã®è匱æ§ã¯æ ¹æ¬çãªãã®ã§ãããç¹å®ã®ãã©ãŠã¶ã¢ããªã³ã«çŽæ¥é¢é£ãããã®ã§ã¯ãªããããã¢ããªã³åŽã§è匱æ§ãè§£æ¶ããããšããŠãåã ã®æ»æãã¯ãã«ããããã¯ããã ãã§ãåé¡ãã®ãã®ãè§£æ¶ããããšã¯ã§ããªããšããŠããŸãããã®åé¡ã¯ãã©ãŠã¶åŽã§è§£æ±ºãããããã£ãŒã«ãã®èªåå ¥ååã«å¥é確èªãæ±ããããšã§è§£æ±ºããå¿ èŠããããŸãã1Password ã¯æ¢ã«æ¯æããã©ã¡ãŒã¿ã®èªåå ¥ååã«ç¢ºèªãæ±ããæ©èœããµããŒãããŠãããæ¬¡æãªãªãŒã¹ã§ã¯ãèªåå ¥åããããã¹ãŠã®çš®é¡ã®ããŒã¿ã«å¯ŸããŠç¢ºèªãæ±ãããªãã·ã§ã³ã远å ãããäºå®ã§ãïŒãã ããå©äŸ¿æ§ãäœäžããããããã®ãªãã·ã§ã³ã¯ããã©ã«ãã§ã¯æå¹åãããŸããïŒã
ãã®ç ç©¶ã§ææ¡ãããŠããã»ãã¥ãªãã£å¯Ÿçã«ã¯ãMutationObserver APIãçšããŠããŒãžã«æ¿å ¥ãããèŠçŽ ã®ã¹ã¿ã€ã«å€æŽã远跡ããããšãShadow DOMããclosedãã¢ãŒãã§äœ¿çšããŠå€æŽããããã¯ããããšãèŠçŽ ã®éæåºŠãç£èŠããããšãPopover APIãçšããŠãã€ã¢ãã°ã衚瀺ããããšãã¬ã€ã€ãŒã®éãªãããã§ãã¯ããããšããã¹ã¯ãŒããããŒãžã£ãŒãã€ã¢ãã°è¡šç€ºäžã«ãã¹ãŠã®ãããŒãã£ã³ã°èŠçŽ ã®ãã€ã³ã¿ã€ãã³ãåŠçïŒpointer-events:noneïŒãäžæçã«ç¡å¹åããããšãªã©ãå«ãŸããŸãããã ããèšè¿°ãããŠããã¯ã©ã¹ãå®å šã«ãããã¯ããã«ã¯ã æ»æãé²ãããã«ãã©ãŠã¶ã¬ãã«ã§ä¿è·ããããã®å¥ã®APIãå®è£ ããããšããå§ãããŸãã ã¯ãªãã¯ãžã£ããã³ã°ããä¿è·ããŸãã
Chromiumãšã³ãžã³ããŒã¹ã®ãã©ãŠã¶ã«ãããæ®éçãªä¿è·æ¹æ³ãšããŠãã¢ããªã³ã®ãµã€ããžã®ã¢ã¯ã»ã¹ç¢ºèªã¢ãŒãïŒã¢ããªã³èšå® â ããµã€ãã¢ã¯ã»ã¹ã â ãã¯ãªãã¯æãïŒãæå¹ã«ããããšãæšå¥šãããŠããŸããããã«ãããã¢ãã¬ã¹ããŒã®ããããã«ã®å³åŽã«ããã¢ã€ã³ã³ãã¯ãªãã¯ããåŸã«ã®ã¿ãã¢ããªã³ããµã€ãã«ã¢ã¯ã»ã¹ã§ããããã«ãªããŸãããã©ãŒã ã®èªåå
¥åãç¡å¹ã«ããã¯ãªããããŒãçµç±ã§ãã¹ã¯ãŒããæåã§ã³ããŒããããšãåé¿çãšããŠæããããŠããŸãããå
±æã¯ãªããããŒãããã®ããŒã¿æŒæŽ©ãããã£ãã·ã³ã°æ»æã«æ°ä»ããªããªã¹ã¯ãçããŸãã
åºæïŒ ãªãŒãã³ããã.ru
