LabHub

블로그

정적 분석 / SAST 2026 — Semgrep / CodeQL / Snyk / SonarQube / Aikido / Trivy 심층 비교

한국어English日本語

프롤로그 — "보안 도구 하나로 다 막던 시대는 끝났다"

2018년쯤 "정적 분석 도구 뭐 써?" 하고 물으면 답은 보통 두 갈래였다. 오픈소스라면 SonarQube, 엔터프라이즈라면 Checkmarx 아니면 Veracode. 그게 전부였다. CI에 SAST 한 개 붙이고, 분기마다 false positive를 사람이 분류했다. 운영자는 PDF 보고서를 받았고, 개발자는 그걸 본 적이 거의 없었다.

2026년 5월 현재, 그 그림은 산산조각 났다. 한 회사의 보안 파이프라인을 그려보면 보통 이렇게 생긴다.

이 글은 2026년 시점에서 위 도구들이 각각 어디에 서 있는지, 무엇을 잘하고 무엇을 못하는지, 그리고 "우리 팀은 무엇을 골라야 하나"를 정리한다. 단순한 리스트가 아니라 — Pro engine, reachability, AI autofix, EU CRA — 2024~2026 사이에 이 시장을 흔든 4가지 흐름을 함께 본다.


1장 · 2026년 코드 보안 도구 지도 — SAST / DAST / SCA / Secrets / Container

먼저 큰 그림. 코드 보안 도구는 보통 다음 5축으로 분류된다.

카테고리무엇을 보나대표 도구
SAST (Static App Security Testing)소스 코드의 취약 패턴, dataflowSemgrep, CodeQL, Snyk Code, SonarQube, Checkmarx, Veracode
DAST (Dynamic App Security Testing)실행 중인 앱의 HTTP/표면 취약점OWASP ZAP, Burp Suite, Invicti
SCA (Software Composition Analysis)오픈소스 의존성의 알려진 CVESnyk Open Source, Endor Labs, Socket.dev, Trivy, Dependabot
Secrets코드/git 히스토리의 API 키, 토큰GitGuardian, TruffleHog, Cycode, Gitleaks
Container / IaC컨테이너 이미지, Terraform, K8s manifestTrivy, Snyk Container, Aikido, Checkov

여기에 2024~2026 사이에 새로 끼어든 카테고리가 둘 있다.

그리고 2026년의 트렌드는 명확하다. "여러 도구를 한 플랫폼이 묶는다". Snyk은 Code + Open Source + Container + IaC를 한 묶음으로 팔고, Aikido는 처음부터 올인원이고, Semgrep도 Pro 엔진 위에 Supply Chain·Secrets를 얹었다. 단일 점 도구로 시작해서 ASPM 같은 플랫폼이 되거나, 처음부터 플랫폼으로 들어오거나 둘 중 하나다.


2장 · Semgrep — 오픈소스 SAST의 표준 + Pro engine

Semgrep은 2020년경 등장한 정적 분석 도구로, "AST 위에서 패턴 매칭"이라는 단순한 모델을 사용한다. grep처럼 보이지만 코드의 구문 트리를 본다. 이 단순함이 무기가 되어, 2026년에는 오픈소스 SAST 시장의 사실상 표준이 됐다.

핵심 개념

강점

약점

언제 고르나

# Semgrep rule 예시 — Flask의 SQL injection 패턴
rules:
  - id: flask-sql-injection
    pattern: |
      $CURSOR.execute("..." + $VAR + "...")
    message: SQL injection via string concatenation
    severity: ERROR
    languages: [python]
    metadata:
      cwe: CWE-89
      owasp: A03:2021-Injection
# 로컬 실행
semgrep --config=auto .

# CI에서
semgrep ci --config=p/owasp-top-ten

Semgrep Pro engine은 단일 함수 안의 흐름을 넘어 인터프로시저럴 dataflow를 보고, 클래스 멤버를 통한 taint 추적도 한다. 무료 CE와의 가장 큰 차이는 "user input이 5단계 함수 호출을 거쳐 sink에 도달"하는 케이스를 잡느냐 못 잡느냐다.


3장 · CodeQL — GitHub Advanced Security의 핵심

CodeQL은 Semmle이 만들고 2019년 GitHub이 인수한 정적 분석 엔진이다. 코드를 데이터베이스로 변환해서 그 위에 쿼리를 작성한다는 독특한 모델을 쓴다. SQL을 쓰듯 "이런 조건을 만족하는 코드 경로를 찾아라"라고 질의한다.

