Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
exfil-scan — 扫描LLM输出和AI生成的内容,在它们到达用户或下游系统之前检测数据外泄信号(EchoLeak, CVE-2025-32711) | Kitploit
工具/GitHubGitHub/vikasudasi/exfil-scan
数据泄露DevSecOps秘密检测API 安全AI 安全
GitHubvikasudasi/exfil-scan

exfil-scan

扫描LLM输出和AI生成的内容,在它们到达用户或下游系统之前检测数据外泄信号(EchoLeak, CVE-2025-32711)

查看仓库
62541个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

exfil-scan

扫描LLM输出和AI生成内容中的数据传输信号,在到达用户、日志或下游系统之前进行检测。


1) 为什么需要exfil-scan

现代LLM应用通常处理敏感提示、内部文档、API响应和用户数据。 这创建了一个新的安全边界:输出层。

EchoLeak系列攻击(包括CVE-2025-32711)展示了隐藏或混淆的有效载荷如何被 嵌入在生成的文本中,并通过工具、链接或解析链来窃取数据。

传统扫描器关注文件、依赖项和运行时流量。 它们不会以专门构建的方式检查生成的模型输出。

exfil-scan提供了一个“LLM响应的病毒扫描器”:

  • 检查纯文本、JSON、Markdown和日志
  • 识别六类可疑的数据泄露模式
  • 报告结果及其严重性和位置
  • 干净地集成到CI/CD和本地开发者工作流中

2) 它检测什么

类别严重性检测内容
隐藏文本高用于隐藏有效载荷的零宽度和不可见Unicode序列
编码数据高可能携带编码内容的Base64/hex/octal/unicode转义序列
URL中的数据中异常长的查询字符串和编码的URL参数有效载荷
元数据泄露高结构化/非结构化输出中的类凭证密钥和令牌格式
Unicode隐写术中双向控制字符以及混合脚本的同形词式单词
结构异常低过多的换行/制表符序列和替换字符编码异常

3) 功能亮点

  • 三种灵敏度配置:low(低), medium(中), high(高)
  • 支持YAML配置覆盖
  • 支持从stdin、单个文件或目录输入
  • 输出格式:text(文本), json, markdown, html
  • 稳定的退出码,便于自动化
  • 简洁的Python API,可嵌入其他工具

4) 安装

从源码安装

root@kitploit:~
git clone https://github.com/your-org/exfil-scan.git
cd exfil-scan
pip install -e .

标准pip安装(发布后)

root@kitploit:~
pip install exfil-scan

开发安装

root@kitploit:~
pip install -e ".[dev]"
pytest

5) 快速开始

扫描管道输出的LLM内容

root@kitploit:~
echo 'api_key: sk-ABCDEFGHIJKLMNOPQRSTUVWXYZ123456' | exfil-scan

扫描单个文件

root@kitploit:~
exfil-scan --input output.txt

递归扫描目录

root@kitploit:~
exfil-scan --directory ./model-logs --recursive

6) CLI选项参考

注意:

  • 使用--input或--directory之一,不能同时使用。
  • 如果未提供路径,工具将从stdin读取。
  • 如果存在发现项,进程退出码为1。

7) 按输出格式的使用示例

纯文本输出

root@kitploit:~
exfil-scan --input suspicious.txt --format text

预期风格:

root@kitploit:~
exfil-scan report
=================
Scanned targets: 1
Total findings: 2

1. [HIGH] metadata_leaks/known_token_format:openai_key
   Location: suspicious.txt:1:10
   Description: Matched known credential/token format (openai_key).

JSON输出

root@kitploit:~
exfil-scan --input suspicious.txt --format json

预期结构:

root@kitploit:~
{
  "finding_count": 2,
  "scanned_targets": ["suspicious.txt"],
  "findings": [
    {
      "category": "metadata_leaks",
      "rule": "known_token_format:openai_key",
      "severity": "HIGH",
      "description": "Matched known credential/token format (openai_key).",
      "location": "suspicious.txt:1:10",
      "snippet": "..."
    }
  ]
}

