一个学生是如何欺骗1700个代码人员运行他的恶意脚本

https://p2.ssl.qhimg.com/t01eb6cbe472ed94540.jpg

一名德国大学生展示了一个有效的方法让他选择的代码在软件开发人员的计算机上运行,其中至少有一些为美国政府和军事组织工作。

这项令人瞠目结舌(如果在道德上有问题的话) 的研究是汉堡大学学生尼古拉菲利普Tschacher的学士论文的一部分。使用一个十年之前的称为误植域名(typosquatting)的变异攻击,他将他的代码上传到三个流行的开发者社区,并且将它们的名字命名为类似于已经被其他用户提交的广泛使用的包。过去的几个月里,他的冒名顶替代码在17000多个单独的域中执行了超过45000次,而且超过一半的时间里他的代码被赋予全部的管理权限。其中,受影响的两个域以.mil结束,有迹象表明有美国军方的人员已经运行了该脚本。

“还有23个以.gov结束的美国政府机构域,“Tschacher在他的论文中写道。“这个数字是非常惊人的,因为接管美国研究实验室和政府机构的主机可能会有潜在的灾难性后果。”

攻击者的选择目标

攻击者针对政府和企业团体进行的间谍活动经常将开发人员作为目标选择。因为开发者有高级别的访问敏感网络权限,也有权限在一个被针对性的组织中控制他人的电脑执行代码。例证:2013年一连串的袭击,目标是Facebook,微软和苹果的软件工程师,通过感染一个被开发者经常访问的iPhone开发者网站。

https://p4.ssl.qhimg.com/t0108bd46ca6db6ef8d.png

袭击发生后的几个月,Facebook和其他许多大型组织开始限制或完全阻塞Java,Flash和其他容易被下载型漏洞攻击的浏览器插件。Tschacher的研究表明,尽管有这些措施,它可能仍然是令人不安的,因为攻击者容易攻击开发人员。

这位25岁的学生的论文的题目是“在编程语言包管理者中的误植域名(typosquatting)攻击。” 该技术起源于误植域名攻击,攻击者和钓鱼者注册域名如gooogle.com,appple.com,或和受信任的和广泛访问的域类似的错误名称。当最终用户不小心进入到他们的域名地址,他们的浏览器发送错误的恶意伪装成合法的目的地的网站给用户,从而将恶意软件推送给用户或试图收集用户的密码。其实,在2011年,安全研究员Artem Dinaburg介绍了一个他称作Bitsquatting的攻击。它建立在误植域名(typosquatting)攻击的基础上,不过不同的是它不是依靠终端用户输入错误的域名,它利用了计算机随机出现的单一比特错误。

Tschacher的攻击以类似的方式工作。他首先识别了214个被最广泛下载的软件包,这些软件包是用户在PYPI,RubyGems和NPM上提交的,而这些网站是为Python,Ruby和JavaScript编程语言开发人员提供支持的社区网站。然后他上传了他的不可信代码到这些网站上,给它们起的名字与这214个包相似。学生的良性的脚本提供了一个警告,通知开发人员,他们可能会无意中安装了错误的包。但在这之前,这些代码会发送一个Web请求到一台大学计算机上,这样他就可以跟踪他的不受信任的代码被执行了多少次, 是否得到管理权限。

目前还不清楚这个实验是否打破了道德甚至法律的界限,因为如果不是彻头彻尾的欺骗的话它是十分令人困惑的,欺骗人们去安装另外的不是他们打算安装的包。尽管如此,这项实验带来的教训是值得注意的。

“我认为我们很好地意识到,如果你安装一个随机的没有人审核并且你所不知道的第三方模块, 这本身就有固有的风险,因为它可能做任何事情,”高级安全研究员丹·罗森博格告诉Ars。“新奇的是,即使你知道和信任一个模块,如果你犯了错误,你仍然可以运行不受信任的代码。”

免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。查看原文

为您推荐