起因是一个被囚禁的暴君、一个理发师和一个纹身的仆人。至少希罗多德是这么说的。
一位名叫希斯提亚乌斯的流亡国王想发动一场针对对手的叛乱,这就是隐写术(将信息隐藏在另一条信息中)的第一个例子。他的办法是把一个仆人的头发剃光,然后在他的头上纹上信息。当头发重新长出来后,隐藏的信息就可以轻易地穿过敌人的领土传递出去。
希斯提乌斯首次成功实施了隐写攻击。他利用隐藏在众目睽睽之下的数据来伤害敌人。我一直很喜欢这个故事。它展示了一种简单的数据隐藏方法是如何产生灾难性后果的--在这个故事中,是如何产生毁灭性的叛乱的。
基于隐写术的现代攻击通常会将恶意软件隐藏在无害的图像文件中,从而在威胁行为者的感染链中创建一个重要环节,就像希斯提乌斯的隐藏信息是其攻击链中的第一个环节一样。
隐写术还可用于从受害者的机器中提取数据。例如,攻击者需要在访问公司网络后将数据发送回家。基于隐写术的恶意软件就能实现这一目标。
在图像中隐藏恶意软件有多难?作为概念验证,尝试一下并制作一段视频来展示我的图像隐写攻击历程会很有趣。值得庆幸的是,不需要在头皮上纹身!
创建图像隐写术恶意软件有多容易?
这些攻击看似复杂,但通过软件将数据嵌入图像并不困难。像 1-2 Steganography、OpenStego 和 QuickStego 这样的免费隐写术程序随时可用,而且用户界面友好。
有了这些工具,只需几行代码就能在几分钟内创建和提取恶意软件。下图中的代码演示了我如何使用 judyb Python 库来隐藏和显示图像中的数据。

通过一个简单的 Python 模块,你也可以将信息隐藏在图像中,并发送到任何你想发送的地方。隐写术很有趣。你可以用它向朋友传递秘密信息,但攻击者可以传播恶意软件并感染网络。
为什么效率高?
在图像中隐藏恶意软件很容易,但检测起来却很困难。
攻击者在比特/像素级别嵌入数据,因此大多数反恶意软件扫描工具几乎无法检测到恶意有效载荷。有害图像很容易绕过大多数实时反恶意软件检测方法。
如何防止速记攻击--深度内容解除与重构
由于基于检测的方法效果不佳,我们需要另一种方法来检测隐藏在图像中的恶意代码。
幸运的是,有一种名为 CDR(内容解除和重构)的强大方法可以分解文件,删除有害数据。CDR 也称为数据清除,是一种零信任安全解决方案,它假定所有文件都是恶意的。它能解构文件,删除文件中的可执行内容和不符合文件类型标准的元素。最后,它还会重构文件,确保安全内容的完全可用性。
功能更强大的CDR 版本称为 Deep CDR的功能更强大的版本,可通过查看配置文件、元数据和像素来进一步检查图像中的有害内容。
Deep CDR 使用递归消毒来消除威胁。如果攻击者在 PDF 中嵌入了该图片,Deep CDR 会扫描 PDF 中的每个对象并进行消毒。

它还会删除任何结构化元数据,这有助于保护隐私和安全。攻击者可以在元数据中隐藏木马。从图像文件中删除元数据可以防止这种攻击。
在像素级,我们的程序会删除可能包含部分有效载荷的未使用数据。它向这些像素添加随机噪音,从而破坏了有效载荷执行有害代码的能力。
我们还可以优化位图数据。压缩算法会删除隐藏恶意数据的闲置数据,而不会影响图像质量。
如下图所示,图像质量保持不变。

如果您喜欢学习隐写术并对更多网络安全主题感兴趣,请注册加入我们的邮件列表。
担心贵组织的网络安全?立即联系OPSWAT 安全专家!