¡¾·ì϶¹«¸æ¡¿GitHub½¨¸´npmÖеÄÁ½¸ö°²È«·ì϶
°ä²¼¹¦·ò 2021-11-170x00 ·ì϶¸ÅÊö
½üÈÕ£¬GitHub¹«¿ªÅû¶ÁËÔÚnpmÖз¢ÏÖ²¢Òѽ¨¸´µÄ2¸ö°²È«·ì϶£¬¹¥»÷Õß¿ÉÀûÓø÷ì϶ÌáÒéÕë¶ÔÐÔµÄÒÀÀµ»ìºÏ¹¥»÷ºÍÓòÃûÇÀ×¢£¬»òÕßδ¾ÊÚȨ¸üÐÂÈκÎnpm °üµÄа汾¡£
0x01 ·ì϶ÏêÇé

npmÊÇ Node.js µÄ°üÖÎÀí¹¤¾ß£¬ÓÃÀ´×°Öø÷Àà Node.js µÄÀ©´ó£¬ºó±»GitHubÊÕ¹º¡£
GitHub±¾´Î¹«¿ªÅû¶µÄÁ½¸ö·ì϶ÊǽüÁ½¸öÔÂÔÚnpmÖз¢Ïֵ쬵ÚÒ»¸ö·ì϶ΪÐÅϢй¶·ì϶£¬µÚ¶þ¸ö·ì϶ΪÊÚȨ·ì϶£¬ÏêÇéÈçÏ£º
npmÐÅϢй¶·ì϶
¸Ã·ì϶ÊÇnpmjsµÄ¸´Ôì·þÎñÆ÷ÉϵÄÊý¾Ýй©£¬ÕâÊÇÓÉ "ÈÕ³£ÊØ»¤ "Ôì³ÉµÄ£¬µ¼Ö¶³öÁË˽ÓÐnpm°üµÄÃû³ÆÁÐ±í£¬µ«ÔÚÊØ»¤´°¿ÚÆÚ¼ä£¬ÕâЩ°üµÄÄÚÈݲ¢Ã»Óж³ö¡£
µ±ÔÚΪReplication.npmjs.com ÉϵĹ«¹² npm ¸±±¾Ìṩ֧³ÖµÄÊý¾Ý¿â½øÐÐÊØ»¤ÆÚ¼ä£¬´´½¨µÄ¼Í¼¿ÉÄܻᶳö˽ÓаüµÄÃû³Æ£¬¹ÌȻ˽ÓаüµÄÄÚÈÝûÓж³ö£¬µ«ÕâЩÃû³ÆÐÅÏ¢×ãÒÔÈù¥»÷ÕßÒÔ×Ô¶¯»¯µÄ·½Ê½½øÐÐÓÐÕë¶ÔÐÔµÄÒÀÀµ»ìºÏ¹¥»÷ºÍÓòÃûÇÀ×¢¡£
¹ÌȻĿǰËùÓÐÔ̺¬Ë½ÓаüÃû³ÆµÄ¼Í¼ÒѾ´Ó npm µÄ¸´ÔìÊý¾Ý¿âÖÐɾ³ý£¬µ«replicate.npmjs.com ·þÎñÈÔ±»µÚÈý·½Ê¹Óã¬Òò¶øµÚÈý·½¿ÉÄÜ»á³ÖÐø±£Áô¸±±¾»ò¿ÉÄÜÒѽ«Êý¾Ý¸´Ôìµ½ÆäËû´¦Ëù¡£GitHubÒѾ¶ÔÆäÌìÉú¹«¹²¸´ÔìÊý¾Ý¿âµÄ¹ý³Ì½øÐÐÁËÅú¸Ä£¬ÒÔÔÚ½«À´½â³ý¸öÈËÈí¼þ°üÃû³ÆÐ¹Â¶ÎÊÌâ¡£
npmÊÚȨ·ì϶
´Ë·ì϶ԴÓÚ´¦ÖöÔnpm×¢²á±íµÄÒªÇóµÄ¶à¸ö΢·þÎñÖ®¼ä²»ÕýÈ·µÄÊÚȨ²é³ºÍÊý¾ÝÑéÖ¤£¬µ¼ÖÂÊÚȨºÍ°ä²¼µÄÈí¼þ°ü´æÔÚ²î¾à¡£¹¥»÷ÕßÄܹ»ÔÚûÓÐÊʵ±ÊÚȨµÄÇé¿öÏÂʹÓÃÕË»§°ä²¼ÈκÎnpm°üµÄа汾¡£
GitHub°µÊ¾¸Ã·ì϶ĿǰÉÐδ±»¶ñÒâÀûÓ㬲¢ÇÒÒѾͨ¹ýÈ·±£°ä²¼·þÎñºÍÊÚȨ·þÎñµÄÒ»ÖÂÐÔÀ´»º½âÕâ¸öÎÊÌ⣬ÒÔÈ·±£ÊÚȨºÍ°ä²¼Ê¹ÓõÄÊÇͳһ¸öÈí¼þ°ü¡£
´Ë±í£¬Ê¢ÐеÄnpm¿â "ua-parser-js"¡¢"coa "ºÍ "rc "֮ǰÔÚһϵÁй¥»÷Öб»½Ù³Ö£¬Ö÷ÕÅÊÇÓÃľÂíºÍ¼ÓÃÜ¿ó¹¤Ï°È¾¿ªÔ´Èí¼þÏû·ÑÕß¡£¾Ý GitHub ³Æ£¬ÕâЩʢÐпâµÄÊØ»¤Õß¶¼Ã»ÓÐÔÚËûÃǵÄÕË»§ÉÏÆôÓÃË«³É·ÖÉí·ÝÑéÖ¤ (2FA)£¬Òò¶ø£¬ÎªÔ¤·ÀÕâÖÖÇé¿öÔٴβúÉú£¬GitHub½«ÒªÇó npm ÊØ»¤ÈËÔ±ÔÚ 2022 ÄêÆðÍ·ÆôÓÃ2FA¡£
0x02 ´ëÖý¨Òé
ĿǰÕâЩ·ì϶ÒѾ½¨¸´£¬½¨ÒéÓйØÓû§°ÑÎÈ·À±¸´ËÀ๥»÷¡£
²Î¿¼Á´½Ó£º
https://github.blog/2021-11-15-githubs-commitment-to-npm-ecosystem-security/
0x03 ²Î¿¼Á´½Ó
https://github.blog/2021-11-15-githubs-commitment-to-npm-ecosystem-security/
https://www.bleepingcomputer.com/news/security/npm-fixes-private-package-names-leak-serious-authorization-bug/
https://securityaffairs.co/wordpress/124671/security/github-npm-package-flaws.html?
0x04 ¸üа汾
°æ±¾ | ÈÕÆÚ | Åú¸ÄÄÚÈÝ |
V1.0 | 2021-11-17 | ³õ´Î°ä²¼ |
0x05 ¸½Â¼
GA»Æ½ð¼×¼ò½é
GA»Æ½ð¼×¹«Ë¾³ÉÁ¢ÓÚ1996Ä꣬²¢ÓÚ2010Äê6ÔÂ23ÈÕÔÚÉî½»ËùÖÐÓ×°åÕýʽ¹ÒÅÆÉÏÊУ¬ÊǹúÄÚ×î¾ßʵÁ¦µÄÐÅÏ¢°²È«²úÆ·ºÍ°²È«ÖÎÀíÆ½Ì¨¡¢°²È«·þÎñÓë½â¾ö¹æ»®µÄÁ캽ÆóÒµÖ®Ò»¡£
¹«Ë¾×ܲ¿Î»ÓÚ±±¾©ÊÐÖйشåÈí¼þÔ°£¬ÔÚÈ«¹ú¸÷Ê¡¡¢ÊÓ×¢×ÔÖÎÇøÉèÁ¢·ÖÖ§»ú¹¹ÁùÊ®¶à¸ö£¬Õ¼Óи²¸ÇÈ«¹úµÄÏúÊÛϵͳ¡¢Çþ·ϵͳºÍ¼¼ÊõÖ§³Öϵͳ£»²¢ÔÚ»ª±±¡¢»ª¶«¡¢Î÷ÄϺͻªÄϲ¼¾ÖËÄ´óÑз¢ÖÐÐÄ£¬±ðÀëΪ±±¾©Ñз¢×ܲ¿¡¢ÉϺ£Ñз¢ÖÐÐÄ¡¢³É¶¼Ñз¢ÖÐÐĺ͹ãÖÝÑз¢ÖÐÐÄ¡£
¶àÄêÀ´£¬GA»Æ½ð¼×ÖÂÁ¦ÓÚÌṩӵÓйú¼Ê¾ºÕùÁ¦µÄ×ÔÖ÷´´Ðµİ²È«²úÆ·ºÍ×î¼Ñʵ¼Ê·þÎñ£¬Ô®ÊÖ¿Í»§È«ÃæÌáÉýÆäIT»ù´¡ÉèÊ©µÄ°²È«ÐԺͳö²úЧÁ¦£¬Îª´òÔìºÍÌáÉý¹ú¼Ê»¯µÄÃñ×åÐÅÏ¢°²È«²úÒµÁì¾üÆ·ÅÆ¶ø²»Ð¸ÖÂÁ¦¡£
¹ØÓÚGA»Æ½ð¼×
GA»Æ½ð¼×°²È«Ó¦¼±ÏìÓ¦ÖÐÐÄÖØÒªÕë¶Ô³ÁÒª°²È«·ì϶µÄÔ¤¾¯¡¢¸ú×ٺͷÖÏíÈ«Çò×îеÄÍþвµý±¨ºÍ°²È«»ã±¨¡£
¹Ø×¢ÒÔϹ«¼ÒºÅ£¬»ñȡȫÇò×îа²È«×ÊѶ£º



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