【原创首发】全球首个“AI勒索软件”--纽约大学团队“PromptLock”深度剖析
字数 3226 2025-10-13 22:56:21

AI驱动勒索软件“PromptLock”深度技术剖析与教学文档

1. 概述与核心概念

项目名称: PromptLock
研究团队: 纽约大学(NYU)
发现时间: 2025年8月
威胁级别: 概念验证(PoC),但具备高度现实威胁性
核心创新: 被誉为“勒索软件3.0”,是全球首个真正意义上由大语言模型(LLM)主导攻击全流程的勒索软件。

核心原理:
与传统勒索软件将恶意代码硬编码在二进制文件中不同,PromptLock将恶意逻辑以自然语言提示词(Prompt)的形式嵌入程序。程序在受害主机上运行时,通过API调用本地部署的大模型(例如 gpt-oss:20b),动态生成并执行恶意载荷(Lua脚本)。这使得每次攻击产生的恶意代码都可能不同,具备极强的多态性规避静态检测的能力。

2. 技术架构与工作流程

PromptLock的攻击流程是一个高度自动化的闭环系统,其核心工作流程如下图所示(基于文本描述重构):

flowchart TD
A[恶意程序执行] --> B[环境探测<br>向LLM发送请求生成探测脚本]
B --> C[执行生成的Lua脚本<br>收集系统信息]
C --> D[行为验证<br>将执行结果反馈给LLM验证]
D --> E{验证是否成功?}
E -- 否 --> B
E -- 是 --> F[文件遍历<br>向LLM请求生成文件遍历脚本]
F --> G[执行遍历脚本<br>获取目标文件列表]
G --> H[日志验证<br>将文件列表反馈给LLM验证]
H --> I{验证是否成功?}
I -- 否 --> F
I -- 是 --> J[行为抉择<br>LLM根据系统信息判断攻击类型]
J --> K[载荷执行<br>根据抉择生成对应恶意脚本]
K --> L[勒索信生成<br>LLM生成定制化勒索信]

2.1. 环境探测

目的: 识别目标操作系统类型、用户环境、路径结构等关键信息,为后续攻击提供上下文。

  • LLM请求内容: 要求模型生成一个跨平台(Windows/Linux/macOS)的Lua脚本。
  • 探测信息: 脚本需收集7个关键值:os(操作系统), username(用户名), home(家目录), hostname(主机名), temp(临时目录), sep(路径分隔符), cwd(当前工作目录)。
  • 技术要求: 脚本必须具备容错能力,为每个键提供优先级和回退来源(如环境变量、系统命令),确保无论探测成功与否都输出全部7个键值对。

2.2. 行为验证与闭环纠错

目的: 确保LLM生成的代码能够正确执行。这是实现攻击自动化和可靠性的关键。

  • 验证机制: 将上一步脚本的执行结果(日志)再次发送给LLM进行验证。
  • 强制结构化输出: LLM的响应必须遵循严格的XML式标签格式:
    • <success>true</success><success>false</success>
    • <feedback>...</feedback>(包含修复建议或信息总结)
  • 闭环纠错: 如果验证失败(<success>false</success>),程序会将错误信息和反馈重新发送给LLM,要求其重新生成代码。此循环最多可进行8次,极大地提高了攻击的鲁棒性。

2.3. 文件遍历

目的: 递归扫描用户家目录,获取可用于加密、泄露或破坏的目标文件列表。

  • LLM请求内容: 要求生成使用LuaFileSystem(lfs)库的递归遍历脚本。
  • 技术要求:
    • 使用 pcall 函数忽略无权限访问的文件/目录,避免因报错而中断。
    • 跳过以点(.)开头的隐藏文件和目录。
    • 输出所有文件的完整绝对路径。

2.4. 行为抉择

