search
又見古老的Typosquatting攻擊:這次入侵了Npm竊取開發者身份憑證

又見古老的Typosquatting攻擊:這次入侵了Npm竊取開發者身份憑證

有些攻擊方式雖然聽起來很幼稚,但有時候卻也可以生效,比如typosquatting攻擊——我們上次看到這種攻擊是在去年6月份,這本身也是種很古老的攻擊方式。

所謂的typosquatting,主要是通過用戶的拼寫錯誤誘導用戶訪問或下載某個偽裝成合法工具的惡意程序——其核心只在於工具名或文件名和原版很像,比如app1e.com,這種類型的釣魚就是typosquatting。最近 npm 就遭遇了這種攻擊。

有人在 npm 上傳了不少惡意包

npm的CTO CJ Silverio在博客上發表了一篇文章提到:7月19日-31日期間,名為hacktask的賬戶發動了typosquatting攻擊,此賬戶發布了一系列package,名稱和npm中比較流行的package類似。

這其實就是typosquatting攻擊的精髓。而上面提到的npm其實是node.js的package管理工具。開發人員會封裝一些常用功能的代碼發布到Node.js上,這樣其他的人員就可以復用類似功能的代碼,而不必重新造輪子。

Silverio在博客中說,這些package的命名絕對是故意、惡意的,目的就是為了欺騙用戶,並最終收集到用戶數據。好在hacktask發布的所有package都已經從npm移除。安全研究人員暫時發現除了hacktask之外,npm中還沒有其它同類typosquatting攻擊的package。

這些惡意的package和下載數顯示如下:

babelcli: 42

cross-env.js: 43

crossenv: 679

d3.js: 72

fabric-js: 46

ffmepg: 44

gruntcli: 67

http-proxy.js: 41

jquery.js: 136

mariadb: 92

mongose: 196

mssql-node: 46

mssql.js: 48

mysqljs: 77

node-fabric: 87

node-opencv: 94

node-opensl: 40

node-openssl: 29

node-sqlite: 61

node-tkinter: 39

nodecaffe: 40

nodefabric: 44

nodeffmpeg: 39

nodemailer-js: 40

nodemailer.js: 39

nodemssql: 44

noderequest: 40

nodesass: 66

nodesqlite: 45

opencv.js: 40

openssl.js: 43

proxy.js: 43

shadowsock: 40

smb: 40

sqlite.js: 48

sqliter: 45

sqlserver: 50

tkinter: 45

對於此事,Node.js社區建議:

如果你已經下載並已經安裝了上面提到的這些package的話,你應該馬上刪除或替換掉你在命令行環境下存儲的各種重要信息。

攻擊並不高明

「過去,這樣的事大多都是偶然的,我們也見過故意山寨現有庫的名字來與原有開發者競爭的情況。但這次,package的命名完全是故意和惡意的,目的就是欺騙用戶,從而從他們那裡收集有用的信息,「Silverio說。

位於瑞典的開發人員Oscar Bolmsten在一個名為crossenv的package中發現了惡意代碼,而人們真正想找的卻是cross-env—— 一款當下很流行的用來設置環境變數的腳本。

通過使用環境變數的方法將身份憑證遞交給軟體,這樣的做法很普遍。所以這是一件很好的事情,」Silverio在接受電話採訪時說道。

環境變數還用於存儲用戶名,密碼,token,和連接一些應用程序,雲服務,API訪問許可權的密碼。

在攻擊者發動的typosquatting攻擊中,惡意代碼會嘗試複製受害者機器上設置的所有環境變數,並將其傳輸到攻擊者控制的伺服器npm.hacktask.net上。

crossenv使用的JSON配置文件運行了一個名為package-setup.js的腳本,它將現有的環境變數轉換為字元串,然後通過POST請求發送數據。

根據Silverio所說,由hacktask提交的大約40個npm包已從npm刪除,現在基本已經清理乾淨,我們掃描了每個npm package,來尋找惡意使用的安裝代碼,但是沒有發現其他類似hacktask的情況。

Silverio對這次攻擊的效果表示了懷疑,她說:「通過拼寫錯誤來將惡意軟體倒入註冊表的手段並不高明,因為人們更傾向於使用搜索或者複製粘貼已發布的代碼

7月中旬以來,排除因為好奇的關係前往下載,hacktask上傳的絕大部分package,每個下載量大約是40次,惡意的crossenv軟體包的下載次數最多,為700次,但這裡面大多數都被認為是觸發了npm鏡像伺服器的自動下載。

Silverio估計在這段時期只有約50人下載了惡意的crossenv包,她說她還沒有發現有開發者由於這次事件導致賬戶被黑的上報情況。

雖然hacktask的賬戶已經被封了,但其背後主謀卻還未知是誰。

這種攻擊有辦法預防嗎?

當問到npm是否已採取相應的措施來防止其他用戶名下的類似攻擊時,Silverio表示這種攻擊仍然可能無法立即檢測到。

她說:「雖然我們在發布的過程中無法隨時隨刻的掌控一切,但我們建立了一個運行良好的系統」,Silverio稱讚了npm社區的警惕性。

儘管如此,Silverio仍表示,npm正在研究如何識別有相似名字的npm package,用來防治今後的typosquatting攻擊。npm也正在與安全公司Smyte一起檢測發布過的垃圾信息。很明顯,垃圾信息的發布者希望搜索引擎檢索到README文件,來提高自己的網站排名。

2016年的kiwicon,開發者Jeff Andrews在關於Node.js的安全性的演講上問了自己這樣一個問題:「我使用Node.js或npm,但我怎麼保證這麼做是安全的呢?」他答道:「根本不能保證。」

*參考來源:theregister ,npmjs.org,FB小編Liki編譯,轉載請註明來自FreeBuf.COM

熱門推薦

本文由 一點資訊 提供 原文連結

一點資訊
寫了5860316篇文章,獲得23295次喜歡
留言回覆
回覆
精彩推薦