上周,开源视频转码软件HandBrake向用户发出警告,称其Mac版软件的镜像下载服务器遭到黑客入侵,软件被植入后门,允许攻击者远程控制受害者的计算机。
但就在一万种不可能的情况下,倒霉的我恰好在HandBrake遭到入侵的三天内手动更新了软件,忽视了要求管理权限的警告,安装和运行了后门版本的HandBrake,随后,我的Mac立即被攻击者控制。
在继续讲述我的经历之前,我有三点需要说明:
目前没有发现任何用户信息泄漏的迹象;
此外,也没有发现Panic Sync数据被访问过的迹象;
最后,我们的网络服务器没有受到影响。
故事是如何发生的呢?
HandBrake这段时间一直在提醒我安装更新程序,我在不胜其烦的情况下决定对其进行更新。但是在HandBrake的更新程序窗口中有一条提示信息称该增量更新(指在进行更新操作时,只更新需要改变的地方,不需要更新或者已经更新过的地方则不会重复更新)不可用,我必须要从他们的服务器中下载一个全新的副本。当时我也没有想太多,因为我们之前也遇到过一个破损的Sparkle更新程序,情况比这还糟糕。
所以,我便在HandBrake遭到入侵的三天内(此时入侵消息还是未知的)下载并运行了后门版本的 HandBrake,而在其要求获取管理权限时,我也没有仔细思考过为什么HandBrake需要管理员权限,或是为什么以前不需要现在又突然需要它们,就直接同意了请求。后果可想而知,短短三秒之内随后,我的Mac完全被攻击者控制。
当HandBrake被感染的消息传开时,攻击者早已经从我的MAC中窃取了我的 git 凭证,并克隆了许多个源代码存储库。
在我发现HandBrake遭到感染的第一时间就赶紧禁用了它,将MAC停止运行,然后我便开始了漫长的“防御部署”过程,我开始更改所有的密码,所有与基础架构有关的密钥等等,以及重新封锁后门,希望可以防止出现数据丢失的情况。好在,后来我们的网络服务器没有出现任何被访问过的迹象,但是出于安全考虑,还是建议相关用户尽快更换自己的所有密码。
然后,就是取证过程:我们开始梳理自己的日志,试图确定被访问的程度,重申一下,这仅限于我自己的MAC上的源代码和个人数据。我们发现,攻击者使用的方法无法复制我所有的源代码,他们正在对我们的repo名称逐一进行有针对性的猜测,一个接一个地猜,所以我们的源代码并没有完全暴露。
随后,我们收到了来自攻击者的电子邮件(其中附有几个源代码文件,作为被盗的证据),要求我们支付大量比特币来避免源代码泄漏,用他们的话来说,这些源代码一旦泄漏,我们公司就玩完了!
内部讨论决定不支付赎金
事已至此,我决定召开全公司会议,与同事们就此事进行讨论决议,最后得出的结论跟我原本预想的有点不同:他们决定不支付赎金。我们考虑了3种可能出现的“最糟糕”的情形:
1. 攻击者可以利用源代码构建免费的破解版的应用程序,但该公司的应用早就有破解版存在;
2. 攻击者可以构建恶意版的应用程序,这似乎是不可避免的。但是我们会找到它们,并直接与苹果公司合作关闭它们。所以为了减少风险,请一定要从官方途径或Mac App Store上下载我们的应用程序副本;
3. 竞争对手可以利用源代码获得一些竞争优势,但源代码可能含有恶意程序,未必对他们有利。
另外,还有一个重要的想法给了我们一丝安慰:随着时光流逝,这些被盗的源代码会越来越过时。其实,从上周起我们就停止对这些源代码进行修复和改进,而从现在开始六个月后,这些源代码将失去其主要的关键功能。简而言之:它已经过时了,还将变得更加过时无用。
在我们讨论期间,甚至产生过自己将这些源代码公开的想法,而当这一想法浮出脑海时,我们都得到了答案—我们不会支付赎金。
寻求苹果和联邦调查局帮助
在遭受攻击的24小时内,我们与两个重要的团队进行了沟通:苹果和联邦调查局。
苹果迅速组织了相关安全人员了解我们的具体情况(当然,在HandBrake问题进一步发酵前,苹果推出了XProtect签名来解决该问题),更换了我们的Developer ID,作废了原来那个我们认为没有遭到泄露的旧ID。更重要的是,苹果安全人员随时准备帮我们关闭任何被盗/被恶意软件感染的应用程序版本。
联邦调查局也在积极调查中,具体细节暂时不便透露。
我们需要你的帮助
在可预见的未来,我们将加倍关注此类安全问题。但是现在,我们需要你的帮助。
如果你发现我们的应用程序存在任何已破解或非官方版本,我想你最好把它当作已感染版本,并通知我们进行处理。如果你知道任何可以帮助我们侦破此案的线索,也欢迎通知我们。
我们掌握的线索越多,就可以有更多的方式(包括法律、技术等)来修复它。