HTML输出

root@kitploit:~
exfil-scan --directory ./outputs --recursive --format html --output report.html

预期行为:

  • 生成一个包含发现表格的独立HTML页面
  • 内容经过转义以安全渲染
  • 包含严重性、类别、规则、位置、描述

Markdown输出

root@kitploit:~
exfil-scan --input suspicious.txt --format markdown --output report.md

预期风格:

root@kitploit:~
# exfil-scan Report

- Scanned targets: 1
- Total findings: 2

8) 配置与灵敏度

仓库自带default-config.yaml。 你可以使用--config传递自己的文件。

灵敏度调整:

  • low(低):更少的误报,更大的阈值
  • medium(中):平衡的默认值
  • high(高):捕获更多细微模式

CLI灵敏度覆盖:

root@kitploit:~
exfil-scan --input out.txt --sensitivity high

9) 自定义模式与策略调整

你可以添加自己的令牌格式和元数据键:

root@kitploit:~
sensitivity: medium
rules:
  metadata_keys:
    - api_key
    - db_password
    - internal_token
  token_patterns:
    custom_jwt: "\\beyJ[A-Za-z0-9_\\-]{10,}\\.[A-Za-z0-9_\\-]{10,}\\.[A-Za-z0-9_\\-]{10,}\\b"
    corp_secret: "\\bcorp_[A-Za-z0-9]{24,}\\b"

然后运行:

root@kitploit:~
exfil-scan --input response.log --config ./my-config.yaml

10) 架构概述

模块职责:

  • exfil_scan/cli.py:参数解析、输入选择、输出渲染、退出处理
  • exfil_scan/config.py:默认值、YAML加载、递归合并、配置标准化
  • exfil_scan/scanner.py:六个检测引擎、发现数据类、报告格式化
  • tests/test_scan.py:检测与输出格式回归测试

执行流程:

  1. CLI解析参数。
  2. 配置加载默认值+可选覆盖。
  3. 扫描器从stdin/文件/目录读取文本。
  4. 每个启用的类别独立运行。
  5. 发现项按严重性排序并渲染。
  6. 退出码传达通过/失败/错误,便于自动化。

11) 退出码

代码含义
0无发现(干净)
1检测到发现项
2运行时或参数错误

这使得CI集成变得简单:

root@kitploit:~
exfil-scan --directory ./artifacts --recursive --format json --output exfil-report.json

如果发现任何检测,你的任务可以根据退出码1快速失败。


12) 测试

运行测试:

root@kitploit:~
pytest

覆盖范围包括:

  • 所有六个检测类别
  • 所有四种输出模式的报告格式化
  • 规则级别的断言,确保行为稳定

13) 安全说明

exfil-scan是一个启发式扫描器。 它的设计目的是降低风险并发现可疑输出,而非证明内容安全。

推荐部署模式:

  1. 在CI中对测试提示和固定输出运行扫描器
  2. 在生产防护中对生成的响应运行扫描器
  3. 将发现项路由至分析师分类和遥测
  4. 根据误报审查持续调整配置阈值

14) 许可证

本项目使用MIT许可证。 详见LICENSE文件以获取完整条款。


15) 贡献

欢迎贡献。 在提交PR时,请包括:

  • 清晰的复现步骤
  • 预期和实际行为
  • 针对新检测逻辑的测试
  • 引入新规则时的文档更新
下载工具
选项类型默认值描述
-i, --input路径无扫描一个输入文件
-d, --directory路径无扫描目录中所有支持的文件
-r, --recursive标志false配合--directory递归嵌套目录
-c, --config路径无YAML配置文件路径
-s, --sensitivitylow|medium|highconfig/default覆盖灵敏度配置
-f, --formattext|json|html|markdowntext渲染报告格式
-o, --output路径stdout将渲染后的报告写入文件
--version标志无打印CLI版本
-h, --help标志无显示用法和参数