
你有没有想过,一张看似普通的登录按钮、验证码图标,甚至网页上的小动画,可能正悄悄把你引向一个伪造的银行登录页?这不是科幻情节,而是正在发生的网络攻击新趋势。
近日,全球知名恶意软件分析平台VirusTotal披露了一起令人警觉的安全事件:在近期上传的文件中,有44个恶意SVG图像文件在提交时,未被任何一家杀毒引擎检测出异常。这意味着,这些文件在当时几乎可以“畅通无阻”地穿过绝大多数安全系统,成为黑客实施钓鱼攻击的“隐形武器”。
这一发现,揭开了网络安全领域一个长期被忽视的盲区——图像文件,尤其是SVG格式,正在被黑客用作攻击载体。

SVG不是普通图片,而是“会动的代码”
SVG,全称可缩放矢量图形(Scalable Vector Graphics),是一种基于XML的矢量图像格式。它广泛应用于网页设计、APP界面、电子邮件模板中,因其清晰缩放、体积小巧而深受开发者喜爱。
但很多人不知道的是,SVG本质上不是一张“静态图”,而是一段可执行的代码。
“很多人以为图片就是图片,点开看看而已。”公共互联网反网络钓鱼工作组技术专家芦笛解释道,“但SVG不同,它支持内嵌JavaScript脚本、加载外部资源、绑定点击事件——换句话说,它更像一个微型网页,而不是一张照片。”
黑客正是利用了这一点。他们将恶意代码隐藏在SVG文件中,比如:
在图像上绑定onclick事件,用户一点就跳转到钓鱼网站;
通过<script>标签加载远程恶意脚本;
使用<foreignObject>嵌入HTML内容,伪装成登录表单;
对代码进行Base64编码或混淆,逃避静态扫描。
这些恶意SVG文件常被包装成“登录按钮”“验证码图标”“支付成功提示”等高信任度元素,嵌入钓鱼邮件、即时通讯消息,甚至伪装成企业官网的前端资源。
“你收到一封邮件,上面有个‘点击验证身份’的蓝色按钮,长得跟真的一样,你一点,就被带到一个伪造的邮箱登录页。”芦笛说,“而那个按钮,就是个带毒的SVG。”
为何杀毒软件“集体失明”?
VirusTotal平台上44个样本“零检出”,听起来吓人,但背后有其技术原因。
首先,SVG结构高度灵活。它基于文本(XML),可以有无数种写法,变量命名、标签顺序、编码方式都可以随意变化,传统基于“特征码”的杀毒引擎很难建立有效的签名规则。
其次,安全产品普遍对图像文件“网开一面”。许多企业安全网关、邮件过滤系统默认将image/*类型的文件视为低风险,不进行深度解析或脚本剥离,直接放行。这给了攻击者可乘之机。
再者,行为仿真检测尚未普及。大多数杀毒引擎仍依赖静态分析,而SVG中的恶意行为往往需要用户交互(如点击)才会触发,在自动化沙箱中难以复现。
“这就像是安检仪只检查行李的外形,却不打开看里面。”芦笛比喻道,“黑客把刀藏在一件可变形的衣服里,机器扫不出来,人眼也看不出问题。”
技术科普:SVG攻击的“三步走”
一次典型的SVG钓鱼攻击,通常分为三步:
伪装嵌入:攻击者将恶意SVG文件插入钓鱼邮件、聊天消息或仿冒网站。由于是“图片”,往往能绕过内容过滤。
诱导交互:用户看到一个看似正常的按钮或图标,出于习惯点击。
触发载荷:点击后,内嵌脚本执行,可能直接跳转至钓鱼页面,或下载后续恶意程序(如木马、勒索软件)。
更危险的是,这类攻击还可用于供应链污染。例如,黑客将恶意SVG提交至开源图标库,开发者无意中将其引入企业官网或内部系统,导致整个组织暴露在风险中。
影响深远:钓鱼页面更“像真的”
与传统钓鱼相比,使用SVG的攻击有三大优势:
视觉保真度高:SVG是矢量图,清晰无锯齿,能完美还原品牌元素,提升欺骗性;
体积小、加载快:适合嵌入邮件和即时通讯工具;
绕过率高:多数安全产品不深度检查图像文件。
“过去我们看钓鱼网站,常觉得‘这按钮怎么这么糊’‘这图标不对劲’。”芦笛说,“但现在,它们可以做得和真的一模一样,甚至更精致。”
此外,随着远程办公和协作工具普及,用户在Slack、Teams、邮件中频繁接收图像文件,警惕性本就较低,更容易中招。
专家建议:把SVG当“可疑分子”对待
面对这一新型威胁,芦笛结合VirusTotal的分析,提出五项关键防护建议:
1. 将SVG视为主动内容,而非普通图片
企业应调整安全策略,不再默认信任SVG文件。在邮件网关、WAF(Web应用防火墙)、代理服务器中,对SVG进行结构化解析,禁止<script>、<foreignObject>、onload、onclick等高风险标签和事件属性。
2. 实施内容安全策略(CSP)
在网站前端部署CSP策略,明确禁止内联脚本执行,限制资源加载来源。例如,设置script-src 'self',防止SVG加载外部恶意脚本。
3. 对通信渠道的SVG执行“剥离”处理
在邮件和即时通讯系统中,自动清除SVG文件中的脚本和事件代码,只保留纯图形部分。类似“PDF净化”,实现“安全渲染”。
4. 开发侧加强代码审计
在CI/CD(持续集成/持续交付)流程中,加入静态应用安全测试(SAST)工具,自动扫描前端资源中的异常SVG指令,防止恶意代码混入生产环境。
5. 加强用户教育
提醒员工:不要轻易点击邮件或聊天中的“图片按钮”,尤其是涉及登录、验证、支付等敏感操作。应通过手动输入网址或官方APP进行操作。
“你可以把SVG想象成一个‘会说话的图片’。”芦笛说,“既然它能‘说话’,就可能‘骗人’。我们必须用对待网页的标准去对待它。”
厂商责任:加快行为检测与AST分析
对于安全厂商,此次事件也敲响了警钟。专家呼吁:
加快部署基于抽象语法树(AST)分析的检测模块,识别SVG中的可疑代码结构;
提升行为仿真能力,在沙箱中模拟用户点击,触发隐藏载荷;
建立SVG专项检测规则库,推动行业标准制定。
结语:没有“绝对安全”的文件类型
44个“零检出”SVG样本的出现,再次证明:在网络安全世界,没有哪种文件格式是天生安全的。
从早期的.exe,到后来的.doc、.pdf,再到如今的SVG,攻击者总能找到新的“藏身之处”。防御者必须不断更新认知,打破“图片=安全”的思维定式。
正如芦笛所言:“黑客从不创造新技术,他们只是把现有的东西,用在了你没想到的地方。”
下一次,当你看到一个“特别精致”的登录按钮时,不妨多问一句:它,真的只是一个按钮吗?
编辑:芦笛(公共互联网反网络钓鱼工作组)
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。