CPU¤ÎÅ굡Ū¼Â¹Ô¤ò°­ÍѤ¹¤ë¡ÖSpectre v2¡×¤Ø¤Î´û¸Âкö¤ò¤¹¤êÈ´¤±¤ë¿·¤¿¤Ê¹¶·â¼êË¡¡ÖTONTOU¡×¤ò¡¢¥Þ¥µ¥Á¥å¡¼¥»¥Ã¥Ä¹©²ÊÂç³Ø(MIT)¥³¥ó¥Ô¥å¡¼¥¿²Ê³Ø¡¦¿Í¹©ÃÎǽ¸¦µæ½ê(CSAIL)¤Î¸¦µæ¼Ô¤¬È¯É½¤·¤Þ¤·¤¿¡£¸¦µæ¥Á¡¼¥à¤ÏTONTOU¤ò»È¤Ã¤ÆLinux¤Î¥«¡¼¥Í¥ë¥á¥â¥ê¤òÆÉ¤ß½Ð¤·¡¢¥Ñ¥¹¥ï¡¼¥É¥Ï¥Ã¥·¥å¤¬Êݸ¤µ¤ì¤ë¡Ö/etc/shadow¡×¤ÎÆâÍÆ¤ò¼èÆÀ¤Ç¤­¤ë¤³¤È¤ò¼Â¾Ú¤·¤Æ¤¤¤Þ¤¹¡£

TONTOU: On the Exploitability of Time-of-Neutralization to Time-of-Use Windows

(PDF¥Õ¥¡¥¤¥ë)https://people.csail.mit.edu/mengjia/data/2026.USENIX.TONTOU.pdf

Spectre¤ÏCPU¤¬½èÍý¤ò¹â®²½¤¹¤ë¤¿¤á¤Ë¹Ô¤¦¡ÖÅ굡Ū¼Â¹Ô¡×¤ò°­ÍѤ¹¤ë¹¶·â¤Ç¤¹¡£CPU¤Ïʬ´ôÀè¤ä¼Â¹Ô·ÐÏ©¤òͽ¬¤·¤ÆÀè²ó¤ê¤ÇÌ¿Îá¤ò¼Â¹Ô¤·¤Þ¤¹¤¬¡¢Í½Â¬¤¬³°¤ì¤Æ½èÍý·ë²Ì¤¬ÇË´þ¤µ¤ì¤Æ¤â¥­¥ã¥Ã¥·¥å¤Ê¤É¤Ëº¯Àפ¬»Ä¤ë¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£¹¶·â¼Ô¤Ï»Ä¤Ã¤¿º¯ÀפòʬÀϤ¹¤ë¤³¤È¤Ç¡¢ËÜÍ襢¥¯¥»¥¹¤Ç¤­¤Ê¤¤¾ðÊó¤ò¿ä¬¤Ç¤­¤Þ¤¹¡£

Spectre¤Î°ì¼ï¤Ç¤¢¤ëSpectre variant 2(Spectre v2)¤Ç¤Ï¡¢CPU¤¬Ê¬´ôÀè¤òͽ¬¤¹¤ë»ÅÁȤߤò¸í³Ø½¬¤µ¤»¡¢ÈëÌ©¾ðÊó¤ò°·¤¦½èÍý¤ØÅ굡Ū¤ËͶƳ¤·¤Þ¤¹¡£Intel¤äAMD¤ÏÂкö¤È¤·¤Æ¡¢Ê¬´ôͽ¬¤Ë»È¤ï¤ì¤ëÆâÉô¾õÂÖ¤ò¾Ãµî¤·¤¿¤ê¹¶·â¼Ô¤«¤é³ÖÎ¥¤·¤¿¤ê¤¹¤ë¡Öneutralization(̵³²²½)¡×¤Ê¤É¤Î»ÅÁȤߤòƳÆþ¤·¤Æ¤­¤Þ¤·¤¿¡£

°Ê²¼¤ÏÏÀʸ¤¬¼¨¤·¤¿Ìµ³²²½½èÍý¤ÎÎã¤Ç¤¹¡£¾åÃʤΡÖEntry neutralization¡×¤Ï¥«¡¼¥Í¥ë¤ØÆþ¤Ã¤¿Ä¾¸å¤Ë̵³²²½¤¹¤ëÊý¼°¡¢²¼ÃʤΡÖIn-place neutralization¡×¤ÏÊݸ¤¿¤¤Ê¬´ô¤ÎľÁ°¤Ç̵³²²½¤¹¤ëÊý¼°¤òɽ¤·¤Æ¤¤¤Þ¤¹¡£¤¤¤º¤ì¤â´í¸±¤Êͽ¬¾ðÊó¤ò̵³²²½¤·¤Æ¤«¤éʬ´ô¤ò¼Â¹Ô¤¹¤ë¤³¤È¤Ç¡¢Spectre v2¤Ë¤è¤ë¸í¤Ã¤¿Å굡Ū¼Â¹Ô¤òËɤ°ÁÀ¤¤¤¬¤¢¤ê¤Þ¤¹¡£



