〇企业和信息技术

一个大学生如何欺骗17k程序员运行他的粗略脚本

感染军方和政府软件工程师比你想象的要容易。

一个大学生如何欺骗17k程序员运行他的粗略脚本

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

这项令人大开眼界的研究是由汉堡大学的学生尼古拉·菲利普·切尔(Nikolai Philipp Tschacher)作为他学士学位论文的一部分进行的。使用a的变体十年之久的攻击被称为排字错误在美国,他将自己的代码上传到三个流行的开发人员社区,并给它们起了与其他用户已经提交的广泛使用的软件包类似的名字。在几个月的时间里,他的冒名顶替代码在超过17000个独立域上被执行了超过45000次,其中超过一半的时间他的代码被授予了全能的管理权限。其中两个受影响的域名以。mil结尾,这表明美国军方内部人员运行了他的脚本。

“还有23个来自美国政府机构的。gov域名,”Tschacher在他的报告中写道论文.“这个数字非常令人担忧,因为接管美国研究实验室和政府机构的宿主可能会给它们带来潜在的灾难性后果。”

攻击者选择的目标

对政府和企业组织进行间谍活动的攻击者经常将开发人员作为他们的首选目标。这是因为开发人员可以高级访问敏感网络,也可以控制目标组织内其他人在其计算机上执行的代码。举个例子:2013年发生的一系列针对内部软件工程师的袭击脸谱网、微软和苹果首先感染了员工访问过的iPhone开发者网站

在攻击发生后的几个月里,Facebook和许多其他大型机构开始限制或完全屏蔽Java、Flash和其他浏览器插件,这些插件已知容易受到驱动下载攻击。Tschacher的研究表明,尽管采取了这些措施,攻击者仍然很容易感染开发人员。

这位25岁的学生的论文题目是“编程语言包管理器中的Typosquatting”。这种技术的根源在于所谓的typosquatting攻击,在这种攻击中,攻击者和钓鱼者注册了gooogle.com、app.com等域名,或者键入类似于受信任和被广泛访问的域名的错误名称。当终端用户不小心在他们的地址栏中输入这些名字时,这些拼写错误会把他们的浏览器发送到伪装成合法目的地的恶意冒名网站,同时推送恶意软件或试图收集用户密码。然后,在2011年,安全研究员Artem dinabburg引入了一种他称之为Bitsquatting.它建立在拼写错误的基础上,但不是依靠最终用户输入错误的域,而是利用计算机的随机单比特错误。

切尔的进攻方式与此类似。他首先确定了214个下载最广泛的用户提交包PyPIRubyGems,NPM,分别为Python、Ruby和JavaScript编程语言的开发人员提供社区网站。然后,他将不可信的代码上传到这些网站,并给它们起了与214个软件包非常相似的名字。学生的良性脚本提供了一个警告,通知开发人员他们可能无意中安装了错误的包。但在此之前,该代码向大学的计算机发送了一个Web请求,这样他就可以跟踪他的不可信代码被执行了多少次,以及是否授予了管理权限。

目前还不清楚这个实验是否违反了道德甚至法律界限,因为它依靠的是迷惑,如果不是完全的欺骗,来欺骗人们安装他们想安装的东西。尽管如此,这个实验给我们的教训还是值得注意的。

Azimuth Security高级研究员丹·罗森伯格告诉Ars:“我认为我们非常清楚,如果你安装一个未经任何人审查、你也不知道的随机第三方模块,就会存在固有风险,因为它可能做任何事情。”“这里的新奇之处在于,即使你知道并信任一个模块,但如果你打错了字,你仍然可能运行不受信任的代码。”

你必须置评。

通道Ars Technica