fran25ans/preauditor-ia-pro
GitHub: fran25ans/preauditor-ia-pro
一款面向 API、CI/CD、云和 AI 集成项目的本地安全预审计工具,通过静态规则扫描快速生成专业报告,为后续专家评审提供优先级排序和基线对比。
Stars: 0 | Forks: 0
# Pre-Auditor IA Pro
一款用于对包含 API、自动化、基础设施和 AI 集成的项目进行专业风险初步排查的本地工具。它无意成为最终的审计工具:而是通过检测模式、划分发现优先级并生成初始报告,以便开启专家评审。
## 作为命令安装
Pre-Auditor IA Pro 会安装两个本地命令:
- `preauditor`
- `preauditor-ui`
### 推荐的快速安装
安装 `v0.1.0` 版本中发布的 wheel 包:
```
python3 -m pip install "https://github.com/fran25ans/preauditor-ia-pro/releases/download/v0.1.0/preauditor_ia-0.1.0-py3-none-any.whl"
```
验证安装:
```
preauditor --profile pro --list-rules
preauditor-ui
```
发布页面:
```
https://github.com/fran25ans/preauditor-ia-pro/releases/tag/v0.1.0
```
### 使用 pipx 隔离安装
如果你希望将其作为命令行工具使用,且不与其他项目的依赖混合,推荐此方式:
```
python3 -m pip install pipx
python3 -m pipx install "https://github.com/fran25ans/preauditor-ia-pro/releases/download/v0.1.0/preauditor_ia-0.1.0-py3-none-any.whl"
```
### 从 GitHub 标签安装
直接从仓库安装特定版本:
```
python3 -m pip install "git+https://github.com/fran25ans/preauditor-ia-pro.git@v0.1.0"
```
### 从本地 wheel 包安装
如果你已经下载了 `.whl` 文件:
```
python3 -m pip install preauditor_ia-0.1.0-py3-none-any.whl
```
或者,如果你在项目目录内并且已在 `dist/` 中生成了 wheel 包:
```
python3 -m pip install dist/preauditor_ia-0.1.0-py3-none-any.whl
```
### 从源码安装
用于本地开发,以可编辑模式安装:
```
python3 -m pip install -e . --no-build-isolation
```
你也可以使用仓库中的本地安装程序:
```
sh install.sh
```
### 重新安装已发布版本
如果你之前已安装了旧版本并希望重新安装:
```
python3 -m pip install --force-reinstall "https://github.com/fran25ans/preauditor-ia-pro/releases/download/v0.1.0/preauditor_ia-0.1.0-py3-none-any.whl"
```
## 本地 Web 界面
除了 CLI,你还可以在浏览器中使用本地界面:
```
preauditor-ui
```
打开:
```
http://127.0.0.1:8765
```
在该界面中你可以:
- 指定项目路径
- 选择配置文件和技术栈
- 填写客户、审计人员、范围和版本
- 如果你已启动 Ollama,可激活本地分诊
- 生成完整的交付包
- 打开报告、PDF、仪表盘、JSON、SARIF、基线和检查清单
如果你希望它尝试自动打开浏览器:
```
preauditor-ui --open
```
### 在终端/本地界面中执行