¤·¤«¤·¸¦µæ¥Á¡¼¥à¤Ï¡¢Ìµ³²²½½èÍý¤¬½ª¤ï¤Ã¤Æ¤«¤é¼ÂºÝ¤Ëʬ´ôͽ¬¤¬ÍøÍѤµ¤ì¤ë¤Þ¤Ç¤Ë¤ï¤º¤«¤Ê»þ´Öº¹¤¬¤¢¤ë¤³¤È¤ËÃåÌܤ·¤Þ¤·¤¿¡£¡ÖTime-of-Neutralization to Time-of-Use¡×¤ÎƬʸ»ú¤ò¼è¤Ã¤¿¡ÖTONTOU¡×¤Ï¡¢Ìµ³²²½¤µ¤ì¤¿¸å¤Îʬ´ôͽ¬´ï¤ØºÆ¤Ó¹¶·â¼Ô¤ËÅÔ¹ç¤Î¤¤¤¤¾ðÊó¤òº®Æþ¤µ¤»¤ë¼êË¡¤Ç¤¹¡£

ÏÀʸ¤Î³µÇ°¿Þ¤Ï°Ê²¼¤ÎÄ̤ꡣ­¡¤Þ¤º¥«¡¼¥Í¥ë¦¤Çʬ´ôͽ¬´ï¤¬Ìµ³²²½¤µ¤ì¤Þ¤¹¡£­¢¼¡¤Ë¹¶·â¼Ô¤¬Èﳲ¦¤Î½èÍý¤òTraining gadget¤ØÍ¶Æ³¤·¡¢­£Training gadget¤Ë¤è¤Ã¤ÆÊ¬´ôͽ¬´ï¤òºÆ¤Ó±øÀ÷¡£­¤ºÇ½ªÅª¤Ë±øÀ÷¤µ¤ì¤¿Í½Â¬¾õÂÖ¤òÊݸîÂоݤÎʬ´ô¤Ë»È¤ï¤»¡¢Disclosure gadget¤ØÅ굡Ū¼Â¹Ô¤òͶƳ¤·¤ÆÈëÌ©¾ðÊó¤òϳ¤¨¤¤¤µ¤»¤Þ¤¹¡£¤Ä¤Þ¤ê¡¢Âкö¤Ë¤è¤Ã¤Æ°ìÅÙ¤­¤ì¤¤¤Ë¤µ¤ì¤¿Ê¬´ôͽ¬´ï¤òÍøÍÑľÁ°¤ËºÆ¤Ó±øÀ÷¤¹¤ë¤È¤¤¤¦¤ï¤±¤Ç¤¹¡£



TONTOU¤Ç¤ÏÁÀ¤Ã¤¿¥¿¥¤¥ß¥ó¥°¤Ç³ä¤ê¹þ¤ß¤òȯÀ¸¤µ¤»¤ë¡ÖInterrupt Injection¡×¤âÍøÍѤ·¤Þ¤¹¡£°ìÈ̥桼¥¶¡¼¸¢¸Â¤Î¥×¥í¥°¥é¥à¤«¤é¥¿¥¤¥Þ¡¼¤òÀßÄꤷ¡¢¥«¡¼¥Í¥ë¤Î½èÍýÅÓÃæ¤Ç³ä¤ê¹þ¤ß¤òµ¯¤³¤¹¤³¤È¤Ç¡¢Ê¬´ôͽ¬´ï¤ØºÆÅٱƶÁ¤òÍ¿¤¨¤é¤ì¤ë¾ì¹ç¤¬¤¢¤ë¤È¤Î¤³¤È¡£

