防不胜防,攻击者利用多语言图像隐藏恶意攻击

2019-02-28 14:40:597023人阅读

专注于媒体网络安全的DEVCON公司表示,他们在2月22日发现黑客使用一种新兴的技术——多语言(polyglot)来隐藏恶意代码,从而进行数字广告欺诈。这是网络犯罪分子使用的较先进的技术之一,表明现在有越来越多的黑客着眼于数字广告欺诈。

在多语言环境中,用户可以将恶意软件隐藏在现有文件(如图像)的代码中。使用这种工具进行攻击时,浏览器只加载预期的代码,而恶意代码则保持隐藏状态。例如,黑客可以操纵代码,使其看起来像一个图像。但当浏览器上传图像时,其实也上传了恶意软件,然后实施攻击。

防不胜防,攻击者利用多语言图像隐藏恶意攻击


多语言漏洞利用是独一无二的,因为文件是一张图像同时也是一个JavaScript!它也不需要外部脚本来提取有效负载。

下面是计算机在读取普通BMP文件时看到的内容。我们需要从高层次上了解攻击者如何将其变成多语言。

防不胜防,攻击者利用多语言图像隐藏恶意攻击


普通BMP图像Header

前两个字节(红色方框内)是 用十六进制表示的BMP图像的字符BM。接下来的4个字节(8A C0 A8 00)是图像的大小。后面是4个无效字节(00 00 00 00)和数据偏移(8A 00 00 00)。这为计算机提供了正确执行此文件所需的大部分信息。

下图是多语言BMP图像的header:

防不胜防,攻击者利用多语言图像隐藏恶意攻击


它们看起来一样,仍以BM开头,尺寸和数据偏移仍然存在。攻击者可以控制图像的大小,操纵十六进制字符,因此计算机将其解释为其他内容。在这一示例中,攻击者已经改变了图像字节的大小,它们恰好也是/**的字符代码。这种字符组合可创建JavaScript注释。JavaScript注释用于使JavaScript Interpreter忽略这些字符之间的所有内容,即/* ignore me */。

下图是漏洞利用的后期部分:

防不胜防,攻击者利用多语言图像隐藏恶意攻击


JavaScript注释以*/终止,然后攻击者添加字符=和`。这么做是为了将文件类型BM转换为JavaScript变量并将其设置为另一个严重混淆的有效负载。下面的示例显示了JavaScript interpreter会如何理解它。

防不胜防,攻击者利用多语言图像隐藏恶意攻击


该文件可以通过两种不同的方式在浏览器中运行:

<img src=”polyglot.jpg”/>将向用户显示图像,忽略JavaScript;

<script src=”polyglot.jpg”></script>将执行有效的JavaScript,忽略图像数据。

DEVCON公司发现的广告欺诈中,包括MyFlightSearch提供春假打折机票;还有一家名为JobsImpact的公司表示正在招聘员工,鼓励用户点击广告“了解更多信息”。

一旦点击图像,用户就被重定向到一个弹出窗口,会有如1000美元的沃尔玛礼品卡等虚假广告。

一切都是在没有用户交互的情况下自动发生的,用户并不需要点击广告或类似的东西,就会被重定向出网站。虽然大多数用户并不会相信弹出的信息,但是有些用户真的会点击这些东西,然后他们的数据就被泄露了。

防不胜防,攻击者利用多语言图像隐藏恶意攻击


DEVCON公司已经在客户的网站上屏蔽了数千次利用这种技术的攻击。DEVCON公司表示,这是一种新兴的攻击,该技术可能在未来会被黑客广泛使用。对于将广告和网络结合的业界人士来说,意识到这一趋势非常重要。


本文转自mottoin,作者Gump,点击查看原文

0
现金券
0
兑换券
立即领取
领取成功