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 文件。

相关

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