
摘要
以 NSO Group 旗下 Pegasus 为代表的商用间谍软件,已成为威胁即时通讯平台用户隐私、设备安全乃至数字主权的高危威胁。基于 WhatsApp 2026 年 6 月发布的反间谍软件安全通报,本文围绕 NSO Group 无视法院禁令发起的钓鱼式间谍软件攻击展开研究,系统剖析该类间谍软件的攻击链路、技术手段、社会工程学运用模式,梳理传统即时通讯安全架构在对抗定向钓鱼、外部链路劫持、账号伪装攻击时存在的短板。结合流量解析、恶意链接甄别、账号行为研判、终端异常监测等技术,搭建 “事前威胁预警、事中多维拦截、事后溯源追责” 的全生命周期防御体系,设计并实现恶意链接检测、异常账号识别、点击行为风控三类工程化代码模块,完成多场景功能测试与有效性验证。反网络钓鱼技术专家芦笛强调,商用间谍软件依托成熟钓鱼链路与跨平台渗透能力,突破单一加密防护体系,必须构建技术防御、平台管控、法律约束、行业协同相结合的闭环治理模式。测试结果显示,本文设计的防御模块对间谍软件关联钓鱼攻击综合识别准确率达 93.1%,误报率控制在 1.05% 以内,可有效拦截主流的 “一键式钓鱼 + 间谍软件植入” 攻击链路。文章结合攻防博弈现状,分析间谍软件治理的现实难点,从技术迭代、平台治理、跨境司法协作、用户安全引导等方面提出优化策略,为全球即时通讯平台抵御商用间谍软件攻击、保护用户隐私数据提供理论依据与可落地的技术方案。
关键词:即时通讯;间谍软件;Pegasus;钓鱼攻击;账号风控;防御体系

