psyray/oasis
Ollama Automated Security Intelligence Scanner
OASIS – 开源自动化安全智能扫描器
是什么 – OASIS 是一个基于 Python 的命令行工具,使用本地运行的大语言模型(LLM)来审计源代码中的安全问题。它支持任何 Ollama 模型或任何 OpenAI 兼容服务器(vLLM、LM Studio、LocalAI 等),并生成机器可读的 JSON 报告,以及可选的 HTML、PDF 或 Markdown 渲染版本。
如何工作 – 该工具遵循 LangGraph 协调的流水线:
- 发现 – 遍历提供的文件/目录,并按文件或(实验性地)按函数对代码进行分块。
- 快速扫描 – 运行轻量级模型(可通过
--scan-model配置)以标记潜在问题。 - 深度分析 – 将标记的代码片段输入一个或多个大型模型(
--models),以获取详细的漏洞描述、严重性、可利用性判断,以及可选的 PoC 提示。 - 发现验证 – 在扫描过程中运行一个确定性的、代码驱动的验证器,为每个发现结果附加一个带置信度权重的判断。
- 报告生成 – 每个发现结果以标准 JSON 对象形式写入;工具还会生成 HTML 仪表板、PDF/Markdown 摘要,以及用于 CI 集成的 SARIF 文件。
主要功能
- 多模型支持 – 可将快速的“扫描”模型与强大的“深度分析”模型结合使用,或并行运行多个深度模型并合并其输出(
--report-model)。 - 仅本地运行 – 所有 LLM 调用均针对本地托管的 Ollama 实例或自托管的 OpenAI 兼容服务器进行,确保代码和数据的私密性。
- 交互式 Web UI –
oasis --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 集成。
相关
- 项目
- 项目
- 项目
- 项目