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 ``` ### 在终端/本地界面中执行 ![Pre-Auditor IA Pro 的本地执行](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/edcf96ede2101535.png) ## 检测内容 `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 将自动生成。 ### 本地仪表盘 ![Pre-Auditor IA Pro 本地仪表盘](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/b85de9ae59101536.png) ### PDF 报告 ![Pre-Auditor IA Pro PDF 报告](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/ba6977f30c101537.png) ## 交付包 生成一个准备交付的文件夹: ``` 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, 上游代理, 多模态安全, 威胁建模, 安全检测, 无后门, 本地安全工具, 渗透测试辅助, 逆向工具, 预审计工具