업데이트로 돌아가기
New releaseJul 24, 2026

semgrep v1.171.0

많은 언어를 위한 경량 정적 분석. 소스 코드처럼 보이는 패턴으로 버그 변종을 찾습니다.

공유

Semgrep 로고

엄청난 속도의 코드 스캐닝.

Homebrew PyPI 문서 Semgrep 커뮤니티 Slack 참여 이슈 환영! GitHub에서 Semgrep 별표 Docker Pulls Docker Pulls (기존) Twitter에서 @semgrep 팔로우


Semgrep는 빠르고 오픈소스인 정적 분석 도구로, 코드를 검색하고 버그를 찾으며 안전한 가드레일과 코딩 표준을 시행합니다. Semgrep는 30개 이상의 언어를 지원하며, IDE, 커밋 전 검사, CI/CD 워크플로의 일부로 실행할 수 있습니다.

Semgrep는 코드를 위한 의미론적 grep입니다. grep "2"를 실행하면 정확히 문자열 _2_만 일치하는 반면, Semgrep는 _2_를 검색할 때 x = 1; y = x + 1을 일치시킵니다. Semgrep 규칙은 이미 작성한 코드와 같아 보입니다. 추상 구문 트리, 정규식 씨름, 고통스러운 DSL이 없습니다.

보안 컨텍스트에서는 Semgrep Community Edition이 단일 함수 또는 파일의 경계 내에서만 코드를 분석할 수 있으므로 많은 실제 양성(true positive)을 놓칠 수 있습니다. 보안 목적(SAST, SCA, 또는 시크릿 스캐닝)으로 Semgrep를 사용하려면 Semgrep AppSec Platform을 강력히 권장합니다. 이 플랫폼은 다음과 같은 중요한 기능을 추가합니다:

  1. 향상된 핵심 분석 기능(파일 간, 함수 간, 데이터 흐름 도달 가능성)으로 오탐지를 25% 크게 줄이고 탐지된 실제 양성을 250% 증가시킵니다.
  2. Semgrep Assistant(AI)를 통한 결과의 컨텍스트 후처리로 노이즈를 약 20% 추가 감소시킵니다. 또한 Assistant는 맞춤형 단계별 수정 지침으로 결과를 강화하여, 사용자가 80% 이상의 경우에 실행 가능하다고 평가합니다.
  3. 사용자 정의 가능한 정책과 개발자 워크플로로의 원활한 통합을 통해 보안 팀이 다양한 결과를 개발자에게 언제, 어디서, 어떻게 제시할지(IDE, PR 코멘트 등) 세밀하게 제어할 수 있습니다.

Semgrep AppSec Platform은 SAST, SCA, 시크릿 전반에 걸쳐 20000개 이상의 독점 규칙으로 즉시 사용 가능합니다. Pro 규칙은 Semgrep 보안 연구 팀이 작성하고 유지 관리하며 정확도가 높아, AppSec 팀이 개발자를 느리게 하지 않고 결과를 직접 전달할 자신감을 가질 수 있습니다.

Semgrep는 사용자 컴퓨터 또는 빌드 환경에서 로컬로 코드를 분석합니다. 기본적으로 코드가 업로드되지 않습니다. 시작하기 →.

Semgrep CLI 이미지

언어 지원

Semgrep Code는 30개 이상의 언어를 지원합니다. 포함된 언어:

Apex · Bash · C · C++ · C# · Clojure · Dart · Dockerfile · Elixir · HTML · Go · Java · JavaScript · JSX · JSON · Julia · Jsonnet · Kotlin · Lisp · Lua · OCaml · PHP · Python · R · Ruby · Rust · Scala · Scheme · Solidity · Swift · Terraform · TypeScript · TSX · YAML · XML · Generic (ERB, Jinja, etc.)

Semgrep Supply Chain은 15개의 패키지 관리자에서 12개 언어를 지원합니다. 포함된 언어 및 패키지 관리자:

C# (NuGet) · Dart (Pub) · Go (Go modules, go mod) · Java (Gradle, Maven) · Javascript/Typescript (npm, Yarn, Yarn 2, Yarn 3, pnpm) · Kotlin (Gradle, Maven) · PHP (Composer) · Python (pip, pip-tool, Pipenv, Poetry) · Ruby (RubyGems) · Rust (Cargo) · Scala (Maven) · Swift (SwiftPM)