핵심 개념

강점

약점

언제 고르나

// CodeQL 예시 — Java SQL injection taint flow
import java
import semmle.code.java.dataflow.FlowSources
import semmle.code.java.dataflow.TaintTracking

module SqlInjectionConfig implements DataFlow::ConfigSig {
  predicate isSource(DataFlow::Node n) { n instanceof RemoteFlowSource }
  predicate isSink(DataFlow::Node n) {
    exists(MethodCall mc | mc.getMethod().hasName("executeQuery") |
      n.asExpr() = mc.getArgument(0))
  }
}

module SqlInjectionFlow = TaintTracking::Global<SqlInjectionConfig>;

from SqlInjectionFlow::PathNode source, SqlInjectionFlow::PathNode sink
where SqlInjectionFlow::flowPath(source, sink)
select sink, source, sink, "SQL injection from $@", source, "user input"

CodeQL의 진짜 가치는 "한 번 짠 쿼리가 모든 GitHub 저장소에 적용 가능"이라는 점. Log4Shell이 터졌을 때 GitHub이 24시간 안에 쿼리를 배포했고, 그게 수십만 저장소에 즉시 반영됐다. 이런 규모는 다른 도구가 흉내 내기 어렵다.


4장 · Snyk Code / Snyk Open Source — DeepCode 통합 이후

Snyk은 원래 SCA(의존성 스캔)로 시작했다. 2020년 DeepCode(취리히 ETH 스핀오프, ML 기반 SAST)를 인수하면서 SAST로 확장했고, 지금은 Code + Open Source + Container + IaC를 묶은 통합 플랫폼이다.

핵심 제품

강점

약점

언제 고르나

# Snyk CLI 사용
snyk auth
snyk code test                  # SAST
snyk test                       # SCA (의존성)
snyk container test alpine:3    # 컨테이너
snyk iac test terraform/        # IaC

# CI 통합 (GitHub Actions)
- uses: snyk/actions/setup@master
- run: snyk test --severity-threshold=high

Snyk의 큰 변화는 2024년 DeepCode AI 통합 가속화. 이전엔 패턴 기반이었던 SAST가 ML 학습 + LLM autofix로 옮겨갔다. 실측에서 "false positive 30~40% 감소, autofix 채택률 50% 이상"이라는 보고가 나오기 시작했다. 다만 ML 기반의 약점인 "왜 이게 취약하다고 했는지 설명이 약하다"는 비판도 동시에 존재한다.


5장 · SonarQube 11 — 클래식의 진화

SonarQube는 2008년부터 있던 정적 분석의 클래식이다. 원래는 코드 품질(중복, 복잡도, 테스트 커버리지) 중심이었는데, 2010년대 후반부터 보안 룰(SonarSource Security)을 강화해서 SAST 시장에도 끼었다.

핵심 개념

강점

약점

언제 고르나

# SonarQube + Maven 빌드
sonar:
  image: sonarsource/sonar-scanner-cli
  command: >
    sonar-scanner
    -Dsonar.projectKey=my-app
    -Dsonar.host.url=$SONAR_HOST
    -Dsonar.login=$SONAR_TOKEN
    -Dsonar.qualitygate.wait=true

SonarQube 11(2024년 출시)의 핵심 변화는 두 가지. 첫째는 Clean Code 모델 강화 — issue를 단순 "심각도"가 아니라 attribute(Consistency, Intentionality, Adaptability, Responsibility)로 분류한다. 둘째는 AI-assisted code 룰 — Copilot이 생성한 코드 패턴을 인식하는 룰셋이 추가됐다.


6장 · Aikido Security — 올인원 신예

Aikido Security는 벨기에 스타트업으로 2023년 창업, 2024년 시리즈 A($17M), 2025년 시리즈 B($50M)을 받으며 빠르게 성장한 올인원 AppSec 플랫폼이다.

무엇이 다른가

강점

약점

언제 고르나

# Aikido CLI 통합
aikido scan --severity high

# GitHub App 설치 후엔
# - PR마다 자동 코멘트
# - severity 기반 차단
# - AI Autofix PR이 자동 생성