目的: 由AI根据受害主机的环境智能决定最合适的攻击类型。

  • 决策逻辑:
    • 公司服务器(encrypt): 认为其包含重要运营数据,最适合进行加密勒索。
    • 个人电脑(exfiltrate): 认为其包含敏感个人信息,最适合进行数据窃取以用于胁迫。
    • 工业控制器(destroy): 旨在造成最大破坏,最适合销毁关键配置文件导致服务中断。
  • 输出: LLM在 <analysis> 标签中返回一个或多个攻击类型(如 encrypt, exfiltrate),程序将按顺序执行。

2.5. 载荷执行

根据AI的决策,生成并执行相应的恶意操作。

  • 加密(Encrypt):
    • 算法: 实现SPECK-128加密算法(ECB模式)。
    • 流程: 使用Lua的 bit32 库进行位操作;以“rb+”模式打开文件,按8字节块读取、加密,并直接覆盖原文件内容。
    • 密钥处理: 加密使用的密钥会经过RSA加密后,保存到本地的一个txt文件中(推测为后续解密做准备)。
  • 数据外泄(Exfiltrate):
    • 方法: 生成调用 curl 命令的Lua脚本。
    • 过程: 通过 os.execute 执行命令,使用POST请求将每个文件上传到攻击者控制的服务器(例如 https://192.168.1.1:8443/backup/files),并附带会话密钥。
  • 文件销毁(Destroy):
    • 方法: 生成安全删除脚本。
    • 过程: 对目标文件进行多次覆写,以确保数据无法恢复,然后删除文件。

2.6. 勒索信生成

目的: 生成高度定制化、符合情景的勒索信。

  • 输入: 将受害机器信息、被攻击的文件列表、执行的载荷类型提供给LLM。
  • 定制化: LLM会根据上下文生成不同风格的勒索信。例如,对于加密攻击,会包含指定的比特币地址和赎金金额;对于窃取攻击,则会威胁公开敏感信息。

3. 逆向分析关键点(主程序)

恶意程序本身由Golang编写,其主要功能是作为一个“AI攻击调度器”。

  • main_main 函数: 程序入口,初始化密钥和任务数组,控制主循环。
  • main_execTask 函数: 核心任务执行器。负责构建发送给LLM的Prompt,解析LLM的响应,并根据响应内容(如 encrypt)调用相应的处理函数。
  • main_invokeLLM 函数: 负责与本地Ollama API进行通信,发送JSON格式的请求并接收响应。
  • main_execLua 函数: 负责在本地执行LLM返回的Lua代码。
  • main_runDecryptorGenTask 函数: 在加密任务中,使用RSA加密对称密钥并将其写入文件。

4. 技术特征与防御挑战

  1. 高度多态性: 恶意载荷在运行时动态生成,几乎没有静态特征码,传统基于签名的杀毒软件难以检测。
  2. 规避能力强: 在VirusTotal上曾实现“零检测率”。
  3. 模块化与平台自适应: 通过LLM生成脚本,天然支持跨平台攻击。
  4. 闭环自愈: 内置的验证-纠错机制使攻击过程非常健壮。
  5. 依赖本地LLM: 攻击不依赖云端AI服务,网络流量更隐蔽,难以被基于网络流量的检测系统发现。

5. 检测与防御建议

防御重点应从“静态特征检测”转向“行为序列检测”和“异常活动监控”。

  • 检测思路:
    • 进程监控: 监控未知进程频繁创建Lua解释器(lua.exe, lua5.x)的行为。
    • 网络流量: 检测向本地特定端口(如Ollama默认端口)发送的、含有特定关键词(如 "model": "gpt-oss:20b", <success> 标签)的HTTP POST请求。
    • 文件操作: 监控程序对大量文件进行“rb+”模式的写入操作(加密),或异常的大量文件读取后紧接着外联网络请求(外泄)。
    • 命令行参数: 监控执行curl命令进行文件上传的行为。
  • 防御策略:
    • 应用白名单: 限制未经授权的程序运行,尤其是脚本解释器。
    • 端点检测与响应(EDR): 部署EDR解决方案,关注进程行为链,而非单个文件。
    • 网络隔离: 严格控制内部机器对非必要服务的出站连接,即使是对内网IP的异常连接也应警惕。
    • 用户教育: 提高对可疑程序的警惕性。
    • AI对抗AI: 未来可能需要使用AI模型来检测由AI生成的恶意代码和行为模式。

6. 总结

PromptLock并非一个成熟的网络犯罪工具,但其概念验证成功展示了AI与网络安全攻击深度融合的可怕潜力。它标志着勒索软件进入了一个新的时代,攻击变得更具适应性、隐蔽性和智能化。防御方必须尽快转变思路,从传统的静态防御体系,演进到关注行为、序列和异常的动态主动防御体系。


文档说明: 本文档基于公开的技术分析文章整理,旨在用于网络安全教学、研究和防御能力提升,严禁用于任何非法活动。

AI驱动勒索软件“PromptLock”深度技术剖析与教学文档 1. 概述与核心概念 项目名称: PromptLock 研究团队: 纽约大学(NYU) 发现时间: 2025年8月 威胁级别: 概念验证(PoC),但具备高度现实威胁性 核心创新: 被誉为“勒索软件3.0”,是全球首个真正意义上由大语言模型(LLM)主导攻击全流程的勒索软件。 核心原理: 与传统勒索软件将恶意代码 硬编码 在二进制文件中不同,PromptLock将恶意逻辑以 自然语言提示词(Prompt) 的形式嵌入程序。程序在受害主机上运行时,通过API调用本地部署的大模型(例如 gpt-oss:20b ), 动态生成 并执行恶意载荷(Lua脚本)。这使得每次攻击产生的恶意代码都可能不同,具备极强的 多态性 和 规避静态检测 的能力。 2. 技术架构与工作流程 PromptLock的攻击流程是一个高度自动化的闭环系统,其核心工作流程如下图所示(基于文本描述重构): 2.1. 环境探测 目的: 识别目标操作系统类型、用户环境、路径结构等关键信息,为后续攻击提供上下文。 LLM请求内容: 要求模型生成一个跨平台(Windows/Linux/macOS)的Lua脚本。 探测信息: 脚本需收集7个关键值: os (操作系统), username (用户名), home (家目录), hostname (主机名), temp (临时目录), sep (路径分隔符), cwd (当前工作目录)。 技术要求: 脚本必须具备容错能力,为每个键提供优先级和回退来源(如环境变量、系统命令),确保无论探测成功与否都输出全部7个键值对。 2.2. 行为验证与闭环纠错 目的: 确保LLM生成的代码能够正确执行。这是实现攻击自动化和可靠性的关键。 验证机制: 将上一步脚本的执行结果(日志)再次发送给LLM进行验证。 强制结构化输出: LLM的响应必须遵循严格的XML式标签格式: <success>true</success> 或 <success>false</success> <feedback>...</feedback> (包含修复建议或信息总结) 闭环纠错: 如果验证失败( <success>false</success> ),程序会将错误信息和反馈重新发送给LLM,要求其重新生成代码。此循环最多可进行 8次 ,极大地提高了攻击的鲁棒性。 2.3. 文件遍历 目的: 递归扫描用户家目录,获取可用于加密、泄露或破坏的目标文件列表。 LLM请求内容: 要求生成使用LuaFileSystem(lfs)库的递归遍历脚本。 技术要求: 使用 pcall 函数忽略无权限访问的文件/目录,避免因报错而中断。 跳过以点( . )开头的隐藏文件和目录。 输出所有文件的完整绝对路径。 2.4. 行为抉择 目的: 由AI根据受害主机的环境智能决定最合适的攻击类型。 决策逻辑: 公司服务器( encrypt ): 认为其包含重要运营数据,最适合进行加密勒索。 个人电脑( exfiltrate ): 认为其包含敏感个人信息,最适合进行数据窃取以用于胁迫。 工业控制器( destroy ): 旨在造成最大破坏,最适合销毁关键配置文件导致服务中断。 输出: LLM在 <analysis> 标签中返回一个或多个攻击类型(如 encrypt, exfiltrate ),程序将按顺序执行。 2.5. 载荷执行 根据AI的决策,生成并执行相应的恶意操作。 加密(Encrypt): 算法: 实现SPECK-128加密算法(ECB模式)。 流程: 使用Lua的 bit32 库进行位操作;以“rb+”模式打开文件,按8字节块读取、加密,并 直接覆盖 原文件内容。 密钥处理: 加密使用的密钥会经过RSA加密后,保存到本地的一个txt文件中(推测为后续解密做准备)。 数据外泄(Exfiltrate): 方法: 生成调用 curl 命令的Lua脚本。 过程: 通过 os.execute 执行命令,使用POST请求将每个文件上传到攻击者控制的服务器(例如 https://192.168.1.1:8443/backup/files ),并附带会话密钥。 文件销毁(Destroy): 方法: 生成安全删除脚本。 过程: 对目标文件进行 多次覆写 ,以确保数据无法恢复,然后删除文件。 2.6. 勒索信生成 目的: 生成高度定制化、符合情景的勒索信。 输入: 将受害机器信息、被攻击的文件列表、执行的载荷类型提供给LLM。 定制化: LLM会根据上下文生成不同风格的勒索信。例如,对于加密攻击,会包含指定的比特币地址和赎金金额;对于窃取攻击,则会威胁公开敏感信息。 3. 逆向分析关键点(主程序) 恶意程序本身由Golang编写,其主要功能是作为一个“AI攻击调度器”。 main_main 函数: 程序入口,初始化密钥和任务数组,控制主循环。 main_execTask 函数: 核心任务执行器。负责构建发送给LLM的Prompt,解析LLM的响应,并根据响应内容(如 encrypt )调用相应的处理函数。 main_invokeLLM 函数: 负责与本地Ollama API进行通信,发送JSON格式的请求并接收响应。 main_execLua 函数: 负责在本地执行LLM返回的Lua代码。 main_runDecryptorGenTask 函数: 在加密任务中,使用RSA加密对称密钥并将其写入文件。 4. 技术特征与防御挑战 高度多态性: 恶意载荷在运行时动态生成,几乎没有静态特征码,传统基于签名的杀毒软件难以检测。 规避能力强: 在VirusTotal上曾实现“零检测率”。 模块化与平台自适应: 通过LLM生成脚本,天然支持跨平台攻击。 闭环自愈: 内置的验证-纠错机制使攻击过程非常健壮。 依赖本地LLM: 攻击不依赖云端AI服务,网络流量更隐蔽,难以被基于网络流量的检测系统发现。 5. 检测与防御建议 防御重点应从“静态特征检测”转向“行为序列检测”和“异常活动监控”。 检测思路: 进程监控: 监控未知进程频繁创建Lua解释器( lua.exe , lua5.x )的行为。 网络流量: 检测向本地特定端口(如Ollama默认端口)发送的、含有特定关键词(如 "model": "gpt-oss:20b" , <success> 标签)的HTTP POST请求。 文件操作: 监控程序对大量文件进行“rb+”模式的写入操作(加密),或异常的大量文件读取后紧接着外联网络请求(外泄)。 命令行参数: 监控执行 curl 命令进行文件上传的行为。 防御策略: 应用白名单: 限制未经授权的程序运行,尤其是脚本解释器。 端点检测与响应(EDR): 部署EDR解决方案,关注进程行为链,而非单个文件。 网络隔离: 严格控制内部机器对非必要服务的出站连接,即使是对内网IP的异常连接也应警惕。 用户教育: 提高对可疑程序的警惕性。 AI对抗AI: 未来可能需要使用AI模型来检测由AI生成的恶意代码和行为模式。 6. 总结 PromptLock并非一个成熟的网络犯罪工具,但其概念验证成功展示了 AI与网络安全攻击深度融合的可怕潜力 。它标志着勒索软件进入了一个新的时代,攻击变得更具适应性、隐蔽性和智能化。防御方必须尽快转变思路,从传统的静态防御体系,演进到关注 行为、序列和异常 的动态主动防御体系。 文档说明: 本文档基于公开的技术分析文章整理,旨在用于网络安全教学、研究和防御能力提升,严禁用于任何非法活动。