恐怖如斯!發(fā)現(xiàn)有攻擊者使用 NPM 包從本機(jī)竊取 SSH 密鑰!
軟件威脅研究人員上月初(2024 年 1 月)發(fā)現(xiàn)有惡意 NPM 軟件包,會竊取電腦的 SSH 密鑰并上傳至 Github。
幸運(yùn)的是 Github 在 1 月初發(fā)現(xiàn)后在沒有被大面積擴(kuò)散之前已從 NPM 注冊表中刪除了兩個(gè)軟件包:warbeast2000 和 kodiak2k
詳細(xì)了解下它們做了什么?
warbeast2000
以下代碼不是很復(fù)雜,一旦將其包安裝到自己的電腦上后,會做以下幾件事:
- 啟動(dòng)一個(gè)安裝后的腳本
- 讀取 home 目錄下的
/.ssh/id_rsa
文件(代碼 L10 行定義的路徑 filePath,代碼 L13 行使用 Node.js API 從本地文件系統(tǒng)獲取私鑰信息) - 對獲取到的密鑰 base64 編碼并上傳至攻擊者的 Github 倉庫
這段代碼看完,真是恐怖如斯!id_rsa
是 ssh-keygen
生成的 SSH 密鑰默認(rèn)文件,在 Windows、MacOS、Linux、Unix 系統(tǒng)上是一個(gè)標(biāo)準(zhǔn)文件名了,開發(fā)者通常使用它訪問自己的私有倉庫,例如 Github、Gitlab 等。
要注意的是,除了 id_rsa 是默認(rèn)的文件名,.ssh 這個(gè)文件夾也是可以訪問的,意味這該文件夾下的內(nèi)容也是可以被全部竊取的。很顯然,“這個(gè)攻擊者的軟件包很可能還處于開發(fā)中...”
好在,該軟件包已于 1 月 3 日左右被報(bào)告給了 NPM 管理員,并且已被刪除。
kodiak2k
warbeast2000 被發(fā)現(xiàn)后的不久,1 月 5 日又發(fā)現(xiàn)一個(gè)類似的軟件包 kodiak2k,與上面代碼類似都會獲取本機(jī) ssh 密鑰,不同的是該軟件似乎在攻擊一個(gè)具體的名為 meow
的用戶。
上次剛發(fā)現(xiàn)有人將 武林外傳 上傳至 NPM 倉庫,當(dāng)免費(fèi)網(wǎng)盤使用,這次竟有人惡意利用 NPM、Github 竊取用戶的 SSH 密鑰,幸運(yùn)的是這次發(fā)現(xiàn)的早,影響范圍有限。warbeast2000 軟件包的下載量略低于 400
次,而 kodiak2k 的下載量約為 950
次。
從側(cè)面也反映出 NPM、Github 被濫用的行為正在擴(kuò)大,不知不覺中也會影響到我們每個(gè)人。本次事件也應(yīng)引起我們大家的注意,開發(fā)人員和開發(fā)組織在選擇一些 NPM 包時(shí)也需要進(jìn)行安全評估。
這種事件并非 NPM 獨(dú)有,Python 的包管理 PyPI 也曾受到惡意包的困擾,參考 https://www.scmagazine.com/brief/info-crypto-stealing-python-packages-proliferate。
本文參考 https://www.reversinglabs.com/blog/gitgot-cybercriminals-using-github-to-store-stolen-data。