Aikido의 진짜 차별점은 "노이즈 관리". 보통 SAST 도구는 큰 monorepo에서 수천 개 이슈를 쏟아내고, 보안 엔지니어가 절반 이상을 false positive로 close 한다. Aikido는 ML로 dedup + 컨텍스트(어떤 환경, 어떤 path)로 우선순위를 매겨, "이번 주에 진짜로 봐야 할 30개"만 보여준다. 이 UX 차이가 작은 팀에서 큰 가치가 된다.


7장 · Cycode / GitGuardian — secrets + supply chain

코드와 git 히스토리에서 노출된 시크릿(API 키, 토큰, 인증서)을 잡는 카테고리는 2020년경 GitGuardian이 사실상 만들었다. Cycode는 거기에 supply chain까지 묶어 더 큰 ASPM으로 갔다.

GitGuardian

Cycode

강점 / 약점 비교

항목GitGuardianCycode
강점시크릿 탐지 정밀도 1위, 무료 tier 관대풀스택 ASPM, 큰 조직 가시성
약점시크릿 외 영역은 약함시크릿만 보면 GitGuardian보다 좁다
가격시크릿만 본다면 가성비 최고enterprise 가격

언제 고르나

# GitGuardian ggshield pre-commit hook
repos:
  - repo: https://github.com/gitguardian/ggshield
    rev: v1.32.0
    hooks:
      - id: ggshield
        language_version: python3
        stages: [commit, push, manual]

시크릿 탐지의 어려움은 "정규식만으로는 부족"하다는 점. AWS access key는 패턴이 명확하지만, JWT 토큰이나 Stripe restricted key 같은 건 컨텍스트(주변 변수명, 함수)와 entropy를 봐야 한다. GitGuardian과 Cycode 모두 ML 분류기를 추가해 false positive를 줄였고, 2025년 즈음부터는 LLM 기반의 "이게 진짜 시크릿인지 placeholder인지 판단" 기능도 들어왔다.


8장 · Trivy (Aqua) — 컨테이너 + 디펜던시 + IaC

Trivy는 Aqua Security가 만든 오픈소스 컨테이너 스캐너로, 단순한 CLI에서 출발해 지금은 사실상 표준이 됐다. 컨테이너 이미지뿐 아니라 디펜던시, IaC, K8s manifest, SBOM까지 한 바이너리로 다 한다.

핵심 기능

강점

약점

언제 고르나

# Trivy 사용 예
trivy image alpine:3.20
trivy fs ./src
trivy repo https://github.com/user/repo
trivy config terraform/
trivy k8s --report summary cluster

# SBOM 생성
trivy image --format cyclonedx -o sbom.json alpine:3.20

Trivy의 큰 강점은 "한 도구로 5가지를 다 한다"는 점이다. 작은 팀이라면 Trivy + Semgrep CE + GitGuardian 무료 tier 조합만으로 SAST + SCA + Container + IaC + Secrets를 모두 커버할 수 있다. OSS 친화적인 팀의 시작점으로 거의 항상 등장한다.


9장 · Checkmarx / Veracode — 엔터프라이즈 진영

Checkmarx(이스라엘, 2006), Veracode(미국, 2006)는 SAST 시장의 클래식 양강이다. 둘 다 대기업 / 금융 / 정부를 주 고객으로 한 enterprise SAST 플랫폼이다.

Checkmarx

Veracode

강점

약점

언제 고르나

# Checkmarx One CLI
cx scan create --project-name "my-app" \
  --branch main \
  --scan-types sast,sca,iac-security \
  -s ./source

# Veracode CLI
veracode static scan \
  --source-file my-app.jar \
  --app-name my-app

엔터프라이즈 진영의 변화는 모던 도구의 추격. Snyk, Semgrep Pro, GHAS가 enterprise 시장을 잠식하면서 Checkmarx·Veracode도 UX 개선과 AI autofix(Checkmarx AI Security Champion 등) 도입을 가속화했다. 가격대가 같다면 모던 도구가 점점 더 유리한 흐름이다.


10장 · OWASP ZAP, Bearer, Endor Labs, Socket.dev — 그 외 강자들

위 8장에서 다 못 다룬, 그러나 2026년 빠지면 안 되는 도구들.

OWASP ZAP

Bearer

Endor Labs

Socket.dev

비교 매트릭스

도구카테고리강점약점
ZAPDASTOSS, 큰 커뮤니티UI 클래식, false positive 많음
BearerPrivacy SASTPII flow 추적 1위일반 SAST는 약함
Endor LabsSCA + Reachability우선순위 결정에 강함가격 enterprise
Socket.devnpm 공급망실시간 supply chain 시그널npm 외 약함

