隐写术是秘密隐藏的艺术和科学。隐写术语是从希腊词得出的,stegos意思是“覆盖”,grafia,意思是“写”。因此这词的意思是“覆盖写”。
隐写术的概念并不新鲜,它已经存在了几个世纪。约公元前440年,希腊统治者Histiaeus采用了早期版本的隐写术,即给奴隶剃头,在其头皮上贴上信息,等待头发重新生长就隐藏秘密信息,然后派他发送信息。接收者再次剃了他的头发现消息。另一个希腊人,Demaratus,将波斯人攻击斯巴达的计划写在一个蜡片上来隐藏信息。然后他用新鲜的蜡覆盖了消息。
看似空白的平板发送消息。还有秘密信息用隐形墨水写或隐藏在情书中。(例如,每个句子的第一个字符可以用来拼写一个秘密。)第二次世界大战期间,因为在欧洲的邮件被检查地很仔细,隐写术被囚徒和士兵大量使用。
电子世界的隐写术
隐写术也可以用来隐藏数字世界的信息。要数字化隐藏一个秘密消息,我们需要一个包装器或容器作为宿主文件。包装器可以是图像,音轨,视频剪辑或文本文件。下图显示如何将文本消息隐藏在宿主图像中,同时对图像进行最小的更改,并且不会对图像进行肉眼可辨的更改。
隐写、加密、水印
隐写术,密码学和水印用于隐藏信息。密码术使用加密算法隐藏消息,并将其作为密文发送。隐写术在一个似乎合法的消息中隐藏了一个秘密信息。水印略有不同:它使用签名来识别出处,所有的拷贝都以相同的方式进行标记。这三种方法是最常见的隐藏信息的手段。
网络攻击中的隐写
恶意软件不断发展,以逃避监视和检测。为避免检测,一些恶意软件使用数字隐写术来在看似无害的宿主文件中隐藏其恶意内容。但这提出了一个明显的问题:如果恶意软件必须解密隐藏的数据,反恶意软件产品是否只需检测解密程序?
大多数反恶意软件签名检测配置文件中的恶意内容。使用隐写术将配置文件嵌入到宿主文件中。此外,所得到的隐写文件可以解密为主存储器,进一步降低了被检测的可能性。最后,非常难以在隐写文件中检测到诸如配置文件,二进制更新或bot命令之类隐藏信息的存在。不幸的是,在网络攻击中隐写术很容易实现,并且难以检测。
在网络攻击中,2011年Duqu恶意软件首次使用隐写术,Duqu的主要目的是从受害者系统收集信息。Duqu将数据加密并嵌入到JPEG文件中,并将其作为图像文件发送到其控制服务器,从而不引起怀疑。2014年,研究人员发现宙斯银行特洛伊木马(ZeusVM)的一个变体使用图像隐写来隐藏发送受感染系统的命令。那年晚些时候,我们了解到,Lurk使用隐写技术来传播恶意软件。就Lurk的情况而言,白色BMP图像文件包含加密的URL,一旦它被解密就会下载了第二个攻击载荷。最近,Stegoloader(也称为Gatak)和不同的恶意攻击也使用了图像隐写术。
数字隐写类型
数字隐写术可以分为文字,图像音频和视频隐写。
文字隐写是最早和最难使用的一种。它使用自然语言隐藏秘密信息。由于文本文档中缺乏冗余,文本隐写术具有挑战性。音频隐写通过以不可察觉的方式修改音频信号来发送隐藏信息,并将秘密消息作为噪声嵌入到在人类听觉范围之外的频率的音频文件中。例如,频谱隐写术通常用于通过无线电波发送隐藏的消息。类似地,在视频隐写术中,秘密消息隐藏在视频流中。
图像隐写
数字隐写术的最常见形式是使用图像。要了解基于图像的隐写术,我们需要了解数字图像的概念。图像通常基于8位或24位颜色组合。每个像素通常由黑白图像的8位(1字节)组成;
或彩色图像的24位(3字节)个红色,绿色和蓝色各一个字节(通常称为RGB格式)。 例如,RGB(218,150,149)表示R =
11011010,G = 10010110,B = 10010101。
我们将图像隐写分为一下以及各常见的域
在空间域隐写技术中,我们可以通过直接操纵宿主图像的像素值隐藏秘密数据。最基本的基于位的隐写术是最流行和最简单的空间域技术之一。
变换域隐写技术也被称为频域技术,因为它涉及在宿主图像的频率或变换中嵌入秘密数据。这种技术是在图像中隐藏数据的较复杂的方法。
在失真技术中,使用信号失真来嵌入秘密数据。这种技术需要解码器侧的宿主图像的信息,因为它是检查原始宿主图像和失真覆盖图像之间的差异以提取秘密消息。
掩盖和过滤是另一种常见的隐写技术。它通过修改图像的某些部分的明亮度来隐藏或掩盖宿主图像上的秘密数据。
攻击者如何在图像中隐藏消息? 我们可以通过下面给出的空间域示例来理解隐藏的过程:
图32 通过转换修改了标记红色的右侧列值。MSB和LSB分别表示“最高有效位”和“最低有效位”。
使用隐写嵌入算法来修改图像,改变最低有效位以在彩色图像中的三个像素将字母“A”嵌入。最低有效位的改变在视觉上是不可察觉的,但一旦受害者的系统上接收到图像文件,它们可以就被恶意软件解密和使用。
我们可以总结数字隐写术过程:
隐藏的消息通过嵌入算法隐藏进宿主文件。所产生的隐写文件通过通信信道发送到目标系统。最后,通过提取算法来提取隐藏的消息。
隐写术如何帮助利用工具包?
隐写术现在被一些恶意广告攻击和漏洞利用套件使用。Sundown利用套件出现在2015。当时,它不是很先进,大部分代码看起来是从Angler,Nuclear,和RIG漏洞利用套件抄袭而来。2016年10月,Sundown演变并开始利用隐写术。
从最近的Sundown变种漏洞利用工具包,我们可以从下列感染链了解Sundown漏洞利用工具包的最新变种:
受害者访问被劫持的网站或包含恶意广告的网站时攻击将会开始。受害者自动重定向到漏洞利用工具包。
以下图片显示了一月份的网络流量,其中受害者被重定向到了Sundown页面,夹着取回并下载PNG图像。
图33 Sundown感染链使用的隐写术
大多数情况下。Png图片会显示为一张空白图片
图34 下载下来的恶意png文件
甚至从hex角度来看这个PNG文件都有一个完整的PNG头部。
图35 恶意png文件的十六进制
但是这个PNG文件内部被编码和隐藏了恶意代码。
Sundown套件的指向页面包含一个解码例程,它将会解锁PNG文件然后提取恶意内容。指向页面被严重的混淆。
这段代码会加载PNG文件并且在成功利用后会通过URL下载载荷。解码逻辑在脚本最后出现。
在成功解码过后,我们看到如下输出:
图39 CVE-2015-2419 漏洞利用代码
从PNG图像解码的这个漏洞利用代码的进一步分析显示,它包括针对CVE-2015-2419的漏洞利用代码,这是Internet Explorer的JavaScript处理中的一个漏洞。此漏洞利用代码还包含在成功利用此漏洞后执行的shellcode。
图40 攻击CVE-2015-2419的shellcode
这个Sundown工具包被发现是通过隐写的方式从IP地址93.190.143.82传播Cerber勒索软件。
与分析相关的SHA256hash:
A5E991B647BC60A9323A214C71146F534D4195182C3C630B228 3BF1D3CEC8D6D
EFB5308AA78FFD53E799F7411CC92A564219C27B15D630B6BFAEC674DF8B5923
EEDBD8CDDBA5ED59D86207E37252406E2E1DB1762098A6293EA25762E555E75B
隐藏在 jpg 文件中的Cerber
Cerber勒索软件家族如今非常流行。初始化传播载荷是嵌入在Microsoft文件中的宏代码。
图 41 当受害者打开被感染的文档时,会释放恶意vbs文件,这个文件会使用wscript.exe执行然后从恶意站点下载mhtr.jpg
图42 流向抓取显示对mhtr.jpg的请求
图43 下载下来的mhtr.jpg显示它和Zencode有所联系
图44 mhtr.jpg的文件头
图45 使用单个XOR字节密钥用加密可执行文件,并使用隐写术在偏移0x25c9处进行嵌入
将0x25c9处每个自己与0x73XOR解密,解密过程如下:
图46 解密后的文件
加密后的文件在和是一个Nullsoft安装文件。它会释放进%APPDATA%文件夹并且会被用来从事勒索活动。
数据泄露与隐写术
数据泄漏,也称为数据窃取,是从计算机或服务器传输未经授权的敏感信息。在2016年,我们看到与Magento有关的攻击,这是一个在线电子商务平台。这些攻击使用图像隐写来隐藏支付卡的详细信息。
总体来说,Magento网站使用核心内容管理系统文件cc.php处理信用卡信息。因此,攻击者在Magento网站上放置恶意代码的明显位置是[magento_root]
/ app /code / core / Mage / Payment / Model / Method / cc.php。
图47 一个合法的prepareSave方法
通常,恶意软件在prepareSave()方法中插入恶意代码,但也可能存在于任何其他方法中。执行后,恶意代码收集支付卡的详细信息,将其隐藏在本地图像文件内,例如真实商品图片。收集完成后,攻击者只需下载图像文件(典型的电子商务网站),就可以提取隐藏的数据。
网络隐写术
网络隐写术是恶意软件使用的最新数字隐写术。这种形式的攻击正在上升,因为攻击者可以通过网络发送无限的信息。一些恶意软件作者使用TCP / IP协议头中的未使用的字段来隐藏数据。
在某些情况下,恶意软件在简单的DNS和HTTP请求中隐藏其控制服务器流量。 恶意软件向实际是控制服务器的硬编码DNS服务器发送不存在域的请求。这些命令在DNS响应中被简单的Base64编码技术进行嵌入和模糊处理。
我们分析了TeslaCrypt,它使用HTTP错误消息来隐藏其通信,并通过Neutrino漏洞套件下载。
图48 初始化的TeslaCrypt勒索软件载荷通信通过远程服务器使用Base64编码的404错误消息。
在HTML页面Base64编码的注释部分,我们发现“<! - c3VjY2Vzcw == - >”解释为响应“成功”。
然后,恶意软件以下列编码数据作出响应,如下图所示。
图49-50 恶意软件对成功感染后的响应
图51 在回复中,恶意软件接收到另外的base64错误消息编码的下载链接
解码后的字符串是如下的格式:
结论
隐写术将越来越受欢迎。这是一种历久弥新的老技术,因为隐写术通常能绕过反恶意软件检测,更多的威胁将使用这种技术。
应对策略和程序
1. 加强用于防范内部威胁的软件交付和发布机制。维护可靠的企业应用程序的中央存储库,用户可以下载批准的软件。不允许用户从未知来源下载软件。
2. 在图像编辑软件的帮助下,寻找隐写标记,如图像中的轻微色差。此外,图像中的大量重复颜色可能是隐写攻击的标志。
3. 控制隐写软件的使用。禁止在任何公司系统上安装隐写术软件,除非为商业目的而特别要求。仅在包含的网段中部署此类型的软件。
4. 仅安装来自受信任供应商的签名的应用程序。
5. 配置反恶意软件以检测绑定软件。配置反恶意软件软件以识别可以包含隐写图像的绑定软件的存在。
6. 如果一下捏攻击成功,则正确网络分段烦人虚拟化系统架构可能有助于包含爆发,因为虚拟化系统和连续网络流量监控的安全可验证的引导过程的使用有助于隔离应用程序。
7. 监控出站流量。通过监控出站流量来识别成功的隐写攻击的存在。
—— END ——
本文由看雪翻译小组 wangrin 编译,来源@macafee
转载请注明来自看雪社区
关注看雪学院公众号,更多干货等着你哦!