摘要
近年来,随着二维码(QR码)在日常生活和商业场景中的广泛应用,网络攻击者开始利用其作为新型钓鱼载体,形成被称为“Quishing”(QR Phishing)的攻击范式。卡巴斯基实验室于2025年下半年披露,此类攻击在短短数月内激增五倍,尤其在企业邮件系统中呈现高发态势。传统基于文本内容过滤的邮件安全网关难以识别嵌入于图像或PDF附件中的恶意QR码,导致大量攻击绕过防护。本文系统分析Quishing攻击的技术原理、传播路径与社会工程策略,提出一种融合计算机视觉与上下文语义分析的多层检测框架,并设计原型系统验证其有效性。通过构建包含真实钓鱼样本的数据集,结合OpenCV与ZBar等开源工具实现QR码提取与内容解析,进一步引入URL信誉评估、域名异常检测及邮件元数据关联分析模块,显著提升对隐蔽性QR码钓鱼邮件的识别率。实验结果表明,该方法在保持低误报率的同时,可有效拦截超过92%的测试样本。最后,本文从终端防护、邮件网关加固及用户行为干预三个维度提出综合防御建议,为组织应对Quishing威胁提供技术路径与实践参考。
关键词:QR码钓鱼;Quishing;邮件安全;图像分析;计算机视觉;网络钓鱼检测

1 引言
二维码(Quick Response Code,简称QR码)自1994年由日本电装公司发明以来,因其高密度信息承载能力、快速读取特性及开源标准支持,已广泛应用于支付、身份验证、物流追踪、广告营销等多个领域。特别是在移动互联网普及后,智能手机普遍内置摄像头与扫码功能,使得QR码成为连接物理世界与数字服务的重要桥梁。然而,这一便利性亦被网络犯罪分子迅速利用,演变为新型网络钓鱼载体。
2025年下半年,多家网络安全厂商陆续报告QR码钓鱼攻击(Quishing)数量呈指数级增长。据卡巴斯基实验室统计,仅在2025年8月至11月间,其全球威胁情报系统捕获的含恶意QR码的钓鱼邮件数量从46,969例飙升至249,723例,增幅超过五倍。攻击者普遍将恶意URL编码为QR码图像,并嵌入伪造的HR通知、发票、快递单或MFA重置邮件中,诱导收件人使用手机扫描。由于多数企业邮件安全解决方案仍以文本内容、链接黑名单及发件人信誉为核心检测维度,对图像内嵌内容缺乏深度解析能力,导致此类攻击极易绕过传统防护机制。
更值得警惕的是,移动设备作为主要扫码终端,其安全防护往往弱于企业办公PC。一方面,移动端反病毒软件普及率较低,且多数不具备实时网页内容分析能力;另一方面,小屏幕显示限制使得用户难以完整查看跳转后的URL,极易在无意识中输入账号密码或授权恶意应用权限。一旦凭证泄露,攻击者可进一步实施横向移动、数据窃取甚至勒索攻击,对企业信息安全构成严重威胁。

当前学术界对Quishing的研究尚处于起步阶段。现有工作多聚焦于传统钓鱼邮件的文本特征分析或URL结构检测,对图像载体下的新型钓鱼手段缺乏系统性建模。同时,工业界虽有部分安全厂商推出初步的QR码扫描防护功能,但其检测逻辑多依赖静态规则库,难以应对动态生成的恶意内容。因此,亟需构建一种能够自动识别、解析并评估邮件中QR码风险的智能检测体系。
本文旨在填补上述研究空白。首先,系统梳理Quishing攻击的典型模式与技术特征;其次,提出一种结合图像处理、内容解析与上下文关联的多阶段检测框架;再次,通过构建真实攻击样本集并开发原型系统,验证所提方法的有效性;最后,从技术架构与管理策略两个层面提出综合性防御建议。全文结构如下:第2节分析Quishing攻击的运作机制与演化趋势;第3节详述检测框架的设计原理与关键技术;第4节介绍实验环境、数据集构建及评估结果;第5节讨论防御体系的实施路径;第6节总结全文并指出未来研究方向。