11장 · SBOM (SPDX / CycloneDX) — 표준의 성숙

SBOM(Software Bill of Materials)은 "이 소프트웨어가 어떤 컴포넌트로 만들어졌나"의 목록이다. 2021년 미국 행정명령 14028 이후 사실상 의무화 흐름이 시작됐고, 2024년 EU CRA로 EU 시장에서도 강제화 방향이 잡혔다.

두 표준

2026년 현재 둘 다 살아남았고, 도구들은 보통 두 형식 모두를 지원한다. CycloneDX가 보안 도구(Trivy, Snyk, Anchore, Syft) 쪽에서 약간 더 우세하다는 인상.

무엇을 담나

필드의미
Component패키지 이름, 버전, 종류 (library, OS, container, ...)
Supplier누가 만들었나
Hash무결성 검증용
License라이선스 (SPDX ID)
Relationshipdepends-on, contains 같은 그래프
Vulnerabilities(선택) 알려진 CVE 목록, VEX

생성 도구

# Syft으로 컨테이너에서 SBOM 생성
syft alpine:3.20 -o cyclonedx-json > sbom.json
syft alpine:3.20 -o spdx-json > sbom.spdx.json

# Trivy로 동일하게
trivy image --format cyclonedx -o sbom.json alpine:3.20

# GitHub의 SBOM API
gh api /repos/OWNER/REPO/dependency-graph/sbom > sbom.json

VEX (Vulnerability Exploitability eXchange)

SBOM과 짝을 이루는 표준. "이 컴포넌트의 이 CVE는 우리 제품에서 영향 없음" 같은 vendor 응답을 표준화한다. 2025년부터 도구들이 VEX 입력을 받기 시작했고, reachability analysis와 결합해 "진짜 risky한 CVE만" 우선순위 매기는 흐름의 핵심 인프라가 됐다.


12장 · Reachability analysis — Endor, Snyk

"의존성에 CVE가 100개 있다"라는 보고서를 받아본 적이 있다면, 그 중 몇 개가 진짜 우리 앱에서 호출되는지 헤아려본 적도 있을 것이다. Reachability analysis는 이 문제를 자동화한다.

무엇이 reachability인가

업계 측정에 따르면, 1단계로 잡힌 CVE의 70~95%는 3~4단계로 가면 unreachable이다. 즉 대부분 패치할 필요가 없거나, 우선순위가 낮다.

주요 제공자

도구깊이언어 커버비고
Endor Labs4단계 (call-graph)Java, JS/TS, Python, Go, Rust 등reachability 전문
Snyk Open Source3단계 (symbol)Java, JS/TS, PythonUX가 매끄러움
Semgrep Supply Chain3단계Java, JS/TS, Python, Ruby, GoSemgrep 엔진 활용
Socket.dev1단계 + 행위 분석npm 특화다른 차원

효과

한 실측 사례 — 큰 모노레포(JS/TS, 300K LOC, 의존성 1500개) 기준.

이 효과 때문에 2024년 이후 SCA 도구를 고를 때 reachability가 사실상 필수 기능이 됐다.


13장 · LLM-powered SAST + Autofix

2023~2026 사이 가장 큰 흐름. LLM이 SAST의 두 가지를 바꿨다.

1. 룰 작성 / dataflow

전통적으로 SAST 룰은 정규식 또는 dataflow 그래프 위의 명시적 규칙이었다. LLM은 자연어 설명 → 코드 패턴을 어느 정도 일반화한다. 결과적으로 "본 적 없는 새로운 취약 패턴"도 잡을 가능성.

2. Autofix

발견된 취약점에 대해 LLM이 패치 PR을 자동 생성한다.

실측의 함정

LLM autofix가 자동 PR을 만든다고 해도 그게 항상 옳지는 않다.

2026년 best practice는 "LLM autofix는 PR 초안 + 사람 리뷰 필수, 의존성 업그레이드 같은 단순 케이스만 자동 머지 허용"이다. 코드 패치는 아직 사람이 확인해야 한다.

# Autofix가 자주 실수하는 패턴 예시
# Before — SQL injection
query = f"SELECT * FROM users WHERE name = '{name}'"
cursor.execute(query)

# LLM autofix v1 (틀림) — escape만 추가
query = f"SELECT * FROM users WHERE name = '{name.replace(chr(39), chr(39)+chr(39))}'"
cursor.execute(query)

