위키득계정 ↗
기술

Semgrep

Semgrep기술
주요 역할
소스 정적 분석
검색 방식
코드 형태의 패턴 규칙
실행 위치
로컬 또는 빌드 환경
제품 구분
Community Edition과 AppSec Platform
Semgrep은 소스 코드의 구조와 의미를 활용해 패턴을 찾는 정적 분석 도구다. 버그나 코딩 규칙 위반을 탐지하는 규칙을 적용하고 개발 환경과 커밋 전 검사, CI 흐름에 연결할 수 있다.

문자열 검색과 코드 패턴

단순 문자열 일치보다 코드의 구조를 고려해 일치하는 부분을 찾는다. 개발자가 사용하는 코드와 비슷한 형태로 검사 패턴을 작성한다. 여러 언어를 지원하지만 언어별로 분석 기능과 지원 정도를 구분해야 한다.

개발 과정의 검사

IDE에서 확인하거나 커밋 전 검사와 CI에 연결해 문제 후보를 표시할 수 있다. 로컬 기계나 빌드 환경에서 소스를 분석한다. 검사 규칙의 선택과 결과 검토가 필요하며 발견된 항목을 모두 실제 결함으로 단정하거나 결과가 없다는 이유로 안전을 보장할 수는 없다.

분석 범위와 제품 차이

Community Edition의 분석은 함수나 파일 경계 안으로 제한되므로 여러 파일에 걸친 흐름을 놓칠 수 있다. AppSec Platform은 별도 분석 엔진과 규칙, 결과 관리 기능을 제공한다. 오픈소스 도구의 기능과 확장 제품에서 제공하는 기능을 동일하게 설명하면 안 되는 이유다.

관련 문서

Coccinelle / Clang / Pylint / Ruff