Ò»¡¢²»·¨¿Í»§¶ËDZÔÚµÄϵͳ¼¶ÈëÇÖΣº¦
À¶ÄñÍÆÌØÃâ·Ñ°æ×°Öðü³£Í¨¹ýµÚÈý·½Æ½Ì¨·Ö·¢£¬ÕâÀà·Ç¹Ù·½ÇþµÀÍùÍùºöÊÓ´úÂëÉó¼ÆÁ÷³Ì¡£Ñо¿Êý¾ÝÏÔʾ£¬76%µÄÆÆ½â°æ±¾°üÀ¨È¨ÏÞÀÄÓôúÂ루Privilege Escalation£©£¬»áÔÚ×°ÖÃÀú³ÌÖÐ×Ô¶¯ÉêÇëͨѶ¼¶ÁÈ¡¡¢Î»ÖÃ×·×ÙµÈÃô¸ÐȨÏÞ¡£¸üΣÏÕµÄÊÇ£¬Ä³Ð©×°Öðü»áÔÚϵͳ¸ùĿ¼ֲÈëºóÃųÌÐò£¬ÐγÉÒ»Á¬ÐԵĿØÖÆÍ¨µÀ¡£ÕâÖÖÊý×ÖÌØÂåÒÁľÂíµÄÔË×÷·½·¨¼«¾ßÒþ²ØÐÔ£¬Í¨Ë×Óû§×ÝȻʹÓ÷À²¡¶¾Èí¼þÒ²ÄÑÒÔ³¹µ×ɨ³ý¡£
¶þ¡¢Êý¾Ýй¶Á´Â·ÉϵÄËÄ´ó±¡Èõ»·½Ú
ÔÚÕ˺ŵǼ»·½Ú£¬²»·¨¿Í»§¶ËµÄµÇ¼ģ¿éÆÕ±éȱÉÙÇå¾²¼Ó¹Ì£¨Secure Enclave£©£¬Óû§ÊäÈëµÄÕ˺ÅÃÜÂë»áÒÔÃ÷ÎÄÐÎʽÔÝ´æÓÚÍâµØ»º´æ¡£µ±ÔâÓöÖÐÐÄÈ˹¥»÷£¨MITM£©Ê±£¬Òªº¦Éí·ÝÐÅÏ¢½«ÃæÁÙ×赲Σº¦¡£¸üÖµµÃСÐĵÄÊÇ£¬²¿·ÖÈí¼þ»áͨ¹ý¶¯Ì¬´úÂë¼ÓÔØ£¨DCL£©ÊÖÒÕÔÚÔËÐÐʱעÈëÊý¾ÝÊÕÂÞÄ£¿é£¬Ò»Á¬ÍøÂçÓû§µÄ˽ÐÅÄÚÈݺÍä¯ÀÀ¼Í¼¡£ÕâЩÒþ˽Êý¾Ý×îÖÕÁ÷ÏòÄÇÀÓÐÇå¾²ÍŶÓ×·×Ù·¢Ã÷£¬´ó²¿·Ö±»²»·¨µ¹ÂôÖÁ°µÍøÊý¾ÝºÚÊС£
Èý¡¢ÆÆ½âËã·¨µÄ´úÂë¸ÄÏÂÊÖÒÕÆÊÎö
ΪºÎ·Ç¹Ù·½°æ±¾ÄÜÈÆ¹ý¹Ù·½ÑéÖ¤»úÖÆ£¿¿ª·¢Õßͨ³£½ÓÄÉÄæÏò¹¤³Ì¶ÔAPK×°Öðü¾ÙÐвð½âÖØ×顣ͨ¹ý¶þ½øÖÆ´úÂë²¹¶¡£¨Binary Patching£©ÊÖÒÕÐ޸Ľ¹µãÑéÖ¤º¯Êý£¬²¢ÖØÇ©Èí¼þ°üÊý×ÖÖ¤Êé¡£ÕâÖÖ´úÂë¸Ä¶¯Àú³Ì¿ÉÄÜÒýÈ뻺³åÇøÒç³ö£¨Buffer Overflow£©Îó²î£¬³ÉΪºÚ¿ÍÔ¶³ÌÖ´ÐжñÒâ´úÂëµÄÍ»ÆÆ¿Ú¡£Çå¾²²âÊÔÏÔʾ£¬Ä³ÈÈÃŵÄ"È¥¹ã¸æÆÆ½â°æ"¾¹°üÀ¨17´¦¸ßΣÒç³öµã£¬ÆäΣº¦Ö¸ÊýÊǹٷ½¿Í»§¶ËµÄ23±¶¡£
ËÄ¡¢Çå¾²×°ÖÃÖ¸ÄϵÄÎå´ó·À»¤õè¾¶
Ҫȷ±£À¶ÄñÍÆÌØ×°ÖÃÀú³ÌÍòÎÞһʧ£¬Ó¦µ±×ñÕÕSTFÇå¾²¿ò¼Ü£ºÔ´ÑéÖ¤£¨Source Verification£©-´«Êä¼ÓÃÜ£¨TLS/SSL£©-Êý×ÖÊðÃûУÑ飨Code Signing£©-ɳÏä¸ôÀ루Sandbox£©-¶¯Ì¬¼à²â£¨Runtime Monitoring£©¡£Ïêϸ²Ù×÷ʱ£¬Í¨¹ýGoogle PlayµÈ¿ÉÐÅÊг¡ÏÂÔØ¹Ù·½×°Öðü£¬×°ÖÃǰÎñ±ØºË¶ÔSHA-256УÑéÖµ¡£½¨ÒéÔÚ×ÔÁ¦µÄÓ¦ÓÿռäÄÚÔËÐУ¬²¢¿ªÆôϵͳµÄʵʱÐÐΪ¼à¿Ø¹¦Ð§¡£¹ØÓÚÐèÒªÌØÊâȨÏÞµÄÇëÇó£¬Ðè¼á³Ö100%µÄ¾¯ÐÑÐÔ¡£
Îå¡¢ÁãÐÅÈÎÄ£×ÓϵÄÒ»Á¬Çå¾²ÔËά
Íê³ÉÀ¶ÄñÍÆÌØµÄÇå¾²×°Öúó£¬Ó¦µ±½¨Éè¶à²ã·ÀÓùϵͳ¡£µÚÒ»²ã¼¶ÊµÑé×°±¸Ö¸ÎÆÈÏÖ¤£¨DFP£©£¬×èÖ¹Òì³£×°±¸µÄµÇ¼ʵÑ飻µÚ¶þ²ã¼¶ÉèÖûỰÁîÅÆ£¨Session Token£©µÄת¶¯¸üлúÖÆ£»µÚÈý²ã¼¶ÆôÓö˵½¶Ë¼ÓÃÜ£¨E2EE£©µÄ˽ÐÅ´«ÊäͨµÀ¡£°´ÆÚʹÓÃXposed¿ò¼Ü¾ÙÐÐÇ徲ɨÃè£¬ÖØµã¼ì²éÊÇ·ñ±£´æÒþ²ØµÄJNI£¨Java Native Interface£©Ä£¿é¡£Çå¾²ÈÕÖ¾ÏÔʾ£¬ÕâÖÖ¸´ºÏ·À»¤¼Æ»®¿É½«ÕË»§±»µÁΣº¦½µµÍ92.7%¡£
ÔÚÕⳡÊý×ÖÇå¾²¹¥·ÀÕ½ÖУ¬À¶ÄñÍÆÌØµÄ¸ßΣΣº¦Ãâ·Ñ°æ×°ÖÃÒѳÉÎªÍøÂç·¸·¨µÄÖ÷ÒªÍ»ÆÆ¿Ú¡£Í¨¹ýÇ¿»¯Èí¼þ¹©Ó¦Á´Çå¾²Òâʶ£¬½ÓÄÉÊý×ÖÊðÃûУÑéºÍɳÏä¸ôÀëÊÖÒÕ£¬Óû§¿ÉÓÐÓÃÐÞ½¨·ÀÓùÆÁÕÏ¡£ÐèÒªÇмǵÄÊÇ£¬ÈκÎÈÆ¿ª¹Ù·½ÇþµÀµÄ×°Ö÷½·¨¶¼¿ÉÄܳÉΪΣº¦·Å´óÆ÷¡£×ñÕÕ±¾ÎĵÄÇå¾²×°Öù¥ÂÔ£¬Á¬Ïµ°´ÆÚµÄÇå¾²»ùÏߺ˲飬·½ÄÜÈ·±£Éç½»ÌåÑéµÄÇå¾²¿É¿¿¡£
Ò»¡¢²»·¨¿Í»§¶ËDZÔÚµÄϵͳ¼¶ÈëÇÖΣº¦
À¶ÄñÍÆÌØÃâ·Ñ°æ×°Öðü³£Í¨¹ýµÚÈý·½Æ½Ì¨·Ö·¢£¬ÕâÀà·Ç¹Ù·½ÇþµÀÍùÍùºöÊÓ´úÂëÉó¼ÆÁ÷³Ì¡£Ñо¿Êý¾ÝÏÔʾ£¬76%µÄÆÆ½â°æ±¾°üÀ¨È¨ÏÞÀÄÓôúÂ루Privilege Escalation£©£¬»áÔÚ×°ÖÃÀú³ÌÖÐ×Ô¶¯ÉêÇëͨѶ¼¶ÁÈ¡¡¢Î»ÖÃ×·×ÙµÈÃô¸ÐȨÏÞ¡£¸üΣÏÕµÄÊÇ£¬Ä³Ð©×°Öðü»áÔÚϵͳ¸ùĿ¼ֲÈëºóÃųÌÐò£¬ÐγÉÒ»Á¬ÐԵĿØÖÆÍ¨µÀ¡£ÕâÖÖÊý×ÖÌØÂåÒÁľÂíµÄÔË×÷·½·¨¼«¾ßÒþ²ØÐÔ£¬Í¨Ë×Óû§×ÝȻʹÓ÷À²¡¶¾Èí¼þÒ²ÄÑÒÔ³¹µ×ɨ³ý¡£
¶þ¡¢Êý¾Ýй¶Á´Â·ÉϵÄËÄ´ó±¡Èõ»·½Ú
ÔÚÕ˺ŵǼ»·½Ú£¬²»·¨¿Í»§¶ËµÄµÇ¼ģ¿éÆÕ±éȱÉÙÇå¾²¼Ó¹Ì£¨Secure Enclave£©£¬Óû§ÊäÈëµÄÕ˺ÅÃÜÂë»áÒÔÃ÷ÎÄÐÎʽÔÝ´æÓÚÍâµØ»º´æ¡£µ±ÔâÓöÖÐÐÄÈ˹¥»÷£¨MITM£©Ê±£¬Òªº¦Éí·ÝÐÅÏ¢½«ÃæÁÙ×赲Σº¦¡£¸üÖµµÃСÐĵÄÊÇ£¬²¿·ÖÈí¼þ»áͨ¹ý¶¯Ì¬´úÂë¼ÓÔØ£¨DCL£©ÊÖÒÕÔÚÔËÐÐʱעÈëÊý¾ÝÊÕÂÞÄ£¿é£¬Ò»Á¬ÍøÂçÓû§µÄ˽ÐÅÄÚÈݺÍä¯ÀÀ¼Í¼¡£ÕâЩÒþ˽Êý¾Ý×îÖÕÁ÷ÏòÄÇÀÓÐÇå¾²ÍŶÓ×·×Ù·¢Ã÷£¬´ó²¿·Ö±»²»·¨µ¹ÂôÖÁ°µÍøÊý¾ÝºÚÊС£
Èý¡¢ÆÆ½âËã·¨µÄ´úÂë¸ÄÏÂÊÖÒÕÆÊÎö
ΪºÎ·Ç¹Ù·½°æ±¾ÄÜÈÆ¹ý¹Ù·½ÑéÖ¤»úÖÆ£¿¿ª·¢Õßͨ³£½ÓÄÉÄæÏò¹¤³Ì¶ÔAPK×°Öðü¾ÙÐвð½âÖØ×顣ͨ¹ý¶þ½øÖÆ´úÂë²¹¶¡£¨Binary Patching£©ÊÖÒÕÐ޸Ľ¹µãÑéÖ¤º¯Êý£¬²¢ÖØÇ©Èí¼þ°üÊý×ÖÖ¤Êé¡£ÕâÖÖ´úÂë¸Ä¶¯Àú³Ì¿ÉÄÜÒýÈ뻺³åÇøÒç³ö£¨Buffer Overflow£©Îó²î£¬³ÉΪºÚ¿ÍÔ¶³ÌÖ´ÐжñÒâ´úÂëµÄÍ»ÆÆ¿Ú¡£Çå¾²²âÊÔÏÔʾ£¬Ä³ÈÈÃŵÄ"È¥¹ã¸æÆÆ½â°æ"¾¹°üÀ¨17´¦¸ßΣÒç³öµã£¬ÆäΣº¦Ö¸ÊýÊǹٷ½¿Í»§¶ËµÄ23±¶¡£
ËÄ¡¢Çå¾²×°ÖÃÖ¸ÄϵÄÎå´ó·À»¤õè¾¶
Ҫȷ±£À¶ÄñÍÆÌØ×°ÖÃÀú³ÌÍòÎÞһʧ£¬Ó¦µ±×ñÕÕSTFÇå¾²¿ò¼Ü£ºÔ´ÑéÖ¤£¨Source Verification£©-´«Êä¼ÓÃÜ£¨TLS/SSL£©-Êý×ÖÊðÃûУÑ飨Code Signing£©-ɳÏä¸ôÀ루Sandbox£©-¶¯Ì¬¼à²â£¨Runtime Monitoring£©¡£Ïêϸ²Ù×÷ʱ£¬Í¨¹ýGoogle PlayµÈ¿ÉÐÅÊг¡ÏÂÔØ¹Ù·½×°Öðü£¬×°ÖÃǰÎñ±ØºË¶ÔSHA-256УÑéÖµ¡£½¨ÒéÔÚ×ÔÁ¦µÄÓ¦ÓÿռäÄÚÔËÐУ¬²¢¿ªÆôϵͳµÄʵʱÐÐΪ¼à¿Ø¹¦Ð§¡£¹ØÓÚÐèÒªÌØÊâȨÏÞµÄÇëÇó£¬Ðè¼á³Ö100%µÄ¾¯ÐÑÐÔ¡£
Îå¡¢ÁãÐÅÈÎÄ£×ÓϵÄÒ»Á¬Çå¾²ÔËά
Íê³ÉÀ¶ÄñÍÆÌØµÄÇå¾²×°Öúó£¬Ó¦µ±½¨Éè¶à²ã·ÀÓùϵͳ¡£µÚÒ»²ã¼¶ÊµÑé×°±¸Ö¸ÎÆÈÏÖ¤£¨DFP£©£¬×èÖ¹Òì³£×°±¸µÄµÇ¼ʵÑ飻µÚ¶þ²ã¼¶ÉèÖûỰÁîÅÆ£¨Session Token£©µÄת¶¯¸üлúÖÆ£»µÚÈý²ã¼¶ÆôÓö˵½¶Ë¼ÓÃÜ£¨E2EE£©µÄ˽ÐÅ´«ÊäͨµÀ¡£°´ÆÚʹÓÃXposed¿ò¼Ü¾ÙÐÐÇ徲ɨÃè£¬ÖØµã¼ì²éÊÇ·ñ±£´æÒþ²ØµÄJNI£¨Java Native Interface£©Ä£¿é¡£Çå¾²ÈÕÖ¾ÏÔʾ£¬ÕâÖÖ¸´ºÏ·À»¤¼Æ»®¿É½«ÕË»§±»µÁΣº¦½µµÍ92.7%¡£
ÔÚÕⳡÊý×ÖÇå¾²¹¥·ÀÕ½ÖУ¬À¶ÄñÍÆÌØµÄ¸ßΣΣº¦Ãâ·Ñ°æ×°ÖÃÒѳÉÎªÍøÂç·¸·¨µÄÖ÷ÒªÍ»ÆÆ¿Ú¡£Í¨¹ýÇ¿»¯Èí¼þ¹©Ó¦Á´Çå¾²Òâʶ£¬½ÓÄÉÊý×ÖÊðÃûУÑéºÍɳÏä¸ôÀëÊÖÒÕ£¬Óû§¿ÉÓÐÓÃÐÞ½¨·ÀÓùÆÁÕÏ¡£ÐèÒªÇмǵÄÊÇ£¬ÈκÎÈÆ¿ª¹Ù·½ÇþµÀµÄ×°Ö÷½·¨¶¼¿ÉÄܳÉΪΣº¦·Å´óÆ÷¡£×ñÕÕ±¾ÎĵÄÇå¾²×°Öù¥ÂÔ£¬Á¬Ïµ°´ÆÚµÄÇå¾²»ùÏߺ˲飬·½ÄÜÈ·±£Éç½»ÌåÑéµÄÇå¾²¿É¿¿¡£