¡¾·ì϶¹«¸æ¡¿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 ¸½Â¼

ɳ°Í¼ò½é

ɳ°Í¹«Ë¾³ÉÁ¢ÓÚ1996Äê £¬²¢ÓÚ2010Äê6ÔÂ23ÈÕÔÚÉî½»ËùÖÐÓ×°åÕýʽ¹ÒÅÆÉÏÊÐ £¬ÊǹúÄÚ×î¾ßʵÁ¦µÄÐÅÏ¢°²È«²úÆ·ºÍ°²È«ÖÎÀíÆ½Ì¨¡¢°²È«·þÎñÓë½â¾ö¹æ»®µÄÁ캽ÆóÒµÖ®Ò»¡£

¹«Ë¾×ܲ¿Î»ÓÚ±±¾©ÊÐÖйشåÈí¼þÔ° £¬ÔÚÈ«¹ú¸÷Ê¡¡¢ÊÓ×¢×ÔÖÎÇøÉèÁ¢·ÖÖ§»ú¹¹ÁùÊ®¶à¸ö £¬Õ¼Óи²¸ÇÈ«¹úµÄÏúÊÛϵͳ¡¢Çþ·ϵͳºÍ¼¼ÊõÖ§³Öϵͳ £»²¢ÔÚ»ª±±¡¢»ª¶«¡¢Î÷ÄϺͻªÄϲ¼¾ÖËÄ´óÑз¢ÖÐÐÄ £¬±ðÀëΪ±±¾©Ñз¢×ܲ¿¡¢ÉϺ£Ñз¢ÖÐÐÄ¡¢³É¶¼Ñз¢ÖÐÐĺ͹ãÖÝÑз¢ÖÐÐÄ¡£

¶àÄêÀ´ £¬É³°ÍÖÂÁ¦ÓÚÌṩӵÓйú¼Ê¾ºÕùÁ¦µÄ×ÔÖ÷´´Ðµİ²È«²úÆ·ºÍ×î¼Ñʵ¼Ê·þÎñ £¬Ô®ÊÖ¿Í»§È«ÃæÌáÉýÆäIT»ù´¡ÉèÊ©µÄ°²È«ÐԺͳö²úЧÁ¦ £¬Îª´òÔìºÍÌáÉý¹ú¼Ê»¯µÄÃñ×åÐÅÏ¢°²È«²úÒµÁì¾üÆ·ÅÆ¶ø²»Ð¸ÖÂÁ¦¡£


¹ØÓÚɳ°Í

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

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

image.png