## 检测内容
`pro` 配置文件包含 100 条活跃规则,涵盖 API、AI、CI/CD、供应链、secrets、容器、Kubernetes、cloud/Terraform、基础设施、身份验证、会话、前端、隐私、弹性、密码学和注入。
- 暴露的 API 密钥、token 和 secrets
- `.env` 文件、私钥和凭据文件
- 开放的 CORS
- 似乎未进行身份验证的 Endpoints
- GitHub Actions 中过高的权限
- 使用了 `eval`、`exec`、`shell_exec`、`subprocess(..., shell=True)` 及类似方法
- 可见的系统 Prompts
- 需要进行输出验证的 AI 调用
- 具有高度自主性的 Agents
- 具有广泛权限的 AI 工具
- 包含敏感数据的日志
- 没有明显验证机制的文件上传
- 通过字符串拼接构造的 SQL
- 已禁用的 TLS
- 已开启的 Debug 模式
- 不安全的反序列化
- 未验证签名的 JWT
- 弱密码学
- 宽松的 CSP
- 特权容器或 root 权限容器
- 对 `0.0.0.0/0` 开放的基础设施
- 由于受控 URL 导致的潜在 SSRF
- Dockerfile 中的 Secrets
- `curl | bash` 及供应链风险
- 缺少安全属性的 Cookies
- 带有 `pull_request_target` 的 GitHub Actions
- 未固定到 commit SHA 的 Actions
- 带有持久化凭据的 Checkout
- CI 任务中的 Secrets/OIDC
- 在 pipelines 中使用 `sudo`
- 安装时未固定版本的依赖项
- 带有 `latest` 标签的 Docker 镜像
- 具有特权、`hostPath`、root 或过度 RBAC 权限的 Kubernetes
- 带有通配符的 IAM
- 公开的 S3 存储桶
- 暴露的数据库或云工作负载
- 已禁用的身份验证/授权
- 默认凭据
- 路径遍历、XXE、开放重定向和 XSS
- 未验证签名的 Webhooks
- 无来源控制的 RAG/embeddings
- 受 AI 影响的代码执行
- 可能包含敏感内容的 AI 遥测/日志
- HSTS、旧版 TLS 和防点击劫持标头
- 不安全的 OAuth 重定向 URI、缺少 `state`/`nonce` 以及 JWT `none`
- 已禁用的静态加密
- 已禁用的备份、最终快照或删除保护
- 日志中的 PII
- 带有 `.env` 或凭据的 CI 缓存
- Docker 中的 `COPY .`、远程 `ADD` 以及宽泛的 capabilities
- 自动挂载的 Kubernetes 服务账户 token
- 生产环境中的 GraphQL 内省/演练场
- 暴露的详细错误或堆栈跟踪
- 反映动态来源的 CORS
- 已禁用的 Guardrails、审核或 AI 输出验证
- 暴露的 Swagger/OpenAPI 或 Actuator
- 不安全的 Elasticsearch、Redis、MongoDB、RabbitMQ、Kafka 或 MinIO
- 缺少 Lockfiles 或 CI 中不可复现的安装
- `latest`、通配符、Git 或本地路径的依赖项
- 包管理器中已禁用的 TLS/完整性验证
- Pipelines 中的破坏性命令
- Terraform 后端/状态和敏感输出
- Azure/GCP 中的公共存储桶
- 已禁用的 MFA 和缺乏防重放保护
## 使用方法
```
python3 preauditor.py /ruta/al/proyecto --profile pro --out informe.md --html informe.html --json hallazgos.json --sarif hallazgos.sarif
```
在此文件夹中运行的示例:
```
python3 preauditor.py ./sample-vulnerable --profile pro --out reports/sample-pro.md --html reports/sample-pro.html --json reports/sample-pro.json --sarif reports/sample-pro.sarif
```
如果 CLI 在默认情况下发现严重或高危漏洞,将返回代码 `1`。你可以调整阈值:
```
python3 preauditor.py ./mi-app --fail-on Critica
python3 preauditor.py ./mi-app --fail-on never
```
## 配置文件
- `basic`:用于免费版本或潜在客户吸引的基本规则。
- `pro`:扩展规则、评分、导出功能和专业报告。
- `ai`:侧重于 AI agents、权限、prompts、CI/CD 和 secrets。
- `api`:侧重于 APIs、身份验证、会话、前端、隐私和注入。
- `cloud`:侧重于 cloud、Kubernetes、容器、基础设施和弹性。
- `cicd`:侧重于 pipelines、供应链、secrets 和 agents。
- `fintech`:侧重于 APIs、身份验证、隐私、密码学、cloud、CI/CD 和 AI。
要查看完整的规则目录:
```
python3 preauditor.py --profile pro --list-rules
```
## 客户端模式
你可以自定义报告的封面和元数据:
```
python3 preauditor.py ./mi-app \
--profile fintech \
--client "ACME Payments" \
--auditor "Tu Nombre / Tu Empresa" \
--scope "Revision inicial de seguridad de API, CI/CD e IA" \
--report-version "2026.05" \
--out informe-acme.md \
--html informe-acme.html \
--pdf informe-acme.pdf \
--dashboard dashboard-acme.html
```
仪表盘是一个本地 HTML 文件,支持搜索、按严重程度和类别进行筛选。当运行该工具的 Python 环境中安装了 `reportlab` 时,PDF 将自动生成。
### 本地仪表盘

### PDF 报告

