熱門NPM套件開發者遭網釣,每週下載26億次的套件面臨供應鏈攻擊
<div class="field field-name-field-news-column-category field-type-taxonomy-term-reference field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/tags/%E6%96%B0%E8%81%9E">新聞</a></div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"> <p>近期鎖定NPM套件開發者的攻擊行動不所傳出,例如,今年7月<a href="https://www.ithome.com.tw/news/170262">熱門NPM套件eslint-config-prettier傳出被植入木馬程式</a>的情況,起因是套件維護者JounQin遭到網釣,如今又有熱門套件出現類似的供應鏈攻擊。</p> <p>根據<a href="https://www.bleepingcomputer.com/news/security/hackers-hijack-npm-packages-with-2-billion-weekly-downloads-in-supply-chain-attack/">資安新聞網站Bleeping Computer的報導</a>,別名qix的套件開發人員Josh Junon遭遇網釣攻擊,導致他維護的NPM套件被植入惡意軟體。由於這些套件每週被下載超過26億次,影響恐怕非常廣泛。</p> <p>事件揭露的原因,在於9月8日<a href="https://bsky.app/profile/charlieeriksen.bsky.social/post/3lydffcyulc2n">有人發現</a>Josh Junon所有熱門套件被植入後門,推測他的NPM帳號被駭,並透過社群網站Blue Sky發出通報。<a href="https://bsky.app/profile/bad-at-computer.bsky.social/post/3lydioq5swk2y">後續Josh Junon證實此事</a>,並表示他收到看起來像是合法的雙因素驗證重設郵件,然後NPM帳號就被駭了,他正設法聯繫NPM試圖取回帳號。</p> <p>後來Josh Junon<a href="https://bsky.app/profile/bad-at-computer.bsky.social/post/3lydje4zqis2y">再度發布貼文說明</a>,表示他無法存取自己的NPM帳號,目前由NPM進行處理。他也公布寄送釣魚信的電子郵件信箱是:support [at] npmjs [dot] help。</p> <p>這起事故NPM協助Josh Junon復原了帳號,並清除非他本人發布的套件。Josh Junon表示,雖然他的帳號和套件似乎已經成功還原,但還有其他套件開發者也受到影響,呼籲大家提高警覺。</p> <p>Josh Junon提出的警告並非空穴來風,因為有其他開發者也收到類似的釣魚信,<a href="https://github.com/orgs/community/discussions/172738">並公布其內容</a>:對方聲稱收信人最後一次設置雙因素驗證已經是超過一年半的事情,他們正著手要求所有開發者更新相關憑證,並要脅開發者若不處理,繼續使用過程憑證,將會從9月10日開始暫時鎖定,後續有其他開發者也留言表示收到相同的釣魚信。Bleeping Computer針對釣魚信連結的網頁進行分析,指出內含登入表單,會將輸入的帳密資料洩露到特定的URL。針對此事進行調查的資安業者Aikido<a href="https://www.aikido.dev/blog/npm-debug-and-chalk-packages-compromised">也證實這樣的現象</a>,因為他們也偵測到駭客寄釣魚信給其他套件開發者。</p> <p>根據Aikido的統計,Josh Junon總共有18個套件被植入惡意軟體,這些套件每週被下載26億次,影響相當廣泛。一旦使用者不慎安裝,惡意軟體就會將自己注入瀏覽器並監控敏感資料,然後改寫瀏覽器存取目標,以存取攻擊者網站,或是挾持以太幣(Ethereum)、Solana幣等加密貨幣的交易內容。這些被感染的套件如下:</p> <ul> <li>ansi-styles(每週被下載3.71億次)</li> <li>debug(每週被下載3.58億次)</li> <li>chalk(每週被下載3億次)</li> <li>supports-color(每週被下載2.87億次)</li> <li>strip-ansi(每週被下載2.61億次)</li> <li>ansi-regex(每週被下載2.44億次)</li> <li>wrap-ansi(每週被下載1.98億次)</li> <li>color-convert(每週被下載1.94億次)</li> <li>color-name(每週被下載1.92億次)</li> <li>is-arrayish(每週被下載7380萬次)</li> <li>slice-ansi(每週被下載5980萬次)</li> <li>error-ex(每週被下載4717萬次)</li> <li>color-string(每週被下載2748萬次)</li> <li>simple-swizzle(每週被下載2626萬次)</li> <li>supports-hyperlinks(每週被下載1920萬次)</li> <li>has-ansi(每週被下載1210萬次)</li> <li>chalk-template(每週被下載390萬次)</li> <li>backslash(每週被下載26萬次)</li> </ul> </div></div></div>