Repolode
arm

arm/metis

Arm Product Security Team이 만든 오픈소스 LLM 기반 보안 코드 리뷰 도구로, 고정 규칙 대신 의미론적 추론으로 취약점을 찾습니다.

스타
891
포크
128
열린 이슈
12
마지막 커밋
그저께

어떤 프로젝트인가요?

Metis는 심층적인 보안 코드 리뷰를 위한 에이전트형 AI 프레임워크입니다. 기존 린터나 정적 분석기처럼 하드코딩된 규칙에 의존하는 대신, 대규모 언어 모델로 코드의 의미를 추론해 대규모 코드베이스나 레거시 코드베이스에 숨어 있는 미묘한 취약점까지 찾아내는 것을 목표로 합니다. 또한 자체 분석 결과와 서드파티 SARIF 출력에서 발견된 문제를 검증하고, 근거를 수집해 오탐을 줄입니다.

C, C++, Java, Python, Go, Rust, TypeScript, Solidity, Terraform 등 다양한 언어를 지원하며, tree-sitter 기반 코드 분할 기능과 새 언어를 추가할 수 있는 플러그인 시스템을 제공합니다. LLM 백엔드는 OpenAI, Azure OpenAI, Anthropic, Gemini, AWS Bedrock, vLLM, Ollama, llama.cpp 중에서 설정할 수 있습니다. 벡터 저장소는 기본값으로 ChromaDB를 사용하며, PostgreSQL (pgvector)과 Qdrant도 선택할 수 있습니다.

CLI 또는 대화형 프롬프트에서 Metis를 실행해 디렉터리, 파일, diff를 검토하고, 코드베이스를 인덱싱하거나 관련 질문을 하고, SARIF 결과를 분류할 수 있습니다. 결과는 JSON 또는 SARIF 형식으로 저장할 수 있습니다.

핵심 기능

  • 01하드코딩된 규칙 대신 LLM의 의미론적 추론으로 취약점을 찾습니다.
  • 02오탐을 줄이기 위해 자체 분석과 서드파티 SARIF 도구의 결과를 검증합니다.
  • 03플러그인 시스템으로 다양한 언어를 지원하며, C/C++에서는 CodeGraph 도달 가능성 분석도 제공합니다.
  • 04Ollama, vLLM, llama.cpp를 통한 로컬 모델을 비롯해 여러 LLM 공급자를 지원합니다.
  • 05기본 벡터 백엔드로 ChromaDB를 제공하며, PostgreSQL pgvector와 Qdrant도 선택할 수 있습니다.
  • 06전체 디렉터리, 개별 파일, 패치 diff를 검토하고 JSON 또는 SARIF 형식으로 결과를 출력합니다.

활용 사례

  • 규칙 기반 도구에서 잡음이 너무 많이 발생하는 대규모 또는 레거시 C/C++ 코드베이스의 보안 검토.
  • 병합 전에 pull request 패치의 보안 문제 검토.
  • 기존 SAST 도구의 결과를 분류해 실제 문제일 가능성이 높은 항목과 오탐을 구분.
  • 소스 코드를 네트워크 외부로 내보낼 수 없는 환경에서 로컬 호스팅 모델로 보안 분석 실행.

빠른 시작

  1. 1

    저장소를 클론합니다

    git clone https://github.com/arm/metis.git
  2. 2

    가상 환경을 만들고 종속 항목을 설치합니다

    uv venv && uv pip install .
  3. 3

    OpenAI API 키를 환경 변수로 설정합니다

    export OPENAI_API_KEY="your-key-here"
  4. 4

    코드베이스를 분석합니다

    uv run metis --codebase-path "/path/to/src" --verbose

사용 전 알아둘 점

  • LLM 공급자가 필요합니다. 기본값은 OpenAI이며 API 키가 필요합니다.
  • 선택한 백엔드에서 임베딩을 제공하지 않는 한 벡터 인덱싱에는 임베딩 공급자가 필요합니다.
  • 언어별 지원 범위가 다르며, 일부 언어는 기본적인 검토만 지원합니다.

포함된 컬렉션

토픽

#security-review#code-review#llm#static-analysis#vulnerability-detection#sarif#agentic-ai

자주 묻는 질문

metis은(는) 무엇인가요?
Arm Product Security Team이 만든 오픈소스 LLM 기반 보안 코드 리뷰 도구로, 고정 규칙 대신 의미론적 추론으로 취약점을 찾습니다. Metis는 심층적인 보안 코드 리뷰를 위한 에이전트형 AI 프레임워크입니다. 기존 린터나 정적 분석기처럼 하드코딩된 규칙에 의존하는 대신, 대규모 언어 모델로 코드의 의미를 추론해 대규모 코드베이스나 레거시 코드베이스에 숨어 있는 미묘한 취약점까지 찾아내는 것을 목표로 합니다. 또한 자체 분석 결과와 서드파티 SARIF 출력에서 발견된 문제를 검증하고, 근거를 수집해 오탐을 줄입니다.
metis은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
metis은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
metis은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. metis의 마지막 커밋은 2026년 11월 5일입니다.
metis은(는) 어디에 사용할 수 있나요?
규칙 기반 도구에서 잡음이 너무 많이 발생하는 대규모 또는 레거시 C/C++ 코드베이스의 보안 검토. 병합 전에 pull request 패치의 보안 문제 검토. 기존 SAST 도구의 결과를 분류해 실제 문제일 가능성이 높은 항목과 오탐을 구분. 소스 코드를 네트워크 외부로 내보낼 수 없는 환경에서 로컬 호스팅 모델로 보안 분석 실행.
metis는 어떻게 설치하나요?
저장소를 클론합니다: git clone https://github.com/arm/metis.git 가상 환경을 만들고 종속 항목을 설치합니다: uv venv && uv pip install . OpenAI API 키를 환경 변수로 설정합니다: export OPENAI_API_KEY="your-key-here" 코드베이스를 분석합니다: uv run metis --codebase-path "/path/to/src" --verbose
metis은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/arm/metis

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트

LLM으로 STRIDE 위협 모델, 공격 트리, 완화 방안을 생성하는 AI 기반 애플리케이션 위협 모델링 도구입니다.

보안#threat-modeling#security#stride
1.2천+3 이번 주337PythonMIT활발히 관리됨업데이트 9시간 전