¡¾·ì϶¹«¸æ¡¿GitHub½¨¸´npmÖеÄÁ½¸ö°²È«·ì϶

°ä²¼¹¦·ò 2021-11-17

0x00 ·ì϶¸ÅÊö

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

 

0x01 ·ì϶ÏêÇé

image.png

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»Æ½ð¼×°²È«Ó¦¼±ÏìÓ¦ÖÐÐÄÖØÒªÕë¶Ô³ÁÒª°²È«·ì϶µÄÔ¤¾¯¡¢¸ú×ٺͷÖÏíÈ«Çò×îеÄÍþвµý±¨ºÍ°²È«»ã±¨¡£

¹Ø×¢ÒÔϹ«¼ÒºÅ£¬»ñȡȫÇò×îа²È«×ÊѶ£º

image.png