# LLM autofix v2 (맞음) — parameterized
cursor.execute("SELECT * FROM users WHERE name = ?", (name,))

14장 · EU CRA (2024) — 소프트웨어 규제의 시작

EU Cyber Resilience Act는 2024년 10월 EU 의회 통과, 2024년 11월 발효된 규제다. EU 시장에 출시되는 "디지털 요소를 가진 제품"(여기에 소프트웨어 포함)에 보안 요구사항을 강제한다.

무엇을 요구하나

일정

한국·일본 회사가 영향받는 경우

도구 영향

EU CRA는 SBOM, 취약점 관리 프로세스, 24시간 보고를 모두 요구하기 때문에, 도구 선택에서 다음이 중요해졌다.

  1. SBOM 생성 + 저장 + 외부 공개 기능.
  2. 24시간 안에 발견 → 분류 → 패치 → 보고로 이어지는 워크플로.
  3. 감사 로그 — 누가 어떤 결정을 했는지 5년간 기록.

Cycode, Aikido, Snyk 같은 ASPM 플랫폼이 EU CRA 대응 기능을 빠르게 추가했고, GHAS도 Security Advisory 워크플로를 강화했다. 2026년 EU 시장 진입을 고려하는 한국·일본 팀이라면 SAST 도구 선택 시 CRA 대응 기능을 반드시 확인해야 한다.


15장 · 한국 / 일본 SAST 도입 현황

한국

한국은 정보통신망법, 개인정보보호법, ISMS-P 인증으로 보안 점검이 사실상 의무인 시장이다. 전통적으로 다음 도구가 강했다.

2020년대 중반부터 모던 도구가 잠식하기 시작.

일본

일본 SAST 시장은 보수적이지만, 2020년대 들어 글로벌 도구가 빠르게 침투 중.

일본 시장 특성:

  1. 자체 호스팅 선호 — SonarQube on-prem이 강하다.
  2. 컨설팅 + 도구 결합 모델이 일반적 — 단독 SaaS 도입은 신중.
  3. 정부·방산은 일본 회사(FFRI 등) 우선.

결론 — 지역별 권장

시나리오한국 권장일본 권장
스타트업 (10~50명)Semgrep + Trivy + GitGuardianAikido 또는 Snyk
중견 (50~500명)Snyk 또는 GHAS + AikidoSnyk + Cycode
대기업 (500+)Checkmarx + Cycode + 자체Veracode + FFRI 컨설팅
금융권Sparrow + Fortify + CheckmarxCheckmarx + GMO + 자체 호스팅 SonarQube
EU 진출 검토Cycode 또는 Aikido (SBOM + CRA)Snyk 또는 Aikido (SBOM + CRA)

마치며 — "도구를 사는 게 아니라, 워크플로를 사는 거다"

2026년의 SAST 시장은 단일 카테고리가 아니라 5축의 토너먼트다. 그리고 다음 5가지 흐름이 시장을 흔들고 있다.

  1. 올인원 플랫폼 통합 — Snyk, Aikido, Cycode가 SAST/SCA/Secrets/Container를 한 묶음으로.
  2. Reachability — "이 CVE 진짜 위험한가"를 자동 판단.
  3. LLM autofix — 발견에서 패치 PR까지 자동화.
  4. EU CRA — SBOM + 24h 보고 + 5년 패치 의무화.
  5. 개발자 우선 UX — IDE 통합, PR 즉시 피드백, false positive 자동 dedup.

작은 팀의 시작점은 단순하다 — Semgrep CE + Trivy + GitGuardian 무료 tier. 여기서 시작해 팀이 커지면 한 ASPM(Aikido, Cycode, Snyk)으로 묶거나, GitHub Enterprise를 쓴다면 GHAS로 통합하면 된다. 큰 조직은 enterprise 도구(Checkmarx, Veracode)와 ASPM(Cycode) 조합이 표준.

하나의 진리 — "도구를 사는 게 아니라, 워크플로(발견 → 분류 → 패치 → 보고)를 사는 거다". 어떤 도구를 고르더라도 이 워크플로가 5분 안에 작동하지 않으면, 1만 개의 issue가 백로그에 쌓일 뿐이다. 도구 평가의 첫 질문은 항상 "PR이 SAST에서 빨간 줄을 받으면, 1시간 안에 머지 가능한 상태로 갈 수 있나?" 다.


참고 / References

댓글

아직 댓글이 없습니다.

로그인하면 댓글을 쓸 수 있습니다