¸¦µæ¥Á¡¼¥à¤ÏIntel¤ÎCascade Lake Refresh¤ÈArrow Lake¡¢AMD¤ÎZen 2¤ÈZen 4¤ÇTONTOU¤ò¸¡¾Ú¤·¤Þ¤·¤¿¡£Intel´Ä¶­¤Ç¤Ï°ìÉô¤Îʬ´ôͽ¬µ¡¹½¤òºÆ³Ø½¬¤µ¤»¤ë¤³¤È¤ËÀ®¸ù¤·¡¢AMD Zen 2¤Ç¤ÏLinux¤¬ºÎÍѤ¹¤ëSpectre v2Âкö¡ÖSafe RET¡×¤ò¤¹¤êÈ´¤±¤é¤ì¤Þ¤·¤¿¡£°ìÊý¤ÇƱ¤¸ÊýË¡¤Ë¤è¤ëAMD Zen 4¤Ç¤Î¸íʬ´ô¤Ï³Îǧ¤µ¤ì¤Ê¤«¤Ã¤¿¤È¤·¤Æ¤¤¤Þ¤¹¡£

²¼¿Þ¤Ï̵³²²½¸å¤«¤éʬ´ô¤Þ¤Ç¤Î¡Öpost-neutralization window¡×¤ÎÂ礭¤µ¤òÊѲ½¤µ¤»¡¢¹¶·â¤ËÍøÍѤǤ­¤ë¥¿¥¤¥ß¥ó¥°¤Ç³ä¤ê¹þ¤ß¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤òÄ´¤Ù¤¿·ë²Ì¡£Zen 2¡¢Zen 4¡¢Cascade Lake Refresh¡¢Arrow Lake¤ÇÄøÅ٤ϰۤʤë¤â¤Î¤Î¡¢Ìµ³²²½½èÍý¤Èʬ´ô¤Î´Ö¤Ë³ä¤ê¹þ¤ß¤òº¹¤·¹þ¤á¤ë;ÃϤ¬Â¸ºß¤¹¤ë¤³¤È¤¬³Îǧ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£



¤µ¤é¤ËAMD Ryzen 7 4700G¤ò»È¤Ã¤¿¼Â¸³¤Ç¤Ï¡¢Linux¤Î¥«¡¼¥Í¥ë¥á¥â¥ê¤òÊ¿¶ÑËèÉÃ5.47¥Ð¥¤¥È¡¢Ê¿¶Ñ91.97¡ó¤ÎÀºÅÙ¤ÇÆÉ¤ß½Ð¤¹¤³¤È¤ËÀ®¸ù¤·¤Þ¤·¤¿¡£¡Ö/etc/shadow¡×¤Î°ÌÃÖ¤òõ¤¹¼Â¸³¤Ç¤Ï10²óÃæ5²ó¤ÇÆÃÄê¤ËÀ®¸ù¤·¡¢Ê¿¶Ñ½êÍ×»þ´Ö¤Ï18ʬ¤À¤Ã¤¿¤È¤Î¤³¤È¡£¤Ê¤ª¡¢¹¶·â¤Ë¤ÏÂоݥޥ·¥ó¾å¤Ç°ìÈ̥桼¥¶¡¼¸¢¸Â¤Î¥³¡¼¥É¤ò¼Â¹Ô¤Ç¤­¤ë¤³¤È¤¬Á°Äó¤È¤Ê¤ê¤Þ¤¹¡£

¸¦µæ¥Á¡¼¥à¤ÏÂкö¤È¤·¤Æ¡¢³ä¤ê¹þ¤ß½èÍý¤«¤éÌá¤ëºÝ¤Ëʬ´ôͽ¬´ï¤ò²þ¤á¤Æ°ÂÁ´¤Ê¾õÂ֤ˤ¹¤ëÊýË¡¤Ê¤É¤òµó¤²¤Æ¤¤¤Þ¤¹¡£AMD¤â±Æ¶ÁÈϰϤò¸øÉ½¤·¤Æ¤ª¤ê¡¢ÏÀʸ¤Ç¤ÏLinux¥«¡¼¥Í¥ë¦¤Ç¤Î½¤Àµ¤¬·×²è¤µ¤ì¤Æ¤¤¤ë¤ÈÀâÌÀ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¸¦µæ¥Á¡¼¥à¤ÏTONTOU¤Ë¤è¤Ã¤Æ¡¢½¾Íè¤Ï°ÂÁ´¤È¹Í¤¨¤é¤ì¤Æ¤¤¤¿¡ÖSpectre v2Âкö¤ò¼Â¹Ô¤·¤¿¸å¡×¤â¹¶·âÂоݤˤʤêÆÀ¤ë¤³¤È¤¬¼¨¤µ¤ì¤¿¤È½Ò¤Ù¤Æ¤¤¤Þ¤¹¡£