8827Ì«Ñô¼¯ÍÅADLab£ºCPU¡°¹í»ê¡±·ì϶·ÖÎöÓëÑéÖ¤
°ä²¼¹¦·ò 2018-01-081 ǰ ÑÔ
½üÈÕ£¬£¬£¬£¬£¬£¬CPUµ×²ã·ì϶°²È«ÊÂÎñÒѾ²¨¼°È«ÇòÏÕЩËùÓеÄÊÖ»ú¡¢µçÄÔ¡¢ÔÆÍÆËã²úÆ·¡£¡£¡£¡£¡£¡£Õâ´ÎµÄ·ì϶±ðÀëÆðÃûMeltdown(±ÀÀ£)ºÍSpectre(¹í»ê)¡£¡£¡£¡£¡£¡£ÕâÁ½¸ö·ì϶¿ÉÄÜ»áÔì³ÉÊܱ£»£»£»£»£»¤µÄÃÜÂë¡¢Ãô¸ÐÐÅϢй¶¡£¡£¡£¡£¡£¡£
8827Ì«Ñô¼¯ÍÅADLabÔÚÈý´ó²Ù×÷ϵͳ(windows¡¢macos¡¢linux)£¬£¬£¬£¬£¬£¬ÑéÖ¤É豸£¨Ô̺¬Ó×ÎǪ̀ʽµçÄÔ¡¢±Ê¼Ç±¾¼°·þÎñÆ÷É豸£©ÉÏʵÏÖÁË¡°¹í»ê¡±·ì϶ÑéÖ¤¹¤×÷¡£¡£¡£¡£¡£¡£
±¾ÎijÁµã¶Ô¡°¹í»ê¡±·ì϶µÄ·ì϶µÄµÀÀí¡¢·ì϶ÑéÖ¤¡¢·çÏÕ¼°·À»¤½øÐнéÉÜ¡£¡£¡£¡£¡£¡£
2 ·ì϶µÀÀí
ÓÉÓÚ¸ßËÙCPUºÍµÍËÙÄÚ´æÖ®¼äµÄI/OÆ¿¾±£¬£¬£¬£¬£¬£¬ÏÖ´ú´¦ÖÃÆ÷»áÀûÓÃÁ÷Ë®Ïß¼¼ÊõÌá¸ß»úÄÜ£¬£¬£¬£¬£¬£¬Í¨¹ýÔ¤²âÏÂÒ»²½ÒªÖ´ÐеÄÖ¸Áî²¢Ìáǰ°ÑÕâЩָÁî·ÅÔÚÁ÷Ë®ÏßÉÏ£¬£¬£¬£¬£¬£¬ÒÔÌá¸ßËÙ¶È¡£¡£¡£¡£¡£¡£µ«ÊÇÈôÊÇ·¨Ê½ÓзÖÖ§Ìø×ªµÄ»°£¬£¬£¬£¬£¬£¬ÕâЩÁ÷Ë®ÏßÉϵÄԤȡµÄÖ¸ÁȫÊý×÷·Ï, CPU±ØÒªÇå¿ÕËùÓеÄÖ¸Áî, ¶øºó¼ÓÔØÉäÖеØÖ·µÄÖ¸Á£¬£¬£¬£¬£¬ÔÙ½«ºóÐøÖ¸Áî¼ÓÔØÔËÐС£¡£¡£¡£¡£¡£
ÈôÊÇ·¨Ê½ÓÐ10¸ö·ÖÖ§µÄ»°£¬£¬£¬£¬£¬£¬ÄÇôÁ÷Ë®ÏßÉÏԤȡµÄÖ¸ÁîÖ»Óкܵ͵ĸÅÂÊ£¨1/10£©»áÉäÖС£¡£¡£¡£¡£¡£Òò¶øCPU±ØÒªÒ»ÖÖÔ¤²â¼¼ÊõÀ´Ìá¸ßÁ÷Ë®ÏßԤȡָÁîµÄÉäÖÐÂÊ£¬£¬£¬£¬£¬£¬ÕâÒ»¼¼Êõ±»³ÆÎªCPU·ÖÖ§Ô¤²â¼¼Êõ¡£¡£¡£¡£¡£¡£
CPU·ÖÖ§Ô¤²â¼¼ÊõÓÉCPU¶Ôº¹ÇàÖ¸ÁîµÄÖ´ÐÐÇé¿ö½øÐж¯Ì¬·ÖÎöºÍ½ø½¨£¬£¬£¬£¬£¬£¬²¢½øÐÐÔ¤²â¡£¡£¡£¡£¡£¡£Ôڸ߻úÄÜÍÆËã»úÖУ¬£¬£¬£¬£¬£¬CPU·ÖÖ§Ô¤²âµÄ³É¹¦¸ÅÂÊÔÚ95%~98%Ö®¼ä£¬£¬£¬£¬£¬£¬Õâ´ó´óÌá¸ßÁËÍÆËã»úµÄÔËËã»úÄÜ¡£¡£¡£¡£¡£¡£Intel¹«Ë¾ÔÚ1995Äê·ÉԾϵÁÐCPUÆð¾ÍÒѾѡȡCPUÁ÷Ë®Ïß¼°·ÖÖ§Ô¤²â¼¼Êõ£¬£¬£¬£¬£¬£¬Ä¿Ç°Ö÷Á÷µÄ¸ß»úÄÜCPU¶¼Ñ¡È¡ÕâЩ¼¼Êõ¡£¡£¡£¡£¡£¡£
ÈôÊÇCPU·ÖÖ§Ô¤²âµÄÖ´ÐÐõè¾¶²»ÕýÈ·£¬£¬£¬£¬£¬£¬ÆäºóÔÚÁ÷Ë®ÏßÉÏÎóÅв¢Ô¤È¡µÄÖ¸Áî×îÖÕ²¢²»»áÏÖʵִÐУ¬£¬£¬£¬£¬£¬µ«ÊÇΪÁËÌá¸ß»úÄܵıØÒª£¬£¬£¬£¬£¬£¬Á÷Ë®ÏßÖ´ÐÐʵÏÖºó²¢Ã»ÓжÔËùÓÐÔ¤ÅÐÖ´ÐеÄÏÖ³¡×öÆëÈ«»Ø¹ö£¬£¬£¬£¬£¬£¬TLB»ò»º´æ×´Ì¬²¢Ã»Óб»»Ø¹ö£¬£¬£¬£¬£¬£¬Õâ¾ÍÒýÈëÁ˰²È«ÎÊÌâ¡£¡£¡£¡£¡£¡£
ÔÚÍÆËã»úϵͳÖлº´æÊÇCPUÔÚÖ´Ðз¨Ê½ÔËÐÐʱ¹²ÏíµÄÇøÓò£¬£¬£¬£¬£¬£¬¹¥»÷Õßͨ¹ýÅÔ·¹¥»÷(Side Channel Attack)µÄ·½Ê½»ñÈ¡µ½»º´æµÄÄÚÈÝ¡£¡£¡£¡£¡£¡£
ÈôÊǹ¥»÷ÕßÄÜ´¥·¢ÀûÓÃÖ´ÐÐÈ¥½Ó¼ûÖ¸¶¨µÄÃô¸ÐÊý¾ÝÇøÓòµÄ»°£¬£¬£¬£¬£¬£¬¾Í¿ÉÄܶÁÈ¡µ½Õý±¾ÊÇÆäËüÓû§»ò¸ü¸ßÌØÈ¨µÄÃô¸ÐÊý¾Ý¡£¡£¡£¡£¡£¡£
¸ü½øÒ»²½µÄCPU·ÖÖ§Ô¤²âµÄ¹ý³ÌÊÇÄܹ»±»Í¨³£È¨Ï޵ĶñÒⷨʽӰÏìµÄ£¬£¬£¬£¬£¬£¬¹¥»÷ÕßÄܹ»»ú¹Ø³öÀàËÆROP£¨Return-oriented Programming£©¹¥»÷µÄÂ߼ȥӰÏìCPUµÄ·ÖÖ§Ô¤²â¹ý³Ì¡£¡£¡£¡£¡£¡£
ÀûÓø÷ì϶Äܹ»ÓÐÒÔÏÂÈýÖÖ¹¥»÷³¡¾°£º
CVE-2017-5753(ÈÆ¹ýÄÚ´æ¸ôÀëÌìǵ²é³)£ºÍ¨¹ý¶ñÒâ´úÂ봫Ⱦ·ÖÖ§Ô¤²â£¬£¬£¬£¬£¬£¬À´ÈƹýÄں˻òÐé¹¹»úµÄÄÚ´æ¶ÔÏóÌìǵ¼ì²â¡£¡£¡£¡£¡£¡£ºÃ±Èͨ¹ý»ú¹ØµÄ¶ñÒâ´úÂëÀ´´¥·¢ÓÐÔ½½çµÄÊý¾Ýϱ꣬£¬£¬£¬£¬£¬Ôì³ÉÄÚ´æÔ½½ç½Ó¼û£¬£¬£¬£¬£¬£¬ÓÉÓÚÕâ¸ö½Ó¼û²Ù×÷ÊÇÓÉCPU×Ô¼ºÊµÏֵ쬣¬£¬£¬£¬£¬Äں˻òÐé¹¹»úµÄ·À»¤ÎÞ·¨Æðµ½×÷Óᣡ£¡£¡£¡£¡£
CVE-2017-5715(·ÖÖ§Ö¸±ê×¢Èë)£º ´«È¾·ÖÖ§Ô¤²â¡£¡£¡£¡£¡£¡£ÔÚ´óÐÍÈí¼þϵͳÈçä¯ÀÀÆ÷µÈÈí¼þ£¬£¬£¬£¬£¬£¬¸ß¶È³éÏóÄ£Ð͵ĴúÂëÖÐÍùÍù´øÓмä½Óº¯ÊýÖ¸ÕëŲÓõÄÇé¿ö£¬£¬£¬£¬£¬£¬CPUÔÚ´¦ÖÃʱ±ØÒª½øÐбØÒªµÄº¯ÊýÖ¸Õë½Ó¼û£¬£¬£¬£¬£¬£¬ÎªÁËÌá¸ßI/O»úÄÜ£¬£¬£¬£¬£¬£¬CPU»á½øÐзÖÖ§Ô¤²â£¬£¬£¬£¬£¬£¬ÕâÑùµÄ»°¹¥»÷ÕßÄܹ»Í¨¹ýÀàËÆµÄROPµÄ·½Ê½À´½øÐÐÐÅϢй¶º¯ÊýÖ¸Õ룬£¬£¬£¬£¬£¬´Ó¶øÈƹýµØÖ·Ëæ»ú»¯µÄ·À»¤¡£¡£¡£¡£¡£¡£
¡°¶ñÒâÊý¾Ý¼ÓÔØ¡±£ºÔÚ²¿ÃÅCPUÉÏ£¬£¬£¬£¬£¬£¬ÎªÁËÌá¸ß»úÄÜ£¬£¬£¬£¬£¬£¬²¢²»ÊÇÿ´Î¶¼¶ÔÖ¸Áî×÷ȨÏ޲鳵쬣¬£¬£¬£¬£¬²é³µÄǰÌá´æÔڿ϶¨µÄȱµã£¬£¬£¬£¬£¬£¬Ê¹µÃ¶ñÒâµÄÊý¾ÝÄܹ»±»¼ÓÔØµ½Êܱ£»£»£»£»£»¤µÄÇøÓò¡£¡£¡£¡£¡£¡£
3 ·ì϶ÑéÖ¤
¹È¸è¹«Ë¾Project Zero°²È«ÍŶӽüÈÕ¹«¿ªÁ˹í»ê·ì϶µÄPOC(¸ÅÏëÑéÖ¤·¨Ê½)£¬£¬£¬£¬£¬£¬²Î¿¼Á´½Ó£ºhttps://googleprojectzero.blogspot.com/2018/01/reading-privileged-memory-with-side.html¡£¡£¡£¡£¡£¡£
POCÑÝʾÁ˽«Ò»¶Î»úÃÜÎÄ×Ö"The Magic Words are Squeamish Ossifrage." ·ÅÔÚÄÚ´æÖУ¬£¬£¬£¬£¬£¬²¢Í¨¹ý·ì϶ÀûÓÃÅÔ··ÖÎöµÄ·½Ê½´Ó»º´æÖв²â³öÁ˸öÎÎÄ×ÖµÄÄÚÈÝ¡£¡£¡£¡£¡£¡£
POCµÄ¹¥»÷ÖØÒª·ÖÈý¸ö²½Ö裬£¬£¬£¬£¬£¬±ðÀëÊÇ´¥·¢CPU½øÐзÖÖ§Ô¤²â£¬£¬£¬£¬£¬£¬Ó°ÏìCPUµÄ·ÖÖ§Ô¤²âÎóÅУ¬£¬£¬£¬£¬£¬Ì½²â»º´æÊý¾Ý»ñÈ¡Ãô¸ÐÊý¾Ý¡£¡£¡£¡£¡£¡£
¹¥»÷ÖØÒªÓÉreadMemoryByteº¯ÊýʵÏÖ¡£¡£¡£¡£¡£¡£readMemoryByteº¯ÊýÊ×ÏÈÂÅ´ÎŲÓÃvictim_functionÕâÑù»á´¥·¢CPU·ÖÖ§Ô¤²â¼¼Êõ£¬£¬£¬£¬£¬£¬CPU·ÖÖ§Ô¤²â¼¼ÊõÒÔΪÕë¶Ôx²ÎÊýµÄµØÖ·½Ó¼û£¬£¬£¬£¬£¬£¬±ÉÈËÒ»´ÎŲÓÃʱ¿ÉÄÜÊÇÓÐЧµÄÖµ£¬£¬£¬£¬£¬£¬ËùÒÔCPU»áÌáǰ½«array1[x]µÄÖµ³ï±¸ÔÚ»º´æÖС£¡£¡£¡£¡£¡£
¶øºó£¬£¬£¬£¬£¬£¬readMemoryByteº¯ÊýÏòvictim_function´«ÈëÒ»¸öÔ½½çÁìÓòµÄxÖµ²ÎÊý£¬£¬£¬£¬£¬£¬Õâʱ³½CPU·ÖÖ§Ô¤²â¼¼Êõ½«»á²úÉúÎóÅУ¬£¬£¬£¬£¬£¬¶øºó·¨Ê½Í¨¹ý½Ó¼ûarray2[array1[x] * 512]Õâ¶ÎµØÖ·ÁìÓòµÄÄÚÈÝ£¬£¬£¬£¬£¬£¬½«array1[x]µÄÄÚÈÝй©ÔÚ»º´æÖС£¡£¡£¡£¡£¡£
×îºó£¬£¬£¬£¬£¬£¬ÎÒÃÇÄܹ»Ê¹Óõ¥Ò»µÄ»º´æË¢Ð»ººÍ´æÊý¾Ý̽²â¼¼Êõ£¬£¬£¬£¬£¬£¬²Â²âarray2Êý×é¼ÓÔØÔÚ»º´æcache lineÖеÄÖµ£¬£¬£¬£¬£¬£¬´Ó¶ø¶ÁÈ¡»úÃÜÎÄ×ÖµÄÄÚÈÝ¡£¡£¡£¡£¡£¡£ÔÚPOCÖУ¬£¬£¬£¬£¬£¬Ñ¡È¡ÁËÍÆËãÄÚ´æ½Ó¼ûÖ¸ÁîµÄÖ´Ðй¦·òÀ´²âÊÔÊÇ·ñÉäÖлº´æ£¨ÈôÊÇÉäÖлº´æ£¬£¬£¬£¬£¬£¬ÔòÖ¸ÁîÖ´Ðй¦·ò»á±ÈÁ¦¶Ì£©£¬£¬£¬£¬£¬£¬´Ó¶øÅжÏÊÇ·ñ³É¹¦¶ÁÈ¡µ½»úÃÜÎÄ×Ö¡£¡£¡£¡£¡£¡£
ÔÚPOCÖлúÃÜÎÄ×Ö×î³õ²¢Ã»Óгʴ˿̻º´æÀ£¬£¬£¬£¬£¬µ«Êǹ¥»÷¹ý³ÌµÄµÚÒ»Âֵĵü´ú¾Í°ÑÖ¸±êµØÖ·Ð¹Â©ÔÚ»º´æÖУ¬£¬£¬£¬£¬£¬ËùÒÔ¹¥»÷¹ý³ÌÄܹ»±»ÂÅ´ÎŲÓ㬣¬£¬£¬£¬£¬´Ó¶ø¶ÁÈ¡µ½»úÃÜÎÄ×ÖµÄÈ«ÊýÄÚÈÝ¡£¡£¡£¡£¡£¡£
3.1 ÑéÖ¤Á˾Ö
ÎÒÃDZðÀëÔÚÈýÌ¨ÍÆËã»úÉ϶Էì϶½øÐÐÁËÑéÖ¤£¬£¬£¬£¬£¬£¬ÕâÈýÌ¨ÍÆËã»úµÄCPU±ðÀëÊÇIntelµÄi5-3317U¡¢i5-7360U¡¢i7-4790K´¦ÖÃÆ÷£¬£¬£¬£¬£¬£¬²Ù×÷ϵͳ±ðÀëÊÇMac¡¢linux¡¢windows¡£¡£¡£¡£¡£¡£
3.1.1 ³¢ÊÔ1
²Ù×÷ϵͳ£ºMACOSX Yosemite °æ±¾10.10.5
´¦ÖÃÆ÷Ãû³Æ£º Intel Core i5-3317U 1.7 G*2
3.1.2 ³¢ÊÔ2
²âÊÔ»·¾³£º ubuntu 16.04 LTS
Äں˰汾 4.10.0-42 64λ
´¦ÖÃÆ÷Ðͺţºintel core i5-7360U cpu 2.30GHZ*4
3.1.3 ³¢ÊÔ3
²Ù×÷ϵͳ£ºwin10
CPUÐͺţºintel core i7-4790K cpu 4.00GHZ*4
4 ¹í»ê·ì϶µÄÓ°Ïì΢·çÏÕ
¹í»ê·ì϶ӰÏìµ½ÏÕЩËùÓеIJÙ×÷ϵͳ¼°ÍÆËã»úÉ豸¡£¡£¡£¡£¡£¡£
ÓÉÓÚ¹í»ê·ì϶ÆðÒòÓÚCPU·ÖÖ§Ô¤²â¼¼ÊõµÄȱµã£¬£¬£¬£¬£¬£¬¸Ã¼¼ÊõÔÚ1995ÄêÆð¾ÍÒ»ÏòÊǸ߻úÄÜCPU±êÅäµÄ¼¼Êõ¡£¡£¡£¡£¡£¡£Ä¿Ç°Ö÷Á÷°²È«¼¼ÊõËùѡȡµÄ¹ý³Ì¸ôÀ룬£¬£¬£¬£¬£¬Óû§¿Õ¼äºÍÄں˵ØÖ·¸ôÀ룬£¬£¬£¬£¬£¬¶à×â»§µÄÐé¹¹¸ôÀë·À»¤¼¼Êõ¼°É³Ïä¸ôÀë¼¼ÊõÔÚÕâÒ»·ì϶ÏÂÈ«ÊýʧЧ¡£¡£¡£¡£¡£¡£
¹í»ê·ì϶¶Ô¶à×⻧ϵÄÔÆ·þÎñϵͳӰÏì±ÈÁ¦´ó£¬£¬£¬£¬£¬£¬¹¥»÷ÕßÔÚÔÆÆ½Ì¨Í¨¹ý±¾µØµÄͨ³£µÄ½Ó¼ûȨÏÞ¾ÍÄܹ»¶ÁÈ¡ÔÆÆ½Ì¨µÄÃô¸ÐÐÅÏ¢£¬£¬£¬£¬£¬£¬Îª½øÒ»²½»ñµÃ¸ü¸ßµÄȨÏ޺ͻñµÃ»úÃÜÊý¾ÝÌṩÁË¿ÉÄÜ¡£¡£¡£¡£¡£¡£
¸Ã·ì϶µÄ·çÏÕ»¹ÔÚÓÚ¹¥»÷ÕßÄܹ»Í¨¹ý¸Ã·ì϶Զ³ÌÌáÒé¹¥»÷£¬£¬£¬£¬£¬£¬µ±Ö¸±êÉ豸½Ó¼ûÔ¶³Ì·þÎñÆ÷µÄÍøÒ³Ê±£¬£¬£¬£¬£¬£¬¹¥»÷ÕßÄܹ»Í¨¹ý¶ñÒâjs½ÅÕý±¾»ñµÃÖ¸±êÉ豸ÉϵÄÃô¸ÐÐÅÏ¢£¬£¬£¬£¬£¬£¬Èç±£ÁôÔÚÄÚ´æÖеÄÃÜÂëCookieµÈ¡£¡£¡£¡£¡£¡£
¹í»ê·ì϶ÊÜÓ°ÏìµÄ´¦ÖÃÆ÷²»½öÔ̺¬intel£¬£¬£¬£¬£¬£¬¸ßͨ£¬£¬£¬£¬£¬£¬AMD,ARMµÈ³§¼Ò,ϱíΪÒÑÖªµÄÊÜÓ°ÏìµÄintel´¦ÖÃÆ÷ÁÐ±í£¨Êý¾ÝÀ´×Ôintel¹ÙÍø£©£º
5 ·ì϶µÄ·À»¤
1.Ãô¸ÐÊý¾Ý½Ó¼ûºÍÔËË㾡¿ÉÄÜÔÚ¶ÀÁ¢µÄ°²È«Ð¾Æ¬ÉÏÔËÐУ¬£¬£¬£¬£¬£¬Ê¹µÃͨ³£È¨ÏÞµÄÖ´Ðл·¾³ºÍ¸ßȨÏÞµÄÖ´Ðл·¾³ÔÚÎïÀíÉϸôÀ룬£¬£¬£¬£¬£¬´Ó¶øÔ¤·ÀÃô¸ÐÐÅϢй©¡£¡£¡£¡£¡£¡£
2.ʵʱÉý¼¶²¹¶¡£¬£¬£¬£¬£¬£¬³ö¸ñÊǹ«ÓÐÔÆÆ½Ì¨¡£¡£¡£¡£¡£¡£ÓÉÓÚÔÆ·þÎñϵͳµÄÖØ´ó¡¢¸´ÔÓ£¬£¬£¬£¬£¬£¬ÔÆ·þÎñ³§¼ÒÓ¦¾¡ÔçµØ½øÐзì϶½¨²¹£¬£¬£¬£¬£¬£¬Ô¤·À¹Ø¼üÊý¾ÝºÍÒþÖÔµÄй¶¡¢µÇ½ƾ֤±»ÇÔÈ¡µ¼ÖÂÁ¬Ëø¹¥»÷µÈ´ÎÉúÔÖº¦¡£¡£¡£¡£¡£¡£
3.Ŀǰ»ùÓÚÈí¼þ²¹¶¡Ö»ÊÇ×öÁËһʱ¸ôÀ룬£¬£¬£¬£¬£¬ÈçTLB¸ôÀëµÈ£¬£¬£¬£¬£¬£¬µ«Êǽ«À´½«»áÓÐÒ»Ð©ÈÆ¹ý¼¼Êõ»á³öÏÖ£¬£¬£¬£¬£¬£¬¸ü»»Ó²¼þ²ÅÊdz¹µ×½¨¸´Õâ¸öÎÊÌâµÄ¹Ø¼ü¡£¡£¡£¡£¡£¡£
4.ÔÚÈíÓ²¼þÉè¼Æ·½Ã棬£¬£¬£¬£¬£¬¿ª·¢Õß±ØÒªË¼¿¼»úÄܺͰ²È«ÐÔÖ®¼ä»ñµÃƽºâ¡£¡£¡£¡£¡£¡£


¾©¹«Íø°²±¸11010802024551ºÅ