-
过去几个月,思科 Talos 发现了几起恶意电子邮件活动,这些活动将 JavaScript 代码伪装在 HTML 电子邮件附件中,这种技术通常称为“HTML 走私”。
-
Cisco Talos 注意到,在观察的时间范围内,某些垂直行业比其他行业更容易受到使用 HTML 走私技术的电子邮件威胁的攻击。例如,人力资源、保险和医疗保健领域的公司受到的攻击最多,而法律、供应链和电子商务公司受到的攻击最少。
-
我们已经发现这些电子邮件的发件人使用了多种逃避技术,包括绕过电子邮件网关和更高级检测的方法。这些技术包括各种编码机制、加密和混淆。
-
这些对手使用简单的方法来增加成功的机会,例如玩弄电子邮件附件,以及通过组合不同的逃避方法或多次采用单一逃避方法的更高级技术。
-
Talos 发布了新的CyberChef 配方列表,可以更快、更轻松地逆转观察到的 HTML 附件中包含的编码 JavaScript 代码。这可能有助于创建自动化来处理和识别此类电子邮件,从而实现更有效的长期安全措施。
HTML走私简介
HTML 走私是攻击者用来将编码或加密的 JavaScript 代码嵌入 HTML 附件或网页中的一种技术。过去几个月,这种技术在鱼叉式网络钓鱼电子邮件活动中被广泛使用。HTML 走私在绕过电子邮件网关和 Web 代理等外围安全控制方面非常有效,主要有两个原因:它滥用 HTML5 和 JavaScript 的合法功能,并利用不同形式的编码和加密。
威胁者首先向目标发送一封或多封带有 URL 或 HTML 附件的电子邮件。当收件人点击 URL 或打开附件时,浏览器会自动解码并运行所有编码的 JavaScript 代码,最终将下载恶意软件并将其传送到受害者的设备,或者将用户重定向到最终的网络钓鱼页面。在某些情况下,恶意软件的代码嵌入在 HTML 附件中,JavaScript 代码只需重建并运行它,而无需额外下载。
逆转 HTML 附件
安全研究人员应持续监测威胁行为者技术的变化,并更新其检测逻辑和/或流程,以确保客户受到保护。逆向工程工具可能很有用,因为它们可以帮助安全分析师更好地了解攻击者的技术,尤其是那些用于帮助他们保持低调的技术。它们可用于更新检测规则中的逻辑或特征提取过程,以获得依赖于机器学习的更高级检测解决方案。
通过与更广泛的网络安全社区分享从逆向工程中获得的见解,组织可以为集体威胁情报工作做出贡献,帮助其他人做好准备并防御类似的攻击。
CyberChef是一款功能强大的开源 Web 应用程序,由政府通信总部 (GCHQ)开发,可用于解码和解密 HTML 附件中的 JavaScript 代码。它提供了各种用于解码和解密的模块(或函数),这些模块可以组合起来以构建“配方”。然后可以以不同的格式导出这些配方,并在以后加载以供其他地方使用。下面显示了 HTML 附件的片段。
HTML 附件的片段,其中包含脚本标签内的 base64 编码字符串。
此附件包含一段 JavaScript 编码字符串,可使用 base64 解码函数进行解码。URL 已被加密,以避免读者误打开。
使用 CyberChef 中的“From Base64”函数对编码字符串及其解码后的等效字符串。
Talos 发布了新的配方,安全研究人员可以使用这些配方来逆转 HTML 附件中编码和/或加密的 JavaScript 代码。或者,这些配方可以集成到自动特征提取过程中,以提高对包含 HTML 附件的电子邮件的检测能力。我们还将分享本博文中未提及但经常用于逆转 HTML 附件的配方。这些配方捕获的组合显示了威胁行为者最常使用的规避技术。
深入探究逃避技术
过去几个月,Talos 一直在密切监控利用 HTML 走私的电子邮件活动。研究人员发现了威胁行为者用来绕过电子邮件网关的各种规避技术,从不同的编码机制到加密。在某些情况下,规避技术是串联在一起的,但在其他情况下,一种技术会被多次使用,以增加检测难度。此外,研究人员还对编码的 JavaScript 代码进行了混淆,以进一步增加检测难度。
玩转附件
Talos 目睹了威胁行为者多次试图操纵电子邮件附件,以利用软件工程疏忽并逃避检测系统。
一种常见的技术是使用替代或类似的附件文件扩展名来绕过消息过滤机制。例如,XHTML 是 HTML 的一个较旧且更严格的版本,它遵循 XML 语法,经常用于 HTML 走私。SHTML 是 HTML 的一个扩展,允许包含动态内容,也已被广泛使用。
研究人员发现,攻击者不使用其他文件扩展名,而是在 HTML 文件扩展名末尾添加点(例如“html.”、“htm.”、“htm…”),这是一种常见的攻击模式。这种攻击旨在绕过依赖 Content-Type 标头来确定电子邮件附件类型的电子邮件解析器。通过在文件扩展名末尾添加至少一个点,电子邮件附件的 Content-Type 将从 text/html 更改为 application/octet-stream(参见下面的示例)。
示例电子邮件 HTML 附件的 Content-Type。
示例电子邮件的“htm.”附件的 Content-Type。
在某些情况下,附件的文件扩展名会重复多次,或者附件没有任何文件扩展名(见下面的示例)。我们还观察到尝试组合不同的文件扩展名(例如“.pdf.html”或“xls.html”),这可能会混淆检测代码的文件类型识别逻辑。这可能会影响文件如何传递到下游模块进行进一步评估。
带有“.html .html”文件扩展名的示例电子邮件。
上述电子邮件的 HTML 附件片段,其中包含 JavaScript 代码。
带有缺少文件扩展名的 HTML 附件的示例电子邮件。
上述电子邮件的 HTML 附件片段,其中包含 JavaScript 代码。
经常观察到的其他流行技术包括将 HTML 附件封装在 ZIP 存档中,以及将多个类似的 HTML 附件附加到一封电子邮件中。后一种方法被认为是为了增加成功率。以下电子邮件提供了一个示例,其中将多个内容相同的 SHTML 附件附加到鱼叉式网络钓鱼电子邮件中。威胁行为者的目标是提供多项就业福利,并诱骗受害者接受其中任何一项。这些福利对员工越有吸引力,攻击者成功的机会就越大。
带有多个 SHTML 附件的鱼叉式网络钓鱼示例电子邮件。
上述电子邮件的 SHTML 附件的片段,其中包含 JavaScript 代码以及解码的网络钓鱼 URL。
混淆
代码混淆在 HTML 走私攻击中被广泛使用,以使其检测更具挑战性且成本更高。标识符重命名是经常应用于 JavaScript 代码的最流行技术之一,它将代码的关键标识符(例如变量和函数名称)更改为一些无意义的字符串。这种技术之所以流行,是因为它由大多数免费和开源混淆器提供,并且不会改变代码的逻辑。下面提供了两个示例。在第一个示例中,网络钓鱼 URL 是一个整数数组,存储在一个混淆的变量中,然后在运行中对其进行解码,然后使用“点击”方法将受害者重定向到网络钓鱼页面。
HTML 附件中包含混淆的 JavaScript 的鱼叉式网络钓鱼示例电子邮件。
上述电子邮件的 HTML 附件片段,其中包含通过标识符重命名方法混淆的 JavaScript 变量和解码的网络钓鱼 URL。
在第二个示例中,函数名称也经过了混淆。这里,首先通过一系列替换对混淆的字符串进行解码。随后,解码后的字符串被传递给“eval”方法,并由该方法执行。
HTML 附件中包含混淆的 JavaScript 的示例电子邮件。
上述电子邮件的 HTML 附件片段,其中包含通过标识符重命名方法混淆的 JavaScript 变量和函数。
多次使用单一规避技术
以下案例提供了一个例子,其中我们的一位客户在 2023 年 10 月收到了一封带有“html。”附件的电子邮件。在这种情况下,威胁行为者两次利用 base64 编码方法(一种也称为双重编码的技术)来逃避可能在分析脚本之前依赖单级解码程序的检测系统。
带有 HTML 附件的鱼叉式网络钓鱼示例电子邮件,该附件包含双重编码的 JavaScript 字符串变量。
HTML 附件的内容如下图所示。此附件包含四个隐藏的输入字段。隐藏的输入字段在网页上不可见,但它们仍可保存提交表单时发送到服务器的值。最初,JavaScript 代码检索这些隐藏输入字段的值。然后,它使用“substr”方法从值中提取子字符串并将它们连接起来。最后,从这些隐藏字段动态生成两个 URL(隐藏字段和下一个变量的值可以通过此配方解码:Base64_Decode_DecimalUnicode2String_Base64_Decode配方)。
上述电子邮件的 HTML 附件片段,包含双重编码的 JavaScript 字符串变量。
最终的钓鱼页面 (https[:]//dompr[.]arrogree[.]park/login.php) 是即时构建的,并存储在“trc”变量中,一旦 HTML 页面完全加载,就会使用“onload”方法自动显示给受害者。一旦用户输入凭证,“SFiegrt”方法就会使用异步 HTTP POST 请求将其发送到另一个远程服务器 (https[:]//cpsvr[.]hiominsa[.]com/POST/genofcatch.php)。
上述电子邮件的 HTML 附件片段,包含双重编码的 JavaScript 字符串变量和解码的 URL。
串联不同的逃避技术
Talos 发现,电子邮件攻击活动中不断有人试图将不同的编码和/或加密技术结合到 HTML 附件中,以逃避检测。此外,威胁行为者通常会混淆嵌入的 JavaScript 代码,以增加成功的机会。
在下面的示例中,您可以找到一封带有“htm”附件的电子邮件,该附件于 2023 年 12 月发送给我们的一位客户。
带有 HTML 附件的鱼叉式网络钓鱼示例电子邮件,结合了标识符重命名混淆、base64 编码和凯撒加密以绕过检测。
嵌入的 JavaScript 代码如下图所示。这封电子邮件显然是为特定收件人量身定制的(参见被屏蔽的电子邮件地址)。
上述电子邮件的 HTML 附件片段,其中包含混淆的 JavaScript 变量和 base64 编码的字符串变量。
脚本块包含一个名为“_0x5da6a8”的模糊变量,其中包含一个 base64 编码的字符串。解码后(通过Base64_Decode_2配方),它会生成主要的 JavaScript 代码,其中包括最终的网络钓鱼 URL 和去模糊化函数。去模糊化函数将“link”字符串变量作为输入,迭代其字符,将每个字符转换为其 Unicode 等价物,从每个字符的十进制值中减去五,将得到的十进制值转换回 Unicode 字符,并将 Unicode 值转换回字符串。在底层,这个函数有效地复制了凯撒密码解密方法的功能(参见Caesar_Decrypt配方)。
上述 base64 编码的字符串变量、凯撒解密函数和网络钓鱼 URL 的解码 JavaScript 代码。
因此,在这种情况下,威胁行为者同时使用了编码、凯撒加密和混淆来逃避检测。
下面的示例电子邮件显示了威胁行为者如何在 HTML 附件中结合编码和 AES 加密来逃避检测。
带有 HTML 附件的鱼叉式网络钓鱼示例电子邮件,该附件结合了 base64 编码和 AES 加密以绕过检测。
上述电子邮件的 HTML 附件片段,其中有一个隐藏的 base64 编码输入字段。
从 HTML 附件片段中可以看出,此文件中有一个 base64 编码的字符串。首先使用“atob”方法(或Base64_Decode_1配方)解码此字符串。解码后,它会生成一个包含四个密钥 (ad) 的 JSON 字符串,如下所示。“a”密钥的值是加密字符串,它会即时解密。“b”和“d”密钥的值分别是用于创建解密密钥的 PBKDF2 密钥派生函数的密码和盐。“c”密钥的值是 AES 解密函数的初始化向量 (IV)。
解码后的 JSON 字符串是从上面 HTML 附件中的编码输入字段中获取的。
使用上述值,可以动态派生解密密钥(使用Derive_Key_PBKDF2配方)。然后,使用此密钥和 IV 参数,解密“a”的值(使用Base64_Decode_AES_CBC_Decrypt配方)以检索 URL,如下所示。请注意,内部 URL 为 HEX 格式(可使用Hex_Decode配方解码)。
最终的钓鱼URL是通过AES解密得到的。
创建此 URL 后,将向其发送一个带有 POST 方法的提取请求,其 JSON 主体包含“{ "lettuce": "friendliness" }”。然后,提取请求的响应将以文本形式读取。通过调用 pea 函数再次解密文本,最后使用“document.write”将第二个解密结果写入文档,替换所有当前内容。上面的演练说明了威胁行为者如何结合不同的逃避技术,以及防御者检测此类威胁的难度。
猖獗的 HTML 走私
2023 年 10 月 1 日至 2024 年 5 月 31 日期间使用 HTML 走私的唯一电子邮件数量。
上图显示,我们观察到利用此技术的电子邮件数量在 2024 年 2 月 2 日达到峰值,尤其是那些在 HTML 附件中使用高级编码和混淆的电子邮件。随后的饼图显示,与欧洲客户相比,我们的美国客户受到利用此技术的电子邮件威胁的攻击次数明显更多。
针对不同地理区域的客户使用 HTML 走私的电子邮件百分比。
我们注意到,在观察的时间段内,某些垂直行业比其他行业更容易受到使用 HTML 走私技术的电子邮件威胁的攻击。例如,人力资源、保险和医疗保健领域的公司受到的攻击最多,而法律、供应链和电子商务公司受到的攻击最少。
不同垂直行业中使用 HTML 走私的电子邮件威胁的定罪数量。
我们的观察表明,在利用 HTML 走私技术的电子邮件威胁中,文件扩展名“.shtml”的使用最为广泛,其次是“.htm”和“.html”。排名第四和第五的文件扩展名分别是“.htm....”和“.xhtml”。我们发现其他有趣的文件扩展名包括“.pdf.shtml”、“.pdf.htm”和“.xlsx.html”。我们已将这些文件扩展名确定为利用软件工程疏忽和绕过检测机制的潜在技术。
在使用 HTML 走私的电子邮件活动中观察到的顶级 HTML 附件文件扩展名。
如何防范使用 HTML 走私的电子邮件威胁?
如前所述,HTML 走私对传统安全解决方案和基于规则的检测引擎构成了重大挑战。编码、加密和混淆的广泛部署使得利用这种技术的电子邮件检测具有挑战性,因此需要在防御的各个方面进行增强。下面详细介绍了其中几个领域。
多层防御
迅速阻止攻击可将其对客户业务运营的潜在影响降至最低。因此,在初始阶段消除威胁是有利的,例如在电子邮件网关和 Web 过滤级别。但是,如果邮件通过这些外围安全控制并进入用户的收件箱,则追溯检测和端点保护控制应该在后期检测到这些邮件并将其从用户的收件箱中拉出,或者阻止在受害者的设备上执行此类恶意 JavaScript。
改进安全工程
尽管威胁行为者通常对商业安全解决方案的架构和内部工作原理了解不足,但他们偶尔会利用软件工程疏忽来绕过检测机制。一个值得注意的例子是他们操纵电子邮件附件来逃避审查。因此,监控这些逃避技术并相应地修改代码可以显著提高现有检测引擎的效率。Talos 精确监控对手技术的变化,并确保我们的客户受到保护。
先进的检测方法
HTML 走私技术使电子邮件能够有效逃避传统的外围安全措施(包括电子邮件网关),并对基于规则的系统造成重大检测挑战。因此,部署更复杂的消息处理和安全解决方案势在必行。此外,增强端点安全措施以防止在用户设备上执行此类脚本也至关重要。
Talos 持续监控攻击者技术的变化并更新我们的检测能力,以确保我们的客户得到保护。在此处了解有关思科安全电子邮件威胁防御的更多信息。
攻击指标 (IOC)
与此博客文章相关的妥协指标 (IOC) 可 在此处找到。https://github.com/Cisco-Talos/IOCs/tree/2b2e61ac3b311c06ad8b040fcbe1aca2e594b266/2024/07
Hidden between the tags: Insights into spammers’ evasion techniques in HTML Smuggling
https://blog.talosintelligence.com/hidden-between-the-tags-insights-into-evasion-techniques-in-html-smuggling/
原文始发于微信公众号(Ots安全):隐藏在标签之间:深入了解垃圾邮件发送者在 HTML 走私中的规避技术
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论