大家好,我是小程程
尷尬了尷尬了,我說的是微軟哈。
930+萬次下載的熱門擴充套件
被下架的是這兩個擴充套件:Material Theme Free 和 Material Theme Icons,下載安裝量超過 930 萬次,開發者 Mattia Astorino(網名 equinusocio)的賬號也被封了。
上月微軟員工表示:“有社群成員對這兩個擴充套件仔細檢查了,發現多個不對勁的地方,像是要幹壞事,就舉報了。”
微軟自己的安全團隊查完不僅認定了舉報內容,還發現了更多可疑程式碼。
於是送上一份暖心心的套餐:【下架 + 封號】


這事在網上鬧鬧沸沸揚揚,小程程 3 月初還在 Hacker News 刷到另外一個熱帖,是另外程式設計師寫了一篇文章大罵 equinusocio。
微軟後來承諾調查並公開後續結果,這不後續來了。
結果就是:【虛驚一場,誤殺】
舉報 vs 喊冤
向微軟舉報的是兩位搞安全的老哥(Amit Assaraf 和 Itay Kruk),他們是用的 AI 掃描工具,發現不對勁後給這兩擴充套件貼上了「潛在惡意軟體」的標籤。
他們解釋,之所以覺得 Material Theme 危險,是因為發現它的 release-notes.js 檔案裡藏著能執行程式碼的程式,而且程式碼高度混淆,晦澀難懂。

(讓安全老哥緊張的混淆程式碼,圖源:BleepingComputer)
開發者 Astorino 立馬喊冤,說問題出在用了 2016 年的舊版 sanity.io 元件,這個老古董只是用來顯示更新日誌的。
他吐槽微軟要是提前打個招呼,他分分鐘就能把這元件刪了。結果他們招呼都不打就直接封號!
Astorino 後來接受外媒採訪時表示:
我這些年都在搞新版擴充套件,舊版除了給程式碼做了混淆處理,絕對沒安壞心眼。Material Theme Icons 裡那個被揪出來的指令碼 index.js,其實早就不用了。以前是用來從閉源倉庫拉取 SVG 圖示後生成 JSON 檔案,現在早刪乾淨了。Material Theme 裡出現的“使用者名稱和密碼”相關字串,其實是混淆程式碼時不小心混進去的 sanity.io SDK 元件自帶的。這屬於早年開發流程不規範留下的坑,但真的不會害人。
重新上架 + 安全可用
開發者 Astorino 表示,重新上架的擴充套件都是船新重寫後的新版本,無毒,大家可以放心shi yong。

前些天微軟工程師 Scott Hanselman 代表 VSCode 擴展團隊在 GitHub 上公開道歉了:
誤判事件令人不快,一旦發生便會造成傷害。我們誤封了 Equinusocio 的賬號,現在已經恢復了。為了使用者安全我們行動太快,結果誤傷了好人。這兩個擴充套件觸發了微軟內部多項惡意軟體檢測指標,但後來發現是誤判。”這類事件雖令人遺憾,但確實偶有發生。我們已竭盡所能,人難免犯錯,望此事就此翻篇。這些擴充套件是安全的,現已重新上架供 VS Code 社群使用。

Hanselman 還說:“我們向開發者道歉,期待他以後的新作品。已經聯絡過他並感謝他的耐心配合。”
微軟表示會更新 VSCode 擴充套件商店的審查規則,最佳化掃描程式,避免以後再出現這種誤殺情況。
不過當初舉報的老哥 Amit Assaraf 還是堅持認為擴充套件的程式碼有問題,只是相信開發者沒惡意,最後還補了句:“這次微軟確實反應過激了。”
小程程:這個老哥,微軟反應過激還不是因為你們哥倆舉報的……
– EOF –