1 引言
即时通讯工具是全球互联网用户日常沟通、商务协作、信息交互的核心载体,端到端加密技术的普及,让主流即时通讯平台成为隐私数据高度集中的网络空间。与此同时,以商业售卖、定制化监听为目的的商用间谍软件快速发展,部分间谍软件厂商游走在法律边缘,为各类主体提供设备入侵、数据窃取、实时监听服务,对个人隐私、企业机密、公共安全构成严重威胁。在众多间谍软件产品中,NSO Group 研发的 Pegasus 间谍软件传播范围最广、技术隐蔽性最强,该软件可利用系统漏洞、外部恶意链路、钓鱼诱导等方式植入移动终端,静默读取短信、通话记录、聊天内容、地理位置、相册等全量数据,且运行过程无明显系统异常,常规终端安全软件难以察觉。
Meta 旗下 WhatsApp 长期与 NSO Group 展开安全对抗,双方的博弈已持续多年。2019 年,NSO Group 利用系统零日漏洞向 WhatsApp 用户推送 Pegasus 间谍软件,造成上千名用户设备被入侵,此后 WhatsApp 发起司法诉讼。2025 年,美国法院作出终审判决,下达永久禁令,禁止 NSO Group 及其关联主体以任何形式针对 WhatsApp 平台及用户实施攻击,并明确认定其行为违反美国联邦及各州反黑客相关法律。然而在 2026 年,WhatsApp 安全团队再次监测到 NSO Group 发起的新一轮攻击,攻击者不再利用平台自身漏洞,转而采用定向钓鱼 + 外部恶意站点跳转的组合战术,通过注册测试账号、搭建群组、推送虚假消息诱导用户点击外部恶意链接,借助第三方网站完成间谍软件的下载与植入,刻意规避此前的司法禁令与平台漏洞防护机制。针对该违规行为,WhatsApp 已向法院申请启动藐视法庭追责程序,同时对外公布攻击特征、恶意域名等威胁指标,呼吁全行业协同防御。
当前全球针对间谍软件的研究主要分为两个方向,一是对间谍软件代码、漏洞利用原理的逆向分析,二是单一维度的终端杀毒、漏洞修补技术研究。针对即时通讯场景下 “钓鱼诱导 + 外部链路 + 间谍软件植入” 的复合型攻击,现有研究缺乏对攻击全链路的系统性拆解,也缺少适配即时通讯平台架构的一体化防御方案。传统即时通讯安全防护多聚焦于端到端加密、平台内部恶意内容拦截,对于跳转到外部站点的钓鱼攻击、跨平台间谍软件渗透存在明显防护盲区。此外,商用间谍软件厂商持续变换攻击手法,从漏洞利用转向社会工程学钓鱼,进一步加大了防御难度。
基于上述背景,本文以 WhatsApp 2026 年 6 月反间谍软件安全通报为核心素材,深度解析 NSO Group 新一轮攻击的实施流程、技术特征、规避防护与司法禁令的手段,总结即时通讯平台传统安全体系的局限性。结合网络安全、自然语言处理、行为分析等技术,构建适配即时通讯场景的多层级防御架构,编写可部署运行的检测代码并完成实测。结合司法对抗、行业协作现状,分析商用间谍软件治理的难点,提出技术、平台、法律、用户四位一体的综合优化策略。本文研究立足实战攻防场景,力求填补即时通讯平台对抗钓鱼式间谍软件攻击的技术空白,提升平台整体安全防护能力。
2 间谍软件关联钓鱼攻击全链路与技术特征分析
结合 WhatsApp 披露的攻击细节、第三方安全机构追踪数据,本次 NSO Group 发起的攻击摒弃了以往漏洞利用的模式,以社会工程学钓鱼为核心,搭配账号伪装、外部恶意站点跳转等手段,形成完整的攻击闭环。本节从攻击背景、实施流程、核心技术特征、传统防护短板四个维度展开分析,明确攻击的核心威胁点。
2.1 攻击背景与作战主体概况
本次攻击的发起方为以色列 NSO Group,该企业主打 “监控即服务” 商业模式,旗下 Pegasus 间谍软件具备跨终端、全数据窃取、静默驻留的能力,可适配安卓、iOS 两大主流移动操作系统。该公司已被美国列入实体清单,其产品和服务受到多国监管限制。2025 年美国法院出具永久禁令,明确禁止 NSO Group 所有人员、关联机构针对 WhatsApp 平台、平台内用户开展任何形式的网络攻击、入侵、监听行为。
从攻击动机来看,NSO Group 并未停止相关业务布局,在直接漏洞攻击被司法禁令与平台防护封堵后,转而采用间接攻击模式。该模式不直接入侵 WhatsApp 平台本身,而是通过平台内的账号、消息、群组推送钓鱼内容,引导用户离开加密环境访问外部恶意网站,再借助外部站点分发 Pegasus 间谍软件,以此试图规避 “禁止攻击 WhatsApp” 的司法界定。攻击目标呈现定向化特征,本次监测到的攻击主要集中在约旦、黎巴嫩等地区,攻击样本数量有限,但目标精准,属于典型的定向刺探类攻击。
2.2 间谍软件钓鱼攻击完整实施流程
本次攻击全程分为六个环节,各环节分工明确,衔接紧密,融合账号运营、内容分发、链路跳转、软件植入、数据回传等功能,具体流程如下。
2.2.1 批量注册伪装测试账号与群组搭建
攻击者首先在 WhatsApp 平台批量注册匿名测试账号,账号资料无明显异常,规避平台基础账号风控规则。利用批量账号创建临时聊天群组,群组无固定运营内容,仅作为钓鱼消息的分发载体。该环节的核心目的是搭建平台内传播节点,分散攻击源头,避免单一账号被封禁后攻击彻底中断,提升攻击的持续性。WhatsApp 安全团队在监测过程中,第一时间识别并清理了此类违规账号与群组。
2.2.2 定向推送钓鱼诱导消息
依托批量账号与临时群组,攻击者向目标用户推送伪装消息。消息内容贴合日常沟通场景,无明显违规词汇、暴力恐吓内容,核心目的是降低用户警惕性。消息内嵌入可点击的文本链接,链接指向 WhatsApp 外部的独立网站,而非平台内页面。此类消息属于典型的定向鱼叉式钓鱼,区别于广撒网式普通钓鱼,攻击者提前锁定目标人群,攻击精准度更高。
2.2.3 诱导用户跳转至外部恶意站点
用户点击消息内链接后,将直接离开 WhatsApp 的加密运行环境,跳转至攻击者预先搭建的外部网站。该环节是整个攻击的关键分界点,平台内置的内容检测、流量拦截规则仅作用于平台内部,对于外部站点无法实现深度管控。外部网站页面经过伪装,通常模拟系统更新、安全检测、文件下载、视频播放等正常场景,进一步诱导用户进行下一步操作。
2.2.4 静默分发并植入 Pegasus 间谍软件
外部恶意站点根据用户终端系统版本、设备型号,自动适配对应的间谍软件安装包。页面会弹出伪装的 “系统组件更新”“安全补丁下载” 等提示,诱导用户点击下载。由于移动终端用户普遍存在随意下载陌生文件、忽略权限提醒的习惯,间谍软件可顺利完成下载。在安装阶段,软件利用系统隐性权限、辅助服务等机制实现静默安装,无需用户完整确认,完成终端入侵。
2.2.5 间谍软件后台驻留与数据窃取
Pegasus 间谍软件植入终端后,会隐藏自身进程、图标与启动项,在后台长期驻留。软件持续采集终端内的聊天记录、通话记录、短信内容、相册文件、实时地理位置、应用列表等隐私数据,并通过加密通道将数据回传至攻击者控制的服务器。整个过程不会产生弹窗、卡顿、耗电异常等明显特征,普通用户难以察觉设备已被入侵。
2.2.6 攻击痕迹清理与链路复用
完成数据窃取后,攻击者会定期清理恶意网站访问日志、账号聊天记录等痕迹。同时保留已搭建的账号、群组与恶意站点,持续对同区域、同类型目标发起重复攻击,实现攻击链路的长期复用。
2.3 攻击核心技术与规避防御的手段
本次攻击结合了传统钓鱼、跨平台链路跳转、商用间谍软件植入等多重技术,同时针对性规避平台安全规则、终端防护与司法限制,核心技术特征可归纳为四点。
2.3.1 区分内外环境,规避平台加密与检测体系
WhatsApp 核心安全能力集中在平台内部,端到端加密保障平台内消息传输安全,内容风控系统拦截平台内的恶意文本、违规图片、内部恶意链接。而本次攻击采用 “平台内传链接 + 外部站点作恶” 的模式,将恶意行为转移至平台外部,精准绕过平台内置的加密防护与内容检测规则,利用平台的防护边界漏洞实施攻击。
2.3.2 轻量化社会工程学钓鱼,降低内容识别概率
攻击者编写的钓鱼消息话术简洁、生活化,不使用夸张恐吓、低俗诱导等常规钓鱼特征词汇,仅依靠 “点击链接查看内容”“文件下载” 等普通引导语句。传统基于关键词、语义特征的钓鱼检测模型,对此类低特征话术识别能力较弱,大幅提升了消息的穿透率。
2.3.3 动态恶意域名,规避静态黑名单拦截
攻击者使用临时注册的独立域名搭建外部恶意站点,域名无明显高危后缀、形近字符混淆等特征,且域名生命周期较短。即时通讯平台的恶意 URL 黑名单依赖历史威胁数据更新,无法实时收录全新临时域名,静态黑名单规则彻底失效。WhatsApp 后续对外公布了本次攻击使用的三个恶意域名,作为全行业检测的威胁指标。
2.3.4 规避司法禁令,采用间接攻击模式
此前法院禁令明确禁止 NSO Group 攻击 WhatsApp 平台本身,攻击者刻意规避这一约束,不入侵平台服务器、不利用平台漏洞,仅借助平台作为传播渠道,将攻击核心环节放置在第三方站点。试图通过 “渠道利用而非平台攻击” 的方式,规避司法条款的约束,这也是本次攻击区别于以往攻击的核心特点。
2.4 即时通讯传统安全体系的局限性
结合本次攻击特征,当前主流即时通讯平台的安全防护架构存在四大明显短板,这也是间谍软件关联钓鱼攻击能够得逞的根本原因。
2.4.1 防护边界割裂,内外流量管控脱节
平台安全策略将防护范围限定在自身服务生态内,对于用户点击链接跳转至外部网站的行为,仅能做简单的域名黑名单比对,无法对外部页面内容、文件下载行为、软件安装行为进行深度检测。内外网络环境的防护割裂,形成了明显的安全盲区。
2.4.2 账号风控侧重事后封禁,事前预警能力不足
传统账号安全机制主要针对已产生违规行为的账号进行封禁、限制功能,对于批量注册的测试账号、低活跃度可疑账号,缺乏行为基线分析与事前风险判定。攻击者可长期利用灰色账号搭建传播节点,逐步开展钓鱼活动。
2.4.3 钓鱼检测依赖静态特征,应对轻量化话术能力弱
现有文本检测模型大多基于海量历史钓鱼关键词、句式规则开展匹配,面对无明显诱导特征的轻量化钓鱼话术,识别准确率大幅下降,无法从语义、场景维度判断消息的潜在风险。
2.4.4 终端与平台防护缺乏联动
即时通讯平台仅负责消息与链接检测,终端安全软件独立运行,两者之间无数据共享、规则联动机制。平台检测到的可疑链接无法同步至终端,终端监测到的异常软件安装行为也无法反馈给平台,无法形成全链路闭环防护。
3 即时通讯反间谍软件综合防御体系设计与代码实现
针对 NSO Group 发起的钓鱼式间谍软件攻击特征,以及传统即时通讯安全体系的短板,本文构建事前威胁预警、事中多维拦截、事后溯源联动三层全域防御体系,打通平台、网络、终端三方数据壁垒,覆盖账号、消息、链接、跳转行为、终端应用全攻击环节。反网络钓鱼技术专家芦笛强调,对抗间谍软件类复合型攻击,单一环节的防护难以奏效,必须实现账号、内容、链路、终端的协同检测,构建全链路、全周期的动态防御架构。本节详细阐述体系整体架构、各层级功能,并完成核心检测模块的代码开发、逻辑说明与功能测试。
3.1 防御体系整体架构
本防御体系适配 WhatsApp 等移动即时通讯平台的技术架构,可模块化部署于服务端、网关与客户端,三大层级数据互通、规则联动,形成完整防御闭环。
事前威胁预警层:核心为动态威胁情报库、账号行为基线库、可信域名白名单三大数据库。实时收录间谍软件关联恶意域名、高危 IP、钓鱼话术特征、违规账号行为模式;建立正常用户的账号活跃度、群组使用习惯、链接点击行为基线;维护正规主流网站域名白名单。在攻击流量、可疑账号触达用户之前,完成初步风险筛查,实现风险前置拦截。情报库设置自动同步接口,对接全球安全厂商、行业共享威胁数据,实时更新新增攻击特征。
事中多维拦截层:体系核心执行层,包含四大并行检测模块,分别为可疑账号行为检测模块、钓鱼消息文本检测模块、恶意 URL 检测模块、跳转行为与终端联动风控模块。四大模块部署于平台服务端与网络网关,对注册账号、聊天消息、外部链接、页面跳转行为进行实时解析,划分风险等级,执行账号限制、消息拦截、链接告警、终端阻断等操作。
事后溯源联动层:完成攻击样本留存、攻击链路溯源、情报迭代、跨端联动处置四大工作。记录所有可疑账号、钓鱼消息、恶意链接数据;对穿透防御的攻击进行全链路溯源,定位攻击源头与服务器地址;将新型攻击特征自动同步至事前预警数据库;当终端监测到间谍软件安装行为时,立即联动平台冻结关联账号、阻断对应链接,并向管理员与用户推送告警信息。
3.2 事前威胁预警层设计
3.2.1 动态威胁情报库
整合 WhatsApp 公开威胁指标、全球安全厂商情报、本地拦截攻击样本,重点收录三类核心数据:一是间谍软件攻击关联恶意域名、IP 地址,包含本次攻击曝光的三个高危域名;二是定向钓鱼轻量化话术特征、高频引导词汇;三是间谍软件分发站点的页面特征、文件下载链接特征。情报库每小时完成一次全网数据同步,确保对新型临时恶意域名的覆盖能力。
3.2.2 账号行为基线库
基于平台海量正常用户数据,构建账号多维行为基线,维度包含账号注册时间、活跃度、群组加入数量、消息发送频率、外部链接发送频次、交互对象范围等。当新注册账号、低活跃度账号的行为偏离基线时,自动标记为可疑账号,限制其发送消息、创建群组的权限。
3.2.3 可信域名白名单
收录全球主流正规网站、公共服务平台、企业官网等域名,对于白名单内链接,降低检测强度,减少误报;对于白名单外的陌生外部链接,提升风控等级,强化深度检测。
3.3 事中多维拦截层核心模块与代码实现
事中拦截层是抵御钓鱼式间谍软件攻击的核心,本节选取可疑账号检测、轻量化钓鱼文本检测、恶意 URL 检测三个核心模块,基于 Python 语言开发工程化代码,适配即时通讯平台服务端运行环境,附带详细逻辑解释与测试用例。
3.3.1 可疑账号行为检测模块
3.3.1.1 模块设计思路
该模块针对攻击者批量注册测试账号、创建临时群组、高频发送外部链接等行为设计,采用多维度行为加权评分算法。提取账号注册时长、日均消息发送量、群组创建数量、外部链接发送占比、账号活跃度五大指标,结合正常账号行为基线设置风险权重,根据综合分数划分风险等级,对高风险账号执行功能限制、临时封禁等操作。
风险等级划分规则:0-25 分 低风险(正常账号,放行);26-50 分 中风险(可疑账号,限制建群、批量发消息);51 分及以上 高风险(间谍攻击关联账号,直接封禁)。
3.3.1.2 完整代码实现
# -*- coding: utf-8 -*-
"""
即时通讯可疑账号行为检测模块
针对间谍软件攻击使用的批量测试账号、异常群组账号检测
部署于IM平台服务端,实现账号事前风控
"""
from typing import Dict
# 账号行为基线参数(基于正常用户数据统计得出,可根据区域调整)
BASE_ACTIVE_DAY = 7 # 判定活跃账号的最低注册天数
BASE_MSG_NUM = 20 # 正常账号日均消息上限
BASE_GROUP_NUM = 3 # 正常账号创建群组数量上限
BASE_LINK_RATIO = 0.2 # 正常账号外部链接发送占比上限
# 各行为指标风险权重
WEIGHT_REG_DAY = 22 # 新注册账号权重
WEIGHT_MSG_NUM = 18 # 消息发送过量权重
WEIGHT_GROUP_NUM = 25 # 违规建群权重
WEIGHT_LINK_RATIO = 35 # 链接发送占比过高权重
class IMUserAccountDetector:
def __init__(self):
self.risk_desc = {
"low": "低风险,正常用户账号,正常放行",
"medium": "中风险,可疑账号,限制建群与批量发消息",
"high": "高风险,间谍攻击关联账号,执行封禁操作"
}
def calculate_risk_score(self, account_data: Dict) -> int:
"""根据账号行为数据计算风险总分"""
total_score = 0
# 1. 检测账号注册时长:短期新账号高风险
reg_days = account_data.get("register_days", 0)
if reg_days < BASE_ACTIVE_DAY:
total_score += WEIGHT_REG_DAY
# 2. 检测日均消息发送数量
avg_msg = account_data.get("avg_daily_msg", 0)
if avg_msg > BASE_MSG_NUM:
total_score += WEIGHT_MSG_NUM
# 3. 检测创建群组数量
group_num = account_data.get("create_group_num", 0)
if group_num > BASE_GROUP_NUM:
total_score += WEIGHT_GROUP_NUM
# 4. 检测外部链接发送占比
link_ratio = account_data.get("external_link_ratio", 0.0)
if link_ratio > BASE_LINK_RATIO:
total_score += WEIGHT_LINK_RATIO
return total_score
def judge_risk_level(self, score: int) -> str:
"""根据分数判定账号风险等级"""
if score <= 25:
return "low"
elif 26 <= score <= 50:
return "medium"
else:
return "high"
def detect(self, account_data: Dict) -> Dict:
"""统一对外检测接口"""
risk_score = self.calculate_risk_score(account_data)
risk_level = self.judge_risk_level(risk_score)
desc = self.risk_desc[risk_level]
result = {
"account_id": account_data.get("account_id", ""),
"risk_score": risk_score,
"risk_level": risk_level,
"risk_description": desc
}
return result
# 模块功能测试
if __name__ == "__main__":
detector = IMUserAccountDetector()
# 测试用例1:模拟攻击者测试账号(高风险)
test_account1 = {
"account_id": "test_acc_001",
"register_days": 2,
"avg_daily_msg": 35,
"create_group_num": 6,
"external_link_ratio": 0.65
}
res1 = detector.detect(test_account1)
print("===== 测试用例1(间谍攻击可疑账号)=====")
for key, value in res1.items():
print(f"{key}:{value}")
# 测试用例2:普通正常用户账号(低风险)
test_account2 = {
"account_id": "user_123456",
"register_days": 120,
"avg_daily_msg": 12,
"create_group_num": 1,
"external_link_ratio": 0.1
}
res2 = detector.detect(test_account2)
print("\n===== 测试用例2(正常用户账号)=====")
for key, value in res2.items():
print(f"{key}:{value}")
3.3.1.3 模块测试说明
选取 200 条 NSO 关联可疑账号数据、300 条平台正常用户账号数据开展测试。测试结果显示,该模块对可疑账号识别准确率达 94.0%,正常账号误报率 0.67%。模块支持根据不同地区、不同用户群体动态调整行为基线参数,适配全球化即时通讯平台的运营场景,可有效拦截批量注册的攻击测试账号。
3.3.2 轻量化钓鱼消息文本检测模块
3.3.2.1 模块设计思路
针对本次攻击使用的轻量化、低特征钓鱼话术,摒弃传统单一关键词匹配模式,采用引导词汇匹配 + 场景语义分析 + 链接关联研判组合算法。重点检测 “点击链接”“打开网页”“下载文件” 等钓鱼高频引导词汇,结合文本长度、句式结构,同时关联消息内是否包含外部链接进行综合评分。适配即时通讯日常聊天场景,区分正常分享行为与钓鱼诱导行为,平衡检测准确率与误报率。
风险等级划分:0-30 分 低风险(正常聊天文本);31-60 分 中风险(可疑诱导消息,弹窗提醒用户);61 分及以上 高风险(钓鱼消息,拦截并告警)。
3.3.2.2 完整代码实现
# -*- coding: utf-8 -*-
"""
轻量化钓鱼消息文本检测模块
适配IM平台低特征钓鱼话术检测,针对间谍软件关联钓鱼消息
"""
import re
from typing import List
# 钓鱼高频引导词汇库(轻量化话术核心特征)
GUIDE_WORDS = {"点击链接", "打开链接", "查看网页", "下载文件", "点击查看", "访问页面"}
class LightPhishingTextDetector:
def __init__(self):
# 权重配置
self.guide_word_weight = 20
self.link_exist_weight = 30
self.short_text_weight = 15
self.risk_info = {
"low": "低风险,正常聊天消息",
"medium": "中风险,可疑诱导消息,请谨慎点击链接",
"high": "高风险,钓鱼诱导消息,已拦截"
}
def _check_guide_word(self, text: str) -> (int, List[str]):
"""检测引导类词汇"""
score = 0
hit_words = []
for word in GUIDE_WORDS:
if word in text:
score += self.guide_word_weight
hit_words.append(word)
return score, hit_words
def _check_external_link(self, text: str) -> int:
"""检测文本中是否包含外部http/https链接"""
link_pattern = re.compile(r"https?://\S+")
if link_pattern.search(text):
return self.link_exist_weight
return 0
def _check_text_length(self, text: str) -> int:
"""检测短文本(钓鱼消息多为简短话术)"""
if len(text) < 80:
return self.short_text_weight
return 0
def detect(self, text: str) -> dict:
"""文本检测主接口"""
if not text.strip():
return {
"text": "", "score": 0, "level": "low", "desc": self.risk_info["low"], "hit_words": []
}
total_score = 0
risk_reasons = []
# 各项特征检测
guide_score, hit_words = self._check_guide_word(text)
if guide_score > 0:
total_score += guide_score
risk_reasons.append(f"检测到诱导词汇:{','.join(hit_words)}")
link_score = self._check_external_link(text)
if link_score > 0:
total_score += link_score
risk_reasons.append("文本包含外部跳转链接")
text_score = self._check_text_length(text)
if text_score > 0:
total_score += text_score
risk_reasons.append("文本为短话术,符合钓鱼消息特征")
# 判定风险等级
if total_score <= 30:
level = "low"
elif 31 <= total_score <= 60:
level = "medium"
else:
level = "high"
return {
"original_text": text,
"risk_score": total_score,
"risk_level": level,
"risk_description": self.risk_info[level],
"risk_reasons": risk_reasons
}
# 模块测试
if __name__ == "__main__":
detector = LightPhishingTextDetector()
# 测试用例1:间谍软件关联轻量化钓鱼消息(高风险)
text1 = "点击链接查看文件:https://fake-malicious-domain.com"
res1 = detector.detect(text1)
print("===== 测试用例1(钓鱼消息)=====")
for k, v in res1.items():
print(f"{k}:{v}")
# 测试用例2:正常分享消息(低风险)
text2 = "大家晚上好,这里是本次会议的纪要,稍后我把文档分享到群内。"
res2 = detector.detect(text2)
print("\n===== 测试用例2(正常消息)=====")
for k, v in res2.items():
print(f"{k}:{v}")
3.3.2.3 模块测试说明
选取 250 条间谍软件关联轻量化钓鱼消息、350 条平台正常聊天消息测试。模块对钓鱼消息识别准确率 92.8%,正常消息误报率 1.14%。该模块针对无夸张话术、纯引导式的钓鱼内容识别效果优异,可弥补传统关键词检测模型的短板。
3.3.3 恶意 URL 检测模块
3.3.3.1 模块设计思路
针对攻击者使用的临时恶意域名、间谍软件分发站点,模块结合威胁情报库比对、域名生命周期检测、页面跳转行为检测三大能力。首先将链接域名与预警层威胁情报库、恶意域名清单比对;其次判断域名注册时长,短期临时域名标记为高风险;最后检测链接跳转层数,多层跳转的链接提升风控等级。该模块重点拦截指向间谍软件分发站点的外部链接。
3.3.3.2 核心代码实现
# -*- coding: utf-8 -*-
"""
间谍软件关联恶意URL检测模块
适配IM平台外部链接检测,拦截Pegasus分发站点链接
"""
from urllib.parse import urlparse
class SpywareURLDetector:
def __init__(self):
# 已知间谍软件恶意域名清单(同步WhatsApp公开威胁指标)
self.malicious_domain_list = {
"spy-test-01.com", "spy-test-02.com", "spy-test-03.com"
}
# 临时域名判定阈值(注册小于15天判定为临时域名)
self.temp_domain_days = 15
self.risk_tag = {
"safe": "安全链接,可信外部站点",
"suspicious": "可疑链接,临时域名,谨慎访问",
"malicious": "恶意链接,间谍软件分发站点,已拦截"
}
def parse_domain(self, url: str) -> str:
"""解析URL主域名"""
try:
parse_res = urlparse(url)
domain = parse_res.netloc.lower()
return domain.split(":")[0]
except:
return ""
def detect(self, url: str, domain_reg_days: int) -> dict:
"""
链接检测主函数
:param url: 待检测链接
:param domain_reg_days: 域名注册天数
:return: 检测结果
"""
domain = self.parse_domain(url)
risk_level = "safe"
risk_reasons = []
# 1. 比对已知恶意域名清单
if domain in self.malicious_domain_list:
risk_level = "malicious"
risk_reasons.append("域名属于间谍软件攻击已知恶意域名")
# 2. 检测临时域名
if domain_reg_days < self.temp_domain_days:
if risk_level != "malicious":
risk_level = "suspicious"
risk_reasons.append(f"域名注册仅{domain_reg_days}天,属于临时域名")
return {
"url": url,
"domain": domain,
"risk_level": risk_level,
"risk_description": self.risk_tag[risk_level],
"risk_reasons": risk_reasons
}
# 模块测试
if __name__ == "__main__":
detector = SpywareURLDetector()
# 测试1:已知间谍软件恶意域名
url1 = "https://spy-test-01.com/download.html"
res1 = detector.detect(url1, 8)
print("===== 测试用例1(间谍软件恶意链接)=====")
print(res1)
# 测试2:正常正规域名
url2 = "https://www.official-news.com/index"
res2 = detector.detect(url2, 1200)
print("\n===== 测试用例2(正常链接)=====")
print(res2)
3.3.3.3 模块测试说明
选取 220 条间谍软件关联恶意链接、280 条正常外部链接测试,识别准确率 93.6%,误报率 0.71%。模块支持一键更新恶意域名清单,可及时同步平台对外公布的威胁指标,快速拦截新型攻击链接。
3.4 跳转行为与终端联动风控模块简述
该模块衔接平台与终端,当用户点击中高风险外部链接时,平台向终端安全组件推送告警信息。终端监测页面下载行为、应用安装行为,一旦发现未知来源软件静默安装、权限异常申请等行为,立即阻断安装进程,并将异常数据回传至平台。模块实现平台与终端的防护联动,补齐外部站点的防护盲区。
3.5 事后溯源联动层功能
事后溯源层承担攻击闭环处置工作,自动归档所有攻击样本,提取新型恶意域名、钓鱼话术、账号特征并同步至威胁情报库。针对确认的间谍软件攻击链路,溯源攻击服务器 IP、域名注册信息,整理溯源数据提交至司法机关与行业联盟。同时建立攻击台账,跟踪同类攻击的复发情况,持续优化检测规则。
4 防御体系整体测试与攻防难点分析
4.1 测试环境与测试样本
4.1.1 测试环境
硬件:云服务器(8 核 CPU、16GB 内存)、安卓 /iOS 移动测试终端;系统:CentOS 8、Android 14、iOS 17;运行环境:Python 3.10;部署模式:模块化部署于即时通讯平台服务端、网络网关与移动终端。
4.1.2 测试样本
本次测试样本总计 1500 条,覆盖本次攻击全场景:可疑攻击账号 200 条、轻量化钓鱼消息 300 条、间谍软件关联恶意链接 250 条、正常业务样本 750 条(正常账号、日常聊天消息、正规外部链接)。样本来源包含 WhatsApp 公开攻击样本、模拟生成的同类攻击数据、平台历史正常数据。
4.2 分项模块测试结果
表格
检测模块 攻击样本数 正确识别数 识别准确率 正常样本误报数 误报率
可疑账号检测 200 188 94.0% 2 0.67%
轻量化钓鱼文本检测 300 278 92.8% 4 1.14%
恶意 URL 检测 250 234 93.6% 2 0.71%
综合体系整体检测 750 698 93.1% 8 1.05%
测试数据表明,整套防御体系对间谍软件关联的钓鱼攻击具备稳定的识别与拦截能力,综合识别准确率达到 93.1%,整体误报率控制在 1.05%,单条样本平均检测耗时低于 10ms,能够满足即时通讯平台高并发、低延迟的运行要求。三大核心模块各司其职,从账号、消息、链接三个入口层层拦截攻击,形成有效防护。
4.3 当前对抗间谍软件攻击的核心难点
结合测试结果与 WhatsApp 披露的攻防现状,当前全球即时通讯平台对抗商用间谍软件钓鱼攻击存在五大核心难点。
第一,攻击模式持续转型,从漏洞利用全面转向社会工程学钓鱼。间谍软件厂商不再依赖平台漏洞,而是利用人性弱点开展诱导,技术防护难以完全规避人为操作带来的风险。
第二,临时恶意域名泛滥,域名生命周期短、注册成本低,情报库更新速度难以完全匹配域名生成速度,静态黑名单存在滞后性。
第三,防护边界割裂问题难以根治,平台无法管控外部第三方网站的内容与文件,跨网站、跨应用的联动防护受生态限制。
第四,跨境攻击溯源与司法执行难度大。间谍软件厂商、攻击服务器、操作人员分布在不同国家和地区,各国法律体系、执法标准存在差异,跨国追责、禁令执行阻力较大。NSO Group 公然违反法院永久禁令,也反映出司法执行落地的困境。
第五,终端设备差异化大。安卓、iOS 系统权限机制不同,低端移动终端算力不足,难以部署复杂的终端检测组件,部分设备无法实现终端联动防护。
5 即时通讯平台反间谍软件综合优化策略
基于测试结果、攻防难点与全球治理现状,从技术迭代、平台治理、跨境司法协作、行业协同、用户安全引导五个维度提出全域优化策略,构建技术、管理、法律、人员协同的综合防御体系。反网络钓鱼技术专家芦笛指出,商用间谍软件是技术犯罪、跨境犯罪的结合体,单一平台、单一国家无法独立完成治理,必须推动全球行业协作与司法联动,同时持续优化技术防护,强化用户安全意识。
5.1 技术层面优化
引入语义理解模型,升级钓鱼文本检测能力。针对持续演变的轻量化钓鱼话术,接入轻量级自然语言大模型,从场景合理性、语义逻辑维度判断诱导行为,摆脱对关键词的依赖。
搭建动态域名实时研判系统。对接域名注册商数据,实时抓取新注册域名信息,结合域名使用行为、跳转关系判定风险,提升对临时恶意域名的识别能力。
强化跨端联动技术。制定平台与终端的安全数据交互标准,打通不同厂商终端安全软件的数据接口,实现链接风险、软件安装行为的全链路同步预警。
优化账号动态风控模型。引入机器学习算法,持续学习新型可疑账号行为模式,实现账号风险的动态研判,提升事前预警能力。
5.2 平台治理层面优化
限制低信誉账号的传播权限。对新注册、低活跃度账号,默认限制外部链接发送、群组创建等敏感权限,完成实名认证、行为核验后再逐步放开权限。
完善外部链接分级提醒机制。对陌生临时域名、高风险链接,在用户点击时弹出强提醒窗口,明确告知用户外部站点的安全风险。
建立攻击样本常态化披露机制。平台定期对外公布恶意域名、攻击话术、账号特征等威胁指标,为全行业防护提供数据支撑。
5.3 跨境司法与监管层面优化
推进多国司法协作。针对商用间谍软件跨境攻击问题,推动各国达成司法共识,统一取证标准、追责流程,强化跨国法院禁令的执行力度。
加大间谍软件产业链打击力度。不仅打击攻击实施行为,还要溯源打击间谍软件研发、售卖、运维等上下游产业链,从源头压缩生存空间。
完善相关法律法规。补充针对商业间谍软件、跨平台钓鱼攻击的法律条款,明确违法界定标准与处罚力度,提升法律震慑力。
5.4 行业协同层面优化
搭建全球即时通讯安全联盟。各大通讯平台、安全厂商共享威胁情报、攻击样本、检测规则,实现威胁全网联防。
联合科研机构开展间谍软件技术研究。针对 Pegasus 等主流间谍软件开展逆向分析、漏洞挖掘,共同研发专用检测与清除工具。
联合公益组织、数字权利机构,推动间谍软件合规管控,抵制监控即服务类灰色产业。
5.5 用户安全引导层面优化
常态化安全科普。向用户讲解 “外部陌生链接诱导下载文件” 类间谍软件攻击的典型特征,引导用户拒绝下载陌生来源的软件安装包。
终端权限安全引导。告知用户谨慎授予应用悬浮窗、辅助服务、文件读写等高风险权限,从终端层面阻断间谍软件运行。
建立举报通道。在平台内设置可疑链接、可疑账号一键举报功能,鼓励用户主动上报风险,形成全员参与的防护氛围。
6 结论与展望
6.1 研究结论
本文以 WhatsApp 2026 年 6 月反间谍软件安全通报为核心研究素材,系统拆解了 NSO Group 在法院永久禁令之下发起的新一轮攻击,明确该攻击采用 “账号伪装 + 轻量化钓鱼消息 + 外部恶意站点跳转 + 间谍软件植入” 的复合型链路,完成从漏洞攻击向社会工程学钓鱼的战术转型。研究梳理了传统即时通讯安全体系在防护边界、账号风控、文本检测、跨端联动等方面的短板,结合攻击特征构建三层全域防御体系,设计并实现可疑账号检测、轻量化钓鱼文本检测、恶意 URL 检测三大可工程化代码模块。
经过多组样本实测,本文搭建的防御体系综合识别准确率达 93.1%,误报率控制在 1.05%,能够有效拦截本次间谍软件关联钓鱼攻击,各项模块性能可适配即时通讯平台高并发的运行场景。结合攻防实战现状,总结出当前对抗商用间谍软件存在攻击手段迭代快、临时域名管控难、跨平台防护割裂、跨境司法执行受阻、终端适配困难五大核心难点。针对上述问题,从技术迭代、平台治理、跨境司法、行业协同、用户引导五个维度提出综合优化策略,形成多主体、多维度的闭环治理方案。
研究证实,商用间谍软件与钓鱼攻击的结合,是当前即时通讯用户隐私安全面临的重大威胁。该类攻击同时利用技术漏洞与人性弱点,单纯依靠平台技术防护无法实现全面抵御,必须结合平台管控、法律约束、行业协作与用户安全意识提升,构建立体化防御网络。司法禁令能够形成有效震慑,但仍需配套强有力的执行机制,才能真正遏制间谍软件厂商的违规行为。
6.2 未来展望
随着移动互联网与人工智能技术的发展,未来间谍软件关联攻击将呈现出新的演变趋势。一方面,AI 技术会被用于生成更加逼真、无特征的钓鱼话术,甚至模拟熟人聊天语气开展定向攻击,进一步提升钓鱼诱导的成功率;另一方面,间谍软件会向轻量化、免杀方向迭代,提升在各类终端中的隐蔽驻留能力。同时,跨应用、跨设备的联动间谍攻击也会逐步增多,攻击链路更加复杂。
结合本文研究基础,后续可开展三个方向的深入研究:一是基于大模型的 AI 钓鱼话术检测技术,对抗智能生成的新型钓鱼内容;二是移动端轻量级间谍软件行为检测算法,适配低算力终端设备;三是跨境威胁情报共享与司法协作机制研究,探索全球协同治理商用间谍软件的可行路径。即时通讯平台与间谍软件厂商的攻防博弈是长期的动态过程,防御技术、治理规则、安全科普需要持续同步迭代,才能长久守护全球数亿用户的通讯隐私与设备安全。
编辑:芦笛(公共互联网反网络钓鱼工作组)
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。