攻击者越来越多地利用内嵌 JavaScript 和 Base64 编码有效载荷的 SVG 文件来发送钓鱼网页和恶意软件,同时逃避传统的检测。Deep CDR™ 是支持MetaDefender Core™ 的核心技术之一,通过移除所有活动内容(脚本、外部引用、事件处理程序等)并提供干净、符合标准的图像,在消除风险的同时保留功能,从而抵御此类攻击。正常、可信的 SVG(可缩放矢量图形)不需要 JavaScript,因此默认情况下会将其移除。
为什么选择 SVG
网络钓鱼有效载荷的完美载体
SVG 是一种基于 XML 的矢量图像格式,而不是简单的位图。
SVG 文件可以包括
- 脚本
- 事件处理程序
- 外部参考资料
这些功能对交互式图形非常有用,但攻击者会利用这些功能:
- 运行恶意代码
- 注入恶意 XML 数据
- 获取外部内容
- 渲染虚假登录页面
攻击者还将 SVG 与HTML/JS 走私相结合,在看似无害的图像中嵌入 Base64 有效负载,并在运行时对其进行解码。这种技术现在被正式列为 MITRE ATT&CK "SVG 走私"(T1027.017)。
主要启示
In normal enterprise content workflows (logos, icons, diagrams), SVGs don’t require JavaScript or active content. If you find <script>, event handlers, or remote references in an inbound SVG, treat them as risky.
我们在野外看到的
带有 Base64 解码钓鱼网站的电子邮件附件
- 发送:常规电子邮件带有 .svg 附件,许多电子邮件网关将其视为图像。
- Technique: Inside the SVG, an obfuscated <script> reconstructs a phishing page from a Base64 blob and loads it in the browser.
使用事件处理程序重定向的Drive网站
- 交付:被破坏或错字连篇的网站使用透明的 SVG 叠加,并带有可点击区域。
- 技术:事件属性(onload、onclick)使用 Base64 解码触发重定向。
为什么检测工作在这里举步维艰
当攻击者使用签名、模式规则和静态代码检查等传统方法时,这些方法就会失效:
- 使用 Base64、XOR、垃圾文本填充或多态模板进行混淆。
- 将执行时间推迟到运行时(如加载时),导致静态分析不可靠。
- 隐藏事件处理程序和外部引用等合法 SVG 功能背后的逻辑。
有趣的事实
根据 HTTP Archive 的数据,在排名前 1000 的网站中,92% 的图标和图形都使用了 SVG。
"如果活跃,就有风险"
针对 SVG 的Deep CDR
Deep CDR 是支持MetaDefender Core的核心技术之一,它不会试图猜测什么是恶意软件。它假定不受信任文件中的任何可执行或活动内容都是有风险的,并将其删除或消毒。
对于 SVG 来说,这意味着
- Remove JavaScript: Strips out any <script> elements and inline scripts to prevent code execution.
- 删除 CDATA:消除 CDATA 部分内可能嵌入有害逻辑的隐藏代码。
- 移除注入内容:阻止可执行恶意程序的注入内容。
- 处理图像递归清除嵌入的图像并移除外部图像。
- 规范化与重建:创建符合标准的 SVG,只包含安全的视觉元素。
- 可选择光栅化:将 SVG 转换为 PNG 或 PDF,用于不需要矢量交互的工作流程。
这种方法符合安全指南:对 SVG 进行消毒或沙盒化(或光栅化),以防止代码执行。
Deep CDR的顶级应用案例
电子邮件网关
在交付前对入站附件和链接文件(通过下载解析的 URL)进行消毒。转换为干净 SVG 的 SVG 可防止凭证收集器呈现和下载器启动。
协作平台
将Deep CDR 应用于通过 Teams、Slack 或 SharePoint 等工具共享的文件。在此对 SVG 进行净化,可确保用户在日常协作中不会被隐藏的登录屏幕或恶意脚本所欺骗。
网络上传门户
对上传到网站、内容管理系统或数字资产管理系统的所有文件实施消毒。这可以防止攻击者将有害代码隐藏在看似简单的徽标或图形中。
文件传输和MFT Managed File Transfer
将Deep CDR 集成到文件传输工作流程中,这样每个文件,尤其是来自合作伙伴或供应商的文件,在进入网络之前都是安全的。这样可以降低资产受损带来的供应链风险。
业务影响
忽略 SVG 净化可能导致..:
- 凭证盗窃:伪造登录页面获取用户凭证。
- 恶意软件感染:重定向链会发送勒索软件或窃取程序。
- 违反合规:涉及敏感数据的违规行为会引发罚款和声誉损失。
防止基于 SVG 的攻击的最佳实践
- 默认立场:不在 SVG 中使用来自不可信来源的 JavaScript。
- 消毒或光栅化:对所有输入的 SVG 文件应用Deep CDR 。
- 与 CSP 结合使用:用作深度防御,而非主要控制。
- 审计和日志:跟踪每项清理操作,以确保合规性和取证。