핵심 요약
2026년 5월 기준 Snyk DeepCode AI, Semgrep Pro Engine, GitHub Advanced Security with Copilot Autofix 셋이 사실상 표준 선택지. 5만 LOC TypeScript/Python 모노레포 실측 결과 GHAS가 거짓양성률에서 우세하나 비용이 높고, Semgrep이 룰 커스터마이즈에서 압도. Snyk는 SCA(의존성)에서 여전히 가장 정확.
1. 무엇을 스캔하는가
SAST(소스 코드 취약점), SCA(써드파티 의존성), Secret(키 누출), IaC(테라폼·k8s) 네 축. 세 도구 모두 네 축 다 한다고 광고하지만 실제 깊이는 다르다.
2. 테스트 대상
TypeScript 32k LOC + Python 18k LOC, 의존성 1,200개, 의도적 취약점 60건 삽입(SQLi 12, XSS 8, SSRF 6, 하드코딩 시크릿 14, prototype pollution 4, 취약 패키지 16).
3. 탐지율 — 정탐 / 거짓양성
| 도구 | SAST 탐지 | SCA 탐지 | Secret 탐지 | 거짓양성률 |
|---|---|---|---|---|
| Snyk DeepCode | 23/30 | 16/16 | 11/14 | 12% |
| Semgrep Pro | 26/30 | 14/16 | 13/14 | 9% |
| GHAS + Copilot | 27/30 | 15/16 | 14/14 | 5% |
| Semgrep OSS | 18/30 | - | 10/14 | 22% |
GHAS가 SAST와 거짓양성 모두 1위. Snyk SCA는 transitive 의존성 추적이 가장 깊다.
4. AI 룰 — 정말 도움이 되나
Snyk DeepCode AI와 Semgrep Assistant 모두 발견된 취약점에 대해 패치 제안과 설명. GHAS의 Copilot Autofix는 PR에 직접 패치 커밋을 생성. 채택률 측정 결과 Autofix가 38%, Semgrep Assistant 26%, Snyk 21%. 단순 SQLi나 path traversal에선 자동 패치가 거의 동작하지만 SSRF나 비즈니스 로직 결함은 셋 다 무력.
5. CI 통합 — Semgrep 예시
name: semgrep
on: pull_request
jobs:
semgrep:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: semgrep/semgrep-action@v1
env:
SEMGREP_APP_TOKEN: \$SEMGREP_APP_TOKEN
with:
config: 'p/owasp-top-ten p/typescript p/python'
generateSarif: true
- uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: semgrep.sarif
6. 커스텀 룰 — Semgrep의 진짜 강점
rules:
- id: no-raw-sql-in-handler
pattern: |
\$DB.query("..." + \$USER, ...)
message: SQL 문자열 연결 금지. ORM 또는 파라미터 바인딩 사용.
languages: [typescript]
severity: ERROR
metadata:
cwe: CWE-89
owasp: A03:2021
7. 비용 — 50인 엔지니어 조직
| 도구 | 가격(연간) | 비고 |
|---|---|---|
| Snyk Team | $30,000 | contributing dev 기준 |
| Semgrep Pro | $24,000 | private rules 포함 |
| GHAS | $30,000 | $49/active committer/월 |
| Semgrep OSS | $0 | 커스텀 룰 가능, AI 없음 |
8. 거짓양성 줄이기 — 공통 전략
모든 경고를 차단으로 두면 한 달 안에 팀이 무시 모드로 들어간다. severity ERROR + 신뢰도 HIGH만 차단, 나머지는 information으로 PR 코멘트. 새 코드 라인에서만 평가하는 diff-aware 모드는 셋 다 지원. 레거시 대규모 코드베이스 도입시 필수.
9. 실전 권장 조합
SCA는 Snyk나 GHAS Dependabot 중 하나로 통일. SAST는 Semgrep Pro로 커스텀 룰까지 적극 활용. Secret 스캔은 GHAS Push Protection을 켜서 푸시 단계에서 차단. AI Autofix는 GHAS가 가장 안정.
참고
- semgrep.dev/docs
- docs.snyk.io
- docs.github.com/en/code-security/code-scanning

댓글 0