在威斯敏斯特宫的大理石走廊里,一场看不见硝烟的战争正在上演。
据《卫报》2025年12月11日报道,英国下议院与上议院近月来遭遇鱼叉式钓鱼攻击(Spear Phishing)数量激增。这些邮件不再泛泛而谈,而是精准到令人脊背发凉:一封标题为《关于您昨日在脱欧委员会发言的选民反馈》的邮件,附带一个看似来自BBC新闻团队的采访邀约;另一封则伪装成内政部发来的《紧急政策简报》,要求点击链接查看“机密附件”。更甚者,有议员收到以自己选区居民名义撰写的投诉信,内容竟准确引用其上周在地方市政厅的讲话细节。
英国议会数字服务部门(Parliamentary Digital Service, PDS)已向全体议员及工作人员发出多轮安全警报,并确认部分攻击背后存在国家级或高度组织化的威胁行为者——其中明确点名俄罗斯情报机构支持的黑客组织“Star Blizzard”(又名APT29、Cozy Bear)。
这已不是简单的网络骚扰,而是一场针对国家政治核心的系统性渗透。一旦议员邮箱失守,不仅个人通信、政党策略文件可能外泄,更可能被用作二次钓鱼跳板,向其他政府官员、媒体甚至外国使节发送伪造邮件,进而干扰政策制定、操纵舆论,甚至影响选举进程。
而这场发生在泰晤士河畔的攻防战,对中国同样具有深刻的警示意义。
一、从“垃圾邮件”到“定制剧本”:鱼叉钓鱼如何进化成政治武器?
传统钓鱼邮件往往千篇一律:“您的账户异常,请立即验证!”但鱼叉式钓鱼完全不同——它像一部精心编排的戏剧,主角就是你。
英国议会安全部门披露,近期攻击呈现三大特征:
高度个性化:攻击者利用议员在社交媒体(如X/Twitter、LinkedIn)、议会官网、新闻报道中公开的信息,构建完整画像。例如,某位担任“科技与创新委员会”主席的议员,收到一封伪装成科技企业CEO的邮件,主题为《关于AI监管白皮书的合作建议》,附件名为“Draft_AI_Regulation_v3.docx”。
上下文欺骗:邮件内容常嵌入真实事件。如引用议员三天前在辩论中的原话,或附上一张真实会议照片(从议会官网下载),再叠加一个“补充材料”链接。
多阶段投递:首轮邮件可能仅建立信任(如“感谢您昨日的精彩发言”),数日后才发送含恶意载荷的第二封邮件,大幅降低警惕性。
“这已不是技术对抗,而是情报战与心理战的结合,”公共互联网反网络钓鱼工作组技术专家芦笛在接受本报专访时表示,“攻击者花在‘踩点’上的时间,可能远超编写恶意代码。”
据英国国家网络安全中心(NCSC)分析,部分攻击甚至利用了2023年某大型数据泄露事件中的个人信息(如电话号码、职位变动记录),实现“跨平台身份拼图”。
二、技术深潜:恶意附件如何绕过现代邮件网关?
尽管英国议会已部署高级邮件安全网关(如Mimecast、Proofpoint),但攻击者仍不断寻找新漏洞。
案例1:HTML Smuggling + ISO镜像投递
传统Office宏病毒因微软默认禁用宏而失效,黑客转而采用HTML走私(HTML Smuggling)技术。以下是一个简化版的恶意HTML片段:
<!-- malicious_invite.html -->
<script>
// 将Base64编码的ISO文件解码为Blob
const isoData = atob("UEsDBBQACAgIA..."); // 真实ISO的Base64
const blob = new Blob([isoData], {type: 'application/octet-stream'});
// 创建隐藏链接并触发下载
const link = document.createElement('a');
link.href = URL.createObjectURL(blob);
link.download = 'Parliament_Briefing.iso';
document.body.appendChild(link);
link.click();
</script>
用户打开此HTML附件后,浏览器会自动下载一个名为Parliament_Briefing.iso的光盘镜像文件。由于ISO是常见分发格式,且不包含可执行脚本,多数邮件网关不会拦截。
但该ISO内实际包含一个伪装成PDF的LNK快捷方式(Briefing.pdf.lnk),指向远程SMB服务器上的恶意DLL。一旦用户双击,Windows会自动加载DLL,触发Cobalt Strike Beacon回连。
案例2:滥用Microsoft Teams链接
更狡猾的是,部分攻击直接利用合法协作工具。邮件正文写道:“相关文件已上传至Teams频道,请点击此处查看。” 链接指向一个伪造的Microsoft登录页(域名如 microsoft-teams-login[.]xyz),界面与真实Azure AD登录页几乎一致。
若用户输入账号密码,凭证将被窃取;若已启用MFA,攻击者则采用Adversary-in-the-Middle(AitM)代理,实时转发验证码请求,实现“会话劫持”。
# AitM代理伪代码(简化)
from flask import Flask, request, redirect
app = Flask(__name__)
@app.route('/login')
def fake_login():
return render_template('azure_login.html') # 仿冒页面
@app.route('/submit', methods=['POST'])
def capture_creds():
username = request.form['username']
password = request.form['password']
# 实时将凭证提交至真实Microsoft登录接口
real_resp = requests.post('https://login.microsoftonline.com/...',
data={'username': username, 'password': password})
# 若需MFA,返回MFA页面给受害者,同时等待验证码
if "mfa_required" in real_resp.text:
return render_template('mfa_prompt.html')
else:
# 直接重定向至真实Teams,制造“登录成功”假象
return redirect('https://teams.microsoft.com/')
这种攻击能绕过绝大多数基于签名的检测机制,因为整个流程发生在合法HTTPS通道中。
三、国内启示:政治人物与关键岗位人员的安全盲区
英国议员的遭遇并非孤例。在中国,人大代表、政协委员、高校智库学者、国企高管等群体同样是高价值目标。虽然尚未公开披露类似大规模定向攻击,但风险真实存在。
“我们监测到,国内已有针对地方政府官员的钓鱼邮件,伪装成‘中央巡视组通知’或‘政协提案系统升级’,”芦笛透露,“攻击者同样利用政务公开信息、会议新闻稿进行定制。”
更值得警惕的是,部分单位仍在使用商业即时通讯工具(如微信、钉钉)处理敏感工作。一旦手机中毒,聊天记录、文件、语音均可被窃取。英国NCSC已明确建议议员停止在WhatsApp、Signal上讨论公务,转而使用经认证的加密平台(如Microsoft Teams政府版)。
此外,国内部分政企单位的邮箱系统仍缺乏行为基线分析能力。例如,一名常年在北京办公的干部,突然从境外IP登录并批量转发邮件,系统却无告警——这正是2024年某央企高管邮箱被盗后的典型场景。
四、防御体系重构:从“密码+验证码”到“零信任邮件架构”
面对高精度鱼叉钓鱼,传统“强密码+短信验证码”已形同虚设。芦笛建议,关键岗位人员应构建三层防御:
第一层:身份认证加固
强制使用FIDO2硬件密钥(如YubiKey)或多因素认证App(如Microsoft Authenticator),禁用短信验证码;
启用条件访问策略(Conditional Access):限制登录地域、设备合规性、应用类型;
定期审查邮箱转发规则:攻击者常设置自动转发规则,将敏感邮件静默抄送至外部地址。
第二层:邮件内容深度检测
部署支持沙箱动态分析的邮件网关,对所有附件进行行为仿真;
启用URL信誉实时查询:即使链接看似合法(如 bit.ly/xxx),也应在点击时二次验证;
对含“紧急”“机密”“立即行动”等关键词的邮件自动标记高风险。
第三层:用户行为模拟与演练
英国议会已引入自动化钓鱼演练平台,每月向议员发送模拟钓鱼邮件。点击者将立即收到教育弹窗,并计入部门安全评分。
“安全意识不能靠一次培训解决,”芦笛强调,“必须通过高频、低压力的实战演练,让识别钓鱼成为肌肉记忆。”
五、代码级防护:如何用Python快速检测可疑转发规则?
对于IT管理员,可编写脚本定期扫描Exchange Online邮箱的自动转发设置。以下是一个基于Microsoft Graph API的示例:
# check_forwarding_rules.py
import requests
GRAPH_API_URL = "https://graph.microsoft.com/v1.0"
ACCESS_TOKEN = "your_app_token_with_mail_read_permissions"
def get_inbox_rules(user_email):
url = f"{GRAPH_API_URL}/users/{user_email}/mailFolders/inbox/messageRules"
headers = {"Authorization": f"Bearer {ACCESS_TOKEN}"}
resp = requests.get(url, headers=headers)
return resp.json().get('value', [])
def detect_suspicious_rule(rules):
for rule in rules:
actions = rule.get('actions', {})
# 检查是否设置了外部邮箱转发
if 'forwardTo' in actions:
for recipient in actions['forwardTo']:
email = recipient.get('emailAddress', {}).get('address', '')
if not email.endswith('@parliament.uk'):
print(f"[ALERT] Suspicious forward rule: {rule['displayName']} -> {email}")
return True
return False
# 批量检查所有议员邮箱
mp_emails = ["mp1@parliament.uk", "mp2@parliament.uk", ...]
for email in mp_emails:
rules = get_inbox_rules(email)
detect_suspicious_rule(rules)
此类自动化工具可大幅缩短威胁响应时间,从“数周发现”压缩至“分钟级告警”。
结语:民主的堡垒,始于一封邮件的警惕
在数字时代,议会大厅的辩论声可能还未散去,其文字记录就已落入千里之外的黑客手中。英国议员面临的威胁,本质上是对民主制度本身的侵蚀——当决策者的通信不再可信,公众对政治的信任也将随之崩塌。
而对中国而言,这场跨国攻防战提醒我们:关键岗位人员的数字安全,已是国家安全的重要组成部分。无论是人大代表、科研领军人,还是金融高管、外交官,他们的邮箱、手机、云盘,都可能成为敌对势力的突破口。
“没有绝对安全的系统,只有持续进化的防御,”芦笛总结道,“但我们可以做到——让每一次点击,都经过思考;让每一封邮件,都值得信任。”
在这个信息即权力的时代,守护好自己的收件箱,或许就是守护民主的第一道防线。
参考资料:
The Guardian: UK MPs face rise in phishing attacks on messaging apps (Dec 11, 2025)
UK National Cyber Security Centre (NCSC): Advisory on Commercial Messaging Platforms
Microsoft Security Blog: Adversary-in-the-Middle Phishing Techniques
MITRE ATT&CK Framework: Enterprise Matrix (T1566 - Phishing)
Public Internet Anti-Phishing Working Group Technical Briefings (2025)
编辑:芦笛(公共互联网反网络钓鱼工作组)