psyray/oasis

Ollama Automated Security Intelligence Scanner

OASIS – 开源自动化安全智能扫描器

是什么 – OASIS 是一个基于 Python 的命令行工具,使用本地运行的大语言模型(LLM)来审计源代码中的安全问题。它支持任何 Ollama 模型或任何 OpenAI 兼容服务器(vLLM、LM Studio、LocalAI 等),并生成机器可读的 JSON 报告,以及可选的 HTML、PDF 或 Markdown 渲染版本。

如何工作 – 该工具遵循 LangGraph 协调的流水线:

  1. 发现 – 遍历提供的文件/目录,并按文件或(实验性地)按函数对代码进行分块。
  2. 快速扫描 – 运行轻量级模型(可通过 --scan-model 配置)以标记潜在问题。
  3. 深度分析 – 将标记的代码片段输入一个或多个大型模型(--models),以获取详细的漏洞描述、严重性、可利用性判断,以及可选的 PoC 提示。
  4. 发现验证 – 在扫描过程中运行一个确定性的、代码驱动的验证器,为每个发现结果附加一个带置信度权重的判断。
  5. 报告生成 – 每个发现结果以标准 JSON 对象形式写入;工具还会生成 HTML 仪表板、PDF/Markdown 摘要,以及用于 CI 集成的 SARIF 文件。

主要功能

  • 多模型支持 – 可将快速的“扫描”模型与强大的“深度分析”模型结合使用,或并行运行多个深度模型并合并其输出(--report-model)。
  • 仅本地运行 – 所有 LLM 调用均针对本地托管的 Ollama 实例或自托管的 OpenAI 兼容服务器进行,确保代码和数据的私密性。
  • 交互式 Web UIoasis --web 启动一个密码保护的仪表板,用户可探索发现结果、请求助手重新调查特定问题,或查看 RAG 增强的解释。
  • 缓存机制 – 嵌入和分析结果会缓存到磁盘,可通过 --clear-cache-embeddings--cache-days 清除或过期。
  • CI/CD 友好 – 可在严重性阈值上强制退出码(--fail-on),并提供 GitHub Actions 示例。
  • 抑制与差异对比 – 可维护一个抑制指纹的 JSON 注册表,并将新运行与基线进行对比(--diff-against)。
  • 可扩展提示 – 可向 LLM 提示中附加自定义指令文本(--custom-instructions)。

典型工作流程

# 通过 pipx 安装(可编辑)
pipx install -e .

# 使用小模型和大模型对项目进行两阶段扫描
oasis -i my_project/ -sm gemma3:4b -m llama3:latest

# 本地提供结果以进行交互式审查
oasis -i my_project/ -sm gemma3:4b -m llama3:latest --web

报告将出现在 security_reports/<project-slug>/ 目录下,可直接在浏览器中打开或被其他工具消费。

适合人群 – 希望在不将专有代码发送到外部服务的情况下,将 AI 辅助静态分析集成到代码审查流程中的开发人员、安全工程师或 DevSecOps 团队。


TL;DR – OASIS 是一个开源、本地运行的 AI 安全扫描器,通过协调多个 LLM 来发现、验证和报告代码漏洞,配备 Web 仪表板和 CI 集成。

相关

  • 项目
  • 项目
  • 项目
  • 项目