大家好,我是小程程
尴尬了尴尬了,我说的是微软哈。
2 月底微软下架了两款热门 VSCode 主题扩展,并且还封了开发者账号。
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 -
推荐阅读 点击标题可跳转
1、董事长刺死 CTO:一个要"先发布后优化",一个坚持先优化
2、3·15 曝光的"偷隐私"软件,原来是这样盯上你的!5 招教你反杀
3、工资12000,下家给15000,我说考虑下。结果HR又加到18000,下午副总打电话说能给到 2w,不会是骗子公司吧