首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >审计Ask Astro LLM问答应用:四大安全漏洞与防御实践

审计Ask Astro LLM问答应用:四大安全漏洞与防御实践

原创
作者头像
qife122
发布2025-09-04 12:27:02
发布2025-09-04 12:27:02
2020
举报

审计Ask Astro LLM问答应用 - Trail of Bits博客

今天,我们发布第二个开源AI安全审计项目:针对开源检索增强生成(RAG)应用的安全漏洞分析,这些漏洞可能导致聊天机器人输出投毒、文档摄取不准确及潜在拒绝服务。本次审计延续了我们早前在流行计算机视觉框架YOLOv7中发现11个安全漏洞的工作。

具体而言,我们在Ask Astro中发现四个问题。该应用是基于风投公司A16Z的RAG参考架构构建的开源聊天机器人。RAG是通过上下文知识库为大型语言模型(LLM)增强训练数据集外信息的最有效技术之一。

架构问题与实现缺陷

审计发现可分为两大类:

  • 架构问题:缺乏人工审核或文档删除功能,攻击者可通过有害信息投毒聊天机器人输出
  • 实现故障:多个实现漏洞可能影响文档摄取准确性(通过GitHub问题的分割视图投毒、Weaviate客户端中的GraphQL注入)或导致财务拒绝服务(问题扩展提示中的提示词注入)

Ask Astro技术架构

Ask Astro是为Apache Airflow编排工具Astronomer提供技术支持的开源聊天机器人。其采用现代ML开发栈构建,包含三大核心组件:

  • Weaviate:存储文档嵌入向量的向量数据库
  • Langchain:基于Python的LLM编程框架
  • Apache Airflow:用于管理文档检索和处理的工作流编排系统

数据流与攻击面

应用攻击面相对狭窄,包含两个主要工作流(图1):

  1. 文档摄取:通过Apache Airflow工作流从多个来源获取文档
    • Apache Airflow官方文档
    • Astronomer博客及GitHub仓库
    • StackOverflow带airflow标签的线程
  2. 答案生成:多步骤检索相关文档并生成答案
    • LLM生成问题重述版本
    • Weaviate余弦相似度搜索
    • Cohere Reranker API文档重排序
    • LLM过滤器去除无关文档

审计发现的技术漏洞

TOB-ASTRO-0001 通过源材料删除的数据投毒

严重性:高

攻击者可在摄取运行前在社区论坛发布完整讨论线程,摄取完成后立即删除线程。由于缺乏源材料删除同步机制,攻击者可向知识库注入任意文本。

TOB-ASTRO-0002 通过GitHub问题的分割视图投毒

严重性:低

文档摄取例程在处理GitHub问题时存在两个漏洞:

  1. 贪婪正则表达式(re.DOTALL标志)过度匹配文本
  2. Markdown模板拼接漏洞允许伪造完整问题线程
代码语言:python
复制
    """

    DATE: {date}
    BY: {user}
    STATE: {state}
    {body}
    {comments}"""
)

TOB-ASTRO-0003 Weaviate客户端中的GraphQL注入

严重性:中

Weaviate Python客户端v3版本的_sanitize_str函数存在转义漏洞:

代码语言:python
复制
value = re.sub(r'(?<!\\)"', '\\"', value)

该正则表达式无法正确处理连续反斜杠情况(如\\"),导致GraphQL查询注入。

TOB-ASTRO-0004 问题扩展提示中的提示词注入

严重性:低

攻击者可通过提示词注入技术使模型生成超过两个重述问题,导致资源过度消耗或财务拒绝服务。

防御建议与最佳实践

  1. 数据库审计工具:建立向量数据库审计和维护流程
  2. 自动化同步机制:源内容删除时应自动同步至数据库
  3. 人工持续审核:定期审核数据库中的不准确或无关内容
  4. 威胁建模:针对多组件系统进行上下文相关的攻击向量分析

技术栈安全启示

本次审计揭示了ML系统安全的关键原则:

  • 每个系统组件接口都携带必须缓解的攻击向量
  • 文本解析和数据处理步骤需使用真实数据、边界案例和攻击载荷进行测试
  • RAG系统的核心挑战在于确保向量数据库信息完整性

审计发现已通过相应PR修复(#325, #1134),完整技术细节欢迎联系我们的安全工程团队。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 审计Ask Astro LLM问答应用 - Trail of Bits博客
    • 架构问题与实现缺陷
    • Ask Astro技术架构
    • 数据流与攻击面
    • 审计发现的技术漏洞
      • TOB-ASTRO-0001 通过源材料删除的数据投毒
      • TOB-ASTRO-0002 通过GitHub问题的分割视图投毒
      • TOB-ASTRO-0003 Weaviate客户端中的GraphQL注入
      • TOB-ASTRO-0004 问题扩展提示中的提示词注入
    • 防御建议与最佳实践
    • 技术栈安全启示
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档