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 整合。
相關
- 專案
- 專案
- 專案
- 專案