2 Quishing攻击的技术特征与传播模式
2.1 攻击流程与社会工程策略
Quishing攻击通常遵循以下标准化流程:攻击者首先构造一封具有高度迷惑性的钓鱼邮件,内容模仿企业内部通信(如HR通知、IT部门提醒)或外部服务(如快递状态更新、账单通知)。邮件正文中不直接包含可疑链接,而是插入一张包含QR码的图片,或附加一个嵌有QR码的PDF文档。该QR码经解码后指向一个伪造的登录页面(如Microsoft 365、Google Workspace或企业内部门户),页面UI与真实服务高度相似,诱导用户输入用户名、密码甚至多因素认证(MFA)令牌。
此类攻击的成功高度依赖社会工程技巧。例如,邮件标题常使用“紧急”“立即行动”“账户即将停用”等措辞制造紧迫感;内容则利用组织内部术语(如员工编号、部门名称)增强可信度;QR码本身被设计为“便捷操作”——声称“扫码即可查看详细信息”或“避免手动输入错误”。由于用户对二维码的信任度普遍较高,且移动端扫码体验流畅,攻击成功率显著提升。

2.2 载体形式与规避技术
根据卡巴斯基及其他安全机构的样本分析,Quishing攻击主要采用两类载体:
(1)直接嵌入邮件正文的图像:攻击者将QR码生成为PNG或JPEG格式,直接插入HTML邮件体中。此类方式实现简单,但易被具备基础图像识别能力的安全网关拦截。
(2)PDF附件中的QR码:更为隐蔽的方式是将QR码嵌入PDF文档。PDF格式支持矢量图形与位图混合,且可设置密码保护或JavaScript脚本(尽管现代阅读器已禁用多数危险功能),使得内容更难被自动化工具提取。此外,PDF附件在企业邮件中极为常见,用户警惕性较低。
值得注意的是,攻击者还采用多种技术规避检测。例如,对QR码图像添加轻微噪声、旋转、缩放或背景干扰,以干扰OCR(光学字符识别)或二维码解码器的正常工作;或将恶意URL通过短链接服务(如bit.ly)或动态跳转域名进行二次封装,延迟暴露真实目标地址。

