开源陷阱:Python SSH 安全模块惊爆后门

偷偷留下的后门

这两天著名黑客X0rz在twitter上爆料,发现python库ssh-decorator 中出现后门:偷偷将用户的SSH 登录名和密码回传。

事情一公布,reddit上炸了锅,twitter上炸了锅。

排查

搞安全的人排查别人是非常容易的事情。很快肇事者被查了出来。

这位作者叫 Uri Goren,以色列人。又叫尤里,hmmm闻到一股什么味道

Uri Goren

这个事情是非常非常缺德的事情。现在几乎所有的互联网公司,很多程序都是基于开源搞出来的,搞一个网站都是搭积木,除了业务模块外,大部分都是 依赖于别人的模块。现在哪怕做个简单的小算法,都是依赖于NPM,依赖于pip 之类的包管理程序。

这次问题就出在这里,很多场合,大家都依赖于基础模块,搭出了服务,然后专心于业务模块。大家很少会去翻基础模块,一方面是没有必要,另外一方面是浩瀚如烟,怎么搞。就算告诉你那个模块大概有问题,你也要排查一会。

这次比较坏的原因是,以前这个包功能是正常的,在新版本更新的时候,塞进去了恶意代码。这就坏透了,一般人不会去看更新包里有啥。傻傻update就好了。

好在这次有细心的人发现了他的问题,直接给作者写信了,并曝光出来。

在X0rz在twitter曝光后,作者才回复别人的质疑,原因是。。。。。

“我被人黑了,别人偷了我的密码,偷偷加进去的,我也已经把代码改回来了,把pypi的密码也改了。”

然而根据他的changelist,谨慎怀疑不像是被人黑了。

现在已经有一堆人要求github和pypi永久封禁他。

开源的信任问题

这种偷偷加私货的代码不是第一次发现,去年NPM团队也发现几个恶意的包,这也不是最后一次发现。如果这个家伙用更加隐蔽的办法,比如将这段恶意代码搞成shellcode,分几次checkin或者写成bug。那么造成的伤害更为持久,影响更为恶劣。因为有时bug是很复杂的,找出bug是很困难的。前几年爆出来的heartbleed bug,直接就是说,你们搞了那么长时间的openssl,都是有巨大漏洞的。。。

这次python ssl-decorator 的问题,因为简单,粗暴,直接唤起了大家对开源包的信任危机。你怎么能保证下次下来的包不是炸弹呢?谁能保证,一定有人去看包的内容呢?加了签名就能保证安全么?stuxnet也是有正规签名的哦。

小结

本来想写Stuxnet的,但是内容太长了,想写的经得住推敲,正好看到这个新闻,所以先写这个了。

其实这种问题跟芯片是一体两面的问题:芯片是不给你用,开源软件是放开了用。

转发就是最大的支持!

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180510A0ANZA00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券