자세한 내용은 지원 언어를 참조하세요.

시작하기 🚀

  1. Semgrep AppSec Platform에서 시작하기
  2. CLI에서 시작하기

새 사용자는 Semgrep AppSec Platform부터 시작하는 것을 권장합니다. 시각적 인터페이스, 데모 프로젝트, 결과 분류 및 탐색 워크플로를 제공하며 CI/CD 설정을 빠르게 합니다. 스캔은 여전히 로컬에서 이루어지며 코드가 업로드되지 않습니다. 또는 CLI로 시작하여 터미널 출력을 탐색하며 일회성 검색을 실행할 수도 있습니다.

옵션 1: Semgrep AppSec Platform에서 시작하기 (권장)

Semgrep 플랫폼 이미지

  1. semgrep.dev에 등록하세요.

  2. 데모 결과를 탐색하여 Semgrep 작동 방식을 알아보세요.

  3. Projects > Scan New Project > Run scan in CI로 이동하여 프로젝트를 스캔하세요.

  4. 버전 관리 시스템을 선택하고 온보딩 단계에 따라 프로젝트를 추가하세요. 이 설정 후 Semgrep는 모든 풀 리퀘스트 후에 프로젝트를 스캔합니다.

  5. [선택 사항] 로컬에서 Semgrep를 실행하려면 CLI 섹션의 단계를 따르세요.

참고:

문제가 있는 경우 Semgrep Slack에서 도움을 요청하세요.

옵션 2: CLI에서 시작하기

  1. Install Semgrep CLI

    # For macOS
    $ brew install semgrep
    
    # For Ubuntu/WSL/Linux/macOS
    $ python3 -m pip install semgrep
    
    # To try Semgrep without installation run via Docker
    $ docker run -it -v "${PWD}:/src" semgrep/semgrep semgrep login
    $ docker run -e SEMGREP_APP_TOKEN=<TOKEN> --rm -v "${PWD}:/src" semgrep/semgrep semgrep ci
    
  2. semgrep login을 실행하여 계정을 만들고 Semgrep에 로그인하세요. 이 단계는 선택 사항이지만, Semgrep에 로그인하면 다음에 액세스할 수 있습니다:

  3. 앱의 루트 디렉토리로 이동하여 semgrep ci를 실행하세요. 이 작업은 소스 코드와 종속성의 취약점을 확인하기 위해 프로젝트를 스캔합니다.

  4. -e를 사용하여 대화형으로 자신만의 쿼리를 작성해 보세요. 예를 들어, 왼쪽과 오른쪽이 동일한 Python == 확인(잠재적 버그): $ semgrep -e '$X == $X' --lang=py path/to/src

Semgrep 에코시스템

Semgrep 에코시스템은 다음을 포함합니다:

  • Semgrep Community Edition - 모든 것의 핵심인 오픈소스 프로그램 분석 엔진. 오탐지에 대한 높은 허용 오차가 있는 임시 사용 사례(컨설턴트, 보안 감사자, 펜테스터 등)에 적합합니다.

  • Semgrep AppSec Platform - 조직 전반에서 SAST, SCA, 시크릿 스캐닝을 쉽게 오케스트레이션하고 확장하며, 개발자에게 과부하를 주지 않습니다. 개발자가 보는 결과, 결과를 보는 위치를 사용자 지정하고 GitHub, GitLab, CircleCI 등 CI 제공업체와 통합할 수 있습니다. 무료 및 유료 등급을 모두 포함합니다.

    • Semgrep Code (SAST) - 노이즈를 최소화하고 보안 지식이 없어도 개발자가 스스로 문제를 신속하게 해결할 수 있도록 지원하는 SAST로 취약점 백로그에서 실제 진전을 이루세요. 배포하기 쉬운 보안 가드레일과 맞춤형 단계별 수정 지침을 통해 개발자가 속도가 느려지지 않는다고 느끼기 때문에 실제로 문제를 수정합니다.

    • Semgrep Supply Chain (SSC) - 오픈 소스 서드파티 라이브러리 및 함수에서 도달 가능한 취약점을 탐지하는 높은 신호의 종속성 스캐너.

    • Semgrep Secrets (시크릿 스캐닝) - 의미론적 분석, 개선된 엔트로피 분석 및 검증을 사용하여 개발자 워크플로에서 민감한 자격 증명을 정확하게 표면화하는 시크릿 탐지.

카테고리