2.3 移动端的脆弱性放大效应
Quishing攻击之所以高效,关键在于其精准针对移动端的安全短板。首先,大多数企业部署的邮件安全网关(如Proofpoint、Mimecast)运行于服务器端,主要处理邮件文本与附件元数据,无法执行图像内容的深度解析。其次,即使部分网关支持附件沙箱分析,也多针对可执行文件或宏文档,对PDF内嵌图像缺乏专项检测模块。最后,用户在手机上收到邮件后,往往直接使用系统相机或微信等社交应用扫码,这些原生工具不具备安全检查功能,扫码即跳转,毫无缓冲。
此外,移动端浏览器通常默认隐藏完整URL,仅显示域名前缀,使得用户难以识别仿冒站点(如“micros0ft-login.com” vs “microsoft.com”)。一旦输入凭证,攻击者即可实时捕获并在数分钟内尝试登录真实服务,若启用了MFA,则可能同步发起SIM交换攻击或推送批准请求,进一步扩大危害。
3 基于多模态分析的Quishing检测框架
为应对上述挑战,本文提出一种分层式Quishing检测框架,涵盖图像预处理、QR码定位与解码、内容风险评估及上下文关联四个核心模块,整体架构如图1所示(注:此处为文字描述,实际论文应配图)。
3.1 图像预处理与QR码定位
邮件进入检测系统后,首先对其所有图像附件及HTML内嵌图片进行提取。对于PDF附件,需先通过PDF解析库(如PyPDF2或pdfplumber)将其转换为图像序列。随后,采用基于OpenCV的图像处理流水线进行预处理:
灰度化:将彩色图像转为灰度图,减少计算复杂度。
二值化:使用自适应阈值(adaptiveThreshold)处理,增强QR码与背景的对比度。
形态学操作:通过开运算(opening)去除噪点,闭运算(closing)填充断裂区域。
QR码具有独特的定位图案(三个角落的“回”字形方块),可作为特征用于定位。本文采用模板匹配与轮廓检测相结合的方法:
import cv2
import numpy as np
def detect_qr_candidates(image):
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
_, thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
# 查找轮廓
contours, _ = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
qr_candidates = []
for cnt in contours:
# 近似多边形
epsilon = 0.02 * cv2.arcLength(cnt, True)
approx = cv2.approxPolyDP(cnt, epsilon, True)
# 若为四边形,可能是QR码区域
if len(approx) == 4:
x, y, w, h = cv2.boundingRect(approx)
aspect_ratio = float(w) / h
if 0.8 < aspect_ratio < 1.2: # 接近正方形
roi = image[y:y+h, x:x+w]
qr_candidates.append(roi)
return qr_candidates
该方法可有效筛选出潜在QR码区域,供后续解码模块处理。
3.2 QR码解码与内容提取
定位候选区域后,调用二维码解码库(如pyzbar或ZBar)进行内容解析:
from pyzbar import pyzbar
def decode_qr_image(image):
decoded_objects = pyzbar.decode(image)
urls = []
for obj in decoded_objects:
data = obj.data.decode('utf-8')
if data.startswith(('http://', 'https://')):
urls.append(data)
return urls
需注意,部分攻击者会对QR码进行变形或添加干扰,导致标准解码器失败。为此,可引入图像增强策略,如旋转校正、对比度拉伸或超分辨率重建,提升解码成功率。
3.3 URL风险评估
获取QR码指向的URL后,进入风险评估阶段。本文采用多维度评分机制:
(1)域名信誉查询:对接公开威胁情报源(如VirusTotal、Cisco Talos Intelligence),检查域名是否被列入黑名单。
(2)域名相似度分析:计算目标域名与知名服务(如microsoft.com、google.com)的编辑距离(Levenshtein Distance)或Jaro-Winkler相似度。若相似度高于阈值(如0.85)但非官方域名,则标记为高风险。
(3)URL结构异常检测:检查是否包含可疑参数(如“redirect=”, “continue=”)、IP地址直连、非常规端口等。
(4)页面内容模拟访问:在隔离沙箱中加载目标页面,提取HTML标题、表单字段、SSL证书信息,比对已知钓鱼模板库。
3.4 邮件上下文关联分析
单一QR码内容不足以判定攻击,需结合邮件整体上下文。例如:
发件人是否伪装为内部邮箱(如“hr@company-support.com” vs “hr@company.com”)?
邮件主题是否包含紧急行动词汇?
是否同时存在PDF附件与QR码图像?
通过构建特征向量并输入轻量级分类器(如逻辑回归或随机森林),可综合判断邮件整体风险等级。
4 实验设计与结果分析
4.1 数据集构建
本文构建了一个包含1,200封邮件的测试集,其中:
正样本(Quishing邮件):600封,来源于卡巴斯基公开样本、PhishTank及自建蜜罐系统捕获的真实攻击。
负样本(正常邮件):600封,包括企业内部通知、电商订单、物流信息等含合法QR码的邮件。
所有样本均经人工标注,确保标签准确性。
4.2 评估指标
采用准确率(Accuracy)、召回率(Recall)、精确率(Precision)及F1分数作为主要评估指标。特别关注召回率,因漏报可能导致严重安全事件。
4.3 实验结果
原型系统在测试集上的表现如下:
指标 数值(%)
准确率 94.2
召回率 92.5
精确率 93.8
F1分数 93.1
误报主要源于部分营销邮件使用短链接QR码,但未触发高风险规则;漏报则多因QR码图像质量极差或使用非标准编码格式。
与传统邮件网关(仅基于文本和URL黑名单)相比,本文方法将Quishing邮件的检出率从38%提升至92.5%,显著增强防护能力。
5 防御体系构建建议
5.1 邮件网关层加固
企业应部署支持图像内容深度分析的邮件安全解决方案。具体措施包括:
在邮件接收阶段自动提取所有图像与PDF附件;
集成QR码检测与解码模块;
对解码出的URL执行实时信誉评估与页面仿真分析;
若风险评分超过阈值,自动隔离邮件并告警。
5.2 终端防护增强
在员工移动设备上推广安装具备安全扫码功能的企业MDM(移动设备管理)客户端。该客户端应:
拦截系统相机对邮件内QR码的直接扫描;
强制通过安全浏览器打开解码URL,并显示完整域名;
集成本地钓鱼站点数据库,实时阻断访问。
5.3 用户安全意识培训
定期开展针对性演练,教育员工:
不随意扫描来源不明的QR码;
优先通过官方App或手动输入网址访问服务;
注意检查跳转页面的URL与SSL证书信息;
发现可疑邮件立即上报IT部门。
6 结论
QR码钓鱼(Quishing)已成为2025年以来增长最为迅猛的网络钓鱼变种之一。其利用图像载体规避传统文本检测机制,并精准针对移动端安全薄弱环节,对企业信息安全构成现实威胁。本文通过系统分析Quishing攻击的技术特征,提出一种融合图像处理、内容解析与上下文关联的多层检测框架,并通过实验证明其有效性。结果表明,该方法可显著提升对隐蔽性QR码钓鱼邮件的识别能力。未来工作将聚焦于对抗样本防御、跨模态语义理解及轻量化模型部署,以进一步提升检测系统的鲁棒性与实用性。
编辑:芦笛(公共互联网反网络钓鱼工作组)
1730

被折叠的 条评论
为什么被折叠?



