arm/metis

Metis is an open-source, AI-driven tool for deep security code review

解決的問題

Metis 旨在減少大型、複雜或遗留代碼庫中的審查疲勞,並檢測細微的安全漏洞。它解決了傳統靜態分析工具(SAST)和 Linter 的局限性,這些工具通常依賴硬編碼規則,難以對代碼進行語義理解。

運作原理

Metis 使用由大語言模型(LLM)驅動的代理式 AI 框架,對原始碼進行深度推理。它採用基於外掛的系統來支援多種語言,並利用 Tree-sitter 進行代碼拆分和分析。對於 C 和 C++,它使用 CodeGraph 進行可達性分析。該系統可以將代碼庫索引到向量儲存中(支援 ChromaDB、帶有 pgvector 的 PostgreSQL 以及 Qdrant),以實現檢索增強分析。它還包含一個分診流程,用於驗證發現並減少誤報,該流程可應用於其自身結果或第三方 SAST 工具的結果。

適用人群

主要面向需要執行深度安全代碼審查並在多種程式語言中改進安全編碼實務的安全工程師和軟體開發人員。

亮點

  • 深度推理:使用 LLM 進行語義理解,而非硬編碼規則。
  • 可擴展架構:外掛友善的設計,便於添加新語言、模型和提示詞。
  • 廣泛的語言支援:支援大量語言,包括 C、C++、Java、Python、Rust、Go,甚至 AArch64 組裝。
  • 供應商靈活性:相容於主要 LLM 供應商(OpenAI、Anthropic、Gemini、AWS Bedrock)和本地模型(vLLM、Ollama、llama.cpp)。
  • 確定性證據:專注於源本地分析和確定性證據收集,以確保發現基於代碼。
  • 整合分診:驗證發現以減少誤報,並可處理來自其他工具的 SARIF 檔案。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案