## 交付包
生成一个准备交付的文件夹:
```
preauditor ./mi-app \
--profile pro \
--stack springboot \
--client "ACME" \
--auditor "Francisco José Gimeno" \
--scope "Pre-auditoria de seguridad aplicacion/API/CI-CD" \
--report-version "2026.05" \
--deliverable ACME-preauditoria-2026-05 \
--fail-on never
```
该文件夹包含:
- `informe-tecnico.md`
- `informe-tecnico.html`
- `resumen-direccion.pdf`
- `dashboard.html`
- `hallazgos.json`
- `hallazgos.sarif`
- `baseline.json`
- `checklist-remediacion.md`
## 基线与对比
首次审计:
```
preauditor ./mi-app --profile pro --baseline baseline.json --out informe.md
```
后续审计:
```
preauditor ./mi-app --profile pro --compare baseline.json --out informe-comparado.md
```
输出结果会指出新增的、已修复的以及持续存在的发现。
## 使用 Ollama 进行本地分诊
你可以选择使用 Ollama 作为本地第二分析师,在人工审计员查看之前,审查最复杂的发现。默认情况下,它不会删除发现:只会在 Markdown、HTML、PDF、仪表盘和 JSON 中添加分诊结论。
首先启动 Ollama 并下载一个模型:
```
ollama pull llama3.1
ollama serve
```
然后运行带有分诊功能的扫描:
```
preauditor ./mi-app \
--profile pro \
--ollama \
--ollama-model llama3.1 \
--ollama-min-severity Alta \
--out informe.md \
--html informe.html \
--json hallazgos.json
```
添加的字段:
- `probable_real`:看起来像是一个真实的发现,应优先处理。
- `requiere_revision`:缺少上下文,需要审计员进行验证。
- `probable_falso_positivo`:可能不适用于实际上下文。
如果你希望报告自动隐藏 Ollama 标记为中或高置信度的可能误报,请使用:
```
preauditor ./mi-app --profile pro --ollama --ollama-filter-fp
```
专业建议:仅在内部审查或 CI/CD 中使用 `--ollama-filter-fp`。对于交付给客户的文件,最好让发现结果及其分诊标签保持可见,以免掩盖上下文相关的风险。
## 抑制误报
如果某个发现已被验证并接受,请在被扫描项目的根目录下创建一个 `.preauditor-ignore` 文件,或通过 `--ignore-file` 传入该文件。
支持的格式:
```
SEC-032
SEC-032 .github/workflows/legacy.yml
SEC-032:path/**/*.yml
fingerprint:a1b2c3d4e5f6
file:docs/**
```
`.preauditor-ignore.example` 中提供了一个模板。
## 自定义 YAML/JSON 规则
你可以在不修改 Python 引擎的情况下添加自定义规则。这适用于内部策略、客户模式、域名、禁用标志或仅适用于你公司的配置。
示例:
```
rules:
- id: ACME-001
title: Flag de bypass interno activado
severity: Critica
category: Custom
regexes:
- bypassAuth\s*[:=]\s*true
- DISABLE_AUTH\s*=\s*true
file_globs:
- "*.js"
- "*.ts"
- "*.py"
- "*.env*"
recommendation: Eliminar el flag o limitarlo a tests aislados.
```
使用方法:
```
preauditor ./mi-app --profile pro --rules-file examples/custom-rules.yml --out informe.md
```
主要字段:`id`、`title`、`severity`、`category`、`regex` 或 `regexes`、`file_globs`、`description`、`why_dangerous`、`exploit_concept`、`recommendation`、`secure_example` 和 `reference`。
`examples/custom-rules.yml` 中提供了一个现成的示例。
## 工具测试
这些测试并非用于审计项目:而是用于验证引擎本身是否能持续检测关键规则,并确保主要输出结果不会遭到破坏。
```
python3 -m unittest discover -s tests
```
它们涵盖了 secrets、AI workflows、复合发现、配置文件、抑制项和报告元数据。
Ollama 的测试不会调用真实模型:它们只验证 JSON 解析和对误报的显式过滤,从而确保测试套件依然快速且可复现。
## 复合发现
除了单独的规则外,当引擎检测到危险的组合时,还会生成复合发现,例如:
- 受信任的工作区 + 来自 PR 的 prompt + agent 的写入权限。
- 开放的 CORS + 启用了凭据。
## 报告结构
生成的报告包含两部分:
- 面向管理层的摘要:整体风险、按严重程度统计的数量、业务影响和优先事项。
- 技术报告:脱敏的证据、上下文、文件、近似行号、近似 CVSS、置信度、工作量、建议的 SLA、描述、概念性漏洞利用、修复方法、安全示例、OWASP 参考和检查清单。
## 专业导出
- Markdown,用于快速交付或内部审查。
- 可打印的 HTML,适用于客户以及从浏览器手动转换为 PDF。
- JSON,用于自主集成。
- SARIF 2.1.0,适用于 pipelines 和兼容代码扫描的平台。
## 支持的文件类型
扫描程序会检查纯文本(`.py`、`.js`、`.ts`、`.yml`、`.yaml`、`.md`、`.tf`、`Dockerfile` 等)中的代码和配置,并且还能从 `.docx` 中提取基本文本,以交叉比对报告或审计文件。
如果你只想查询单个文件,请将其放入一个文件夹中并扫描该文件夹:
```
mkdir -p /tmp/preaudit-check
cp /ruta/al/archivo.docx /tmp/preaudit-check/
python3 preauditor.py /tmp/preaudit-check --profile pro --out informe-docx.md --html informe-docx.html
```
## 建议的专业模式
- 免费的本地工具:基本扫描、总结性报告和初始规则。
- 专业版:更多规则、可打印的 HTML、近似 CVSS、SARIF、面向客户的导出和高级建议。
- 专家服务:人工验证、代码修复、团队培训和缓解计划。
## 局限性
该引擎使用静态规则和模式,并可选择依赖 Ollama 进行本地分诊。这种方式快速且透明,但可能会产生误报和漏报。架构风险、业务逻辑、上下文授权和实际可利用性仍需专家进行评审。
标签:AI安全, AI风险缓解, API安全, Chat Copilot, CI/CD安全, CISA项目, DevSecOps, JSON输出, Llama, LNA, Python, TCP SYN 扫描, URL发现, Web UI, 上游代理, 多模态安全, 威胁建模, 安全检测, 无后门, 本地安全工具, 渗透测试辅助, 逆向工具, 预审计工具