0x00 漏洞概述
近日,GitHub公開披露了在npm中發(fā)現(xiàn)并已修復(fù)的2個安全漏洞,攻擊者可利用該漏洞發(fā)起針對性的依賴混淆攻擊和域名搶注,或者未經(jīng)授權(quán)更新任何npm包的新版本。
0x01 漏洞詳情
npm是 Node.js 的包管理工具,用來安裝各種 Node.js 的擴(kuò)展,后被GitHub收購。
GitHub本次公開披露的兩個漏洞是近兩個月在npm中發(fā)現(xiàn)的,第一個漏洞為信息泄露漏洞,第二個漏洞為授權(quán)漏洞,詳情如下:
npm信息泄露漏洞
該漏洞是npmjs的復(fù)制服務(wù)器上的數(shù)據(jù)泄漏,這是由 “日常維護(hù) ”造成的,導(dǎo)致暴露了私有npm包的名稱列表,但在維護(hù)窗口期間,這些包的內(nèi)容并沒有暴露。
當(dāng)在為Replication.npmjs.com 上的公共 npm 副本提供支持的數(shù)據(jù)庫進(jìn)行維護(hù)期間,創(chuàng)建的記錄可能會暴露私有包的名稱,雖然私有包的內(nèi)容沒有暴露,但這些名稱信息足以讓攻擊者以自動化的方式進(jìn)行有針對性的依賴混淆攻擊和域名搶注。
雖然目前所有包含私有包名稱的記錄已經(jīng)從 npm 的復(fù)制數(shù)據(jù)庫中刪除,但replicate.npmjs.com 服務(wù)仍被第三方使用,因此第三方可能會繼續(xù)保留副本或可能已將數(shù)據(jù)復(fù)制到其他地方。因此,GitHub已經(jīng)對其生成公共復(fù)制數(shù)據(jù)庫的過程進(jìn)行了修改,以在未來消除私人軟件包名稱泄露問題。
npm授權(quán)漏洞
此漏洞源于處理對npm注冊表的請求的多個微服務(wù)之間不正確的授權(quán)檢查和數(shù)據(jù)驗(yàn)證,導(dǎo)致授權(quán)和發(fā)布的軟件包存在差異。攻擊者可以在沒有適當(dāng)授權(quán)的情況下使用賬戶發(fā)布任何npm包的新版本。
GitHub表示該漏洞目前尚未被惡意利用,并且已經(jīng)通過確保發(fā)布服務(wù)和授權(quán)服務(wù)的一致性來緩解這個問題,以確保授權(quán)和發(fā)布使用的是同一個軟件包。
此外,流行的npm庫 “ua-parser-js”、“coa ”和 “rc ”之前在一系列攻擊中被劫持,目的是用木馬和加密礦工感染開源軟件消費(fèi)者。據(jù) GitHub 稱,這些流行庫的維護(hù)者都沒有在他們的帳戶上啟用雙因素身份驗(yàn)證 (2FA),因此,為避免這種情況再次發(fā)生,GitHub將要求 npm 維護(hù)人員在2022 年開始啟用2FA。
0x02 處置建議
目前這些漏洞已經(jīng)修復(fù),建議相關(guān)用戶注意防范此類攻擊。
參考鏈接:
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 附錄
公司簡介
啟明星辰公司成立于1996年,并于2010年6月23日在深交所中小板正式掛牌上市,是國內(nèi)最具實(shí)力的信息安全產(chǎn)品和安全管理平臺、安全服務(wù)與解決方案的領(lǐng)航企業(yè)之一。
公司總部位于北京市中關(guān)村軟件園,在全國各省、市、自治區(qū)設(shè)立分支機(jī)構(gòu)六十多個,擁有覆蓋全國的銷售體系、渠道體系和技術(shù)支持體系;并在華北、華東、西南和華南布局四大研發(fā)中心,分別為北京研發(fā)總部、上海研發(fā)中心、成都研發(fā)中心和廣州研發(fā)中心。
多年來,啟明星辰致力于提供具有國際競爭力的自主創(chuàng)新的安全產(chǎn)品和最佳實(shí)踐服務(wù),幫助客戶全面提升其IT基礎(chǔ)設(shè)施的安全性和生產(chǎn)效能,為打造和提升國際化的民族信息安全產(chǎn)業(yè)領(lǐng)軍品牌而不懈努力。