2.7 KiB
2.7 KiB
정적 애플리케이션 보안 테스트 (SAST)
📌 Brief Summary
SAST(Static Application Security Testing)는 애플리케이션을 실행하지 않고 소스 코드나 바이트코드를 분석하여 잠재적인 보안 취약점과 결함을 찾아내는 화이트박스 테스트(White-box Testing) 기법입니다 [1, 2]. 소프트웨어 개발 수명 주기(SDLC)의 초기 단계인 IDE나 CI/CD 파이프라인에 통합되어 보안 이슈를 선제적으로 해결하는 '시프트 레프트(Shift-Left)' 전략의 핵심 도구입니다 [1, 3].
📖 Core Content
-
작동 원리 및 탐지 영역
- 코드 분석: 추상 구문 트리(AST)나 제어 흐름 그래프(CFG)를 생성하여 코드 구조를 파악합니다 [2].
- 테인트 분석 (Taint Analysis): 신뢰할 수 없는 외부 데이터 유입원(Source)에서 위험한 지점(Sink)으로 데이터가 흐르는지 추적하여 SQL 주입, XSS 등을 탐지합니다 [2, 4].
- 전수 조사: 실행되지 않는 코드 경로까지 모두 검사할 수 있어 높은 커버리지를 제공합니다 [2].
-
AI 기반 SAST의 진화
- 전통적 SAST의 고질적 문제인 높은 오탐률(False Positive)을 해결하기 위해 최근에는 LLM과 기계 학습을 결합한 차세대 도구들이 등장하고 있습니다 [5, 6].
- AI는 코드의 문맥을 이해하여 오탐을 필터링하고, 개발자가 즉시 적용할 수 있는 자동 수정 코드(Auto-fix)를 제안하여 수정 비용을 획기적으로 낮춥니다 [6, 7].
-
도구 및 에코시스템
- 주요 도구: SonarQube, Snyk Code, Semgrep, Checkmarx, Veracode 등 [1, 8].
- SCA와의 차이: SCA(Software Composition Analysis)가 외부 라이브러리의 취약점을 검사하는 반면, SAST는 팀이 직접 작성한 자체 소스 코드의 로직 결함을 찾는 데 집중합니다 [9].
⚖️ Trade-offs & Caveats
- 오탐 관리: 런타임 컨텍스트가 부족하여 실제로는 안전한 코드임에도 경고를 띄울 수 있습니다. 이를 관리하기 위해 규칙 최적화와 수동 리뷰 병행이 필요합니다 [3, 10].
- 문맥적 한계: 비즈니스 로직상의 결함이나 아키텍처 수준의 설계 오류를 파악하는 데는 한계가 있으므로, 실행 중인 앱을 검사하는 DAST 및 수동 리뷰와 결합된 하이브리드 접근이 권장됩니다 [10, 11].
🔗 Knowledge Connections
- Related Topics: 동적 애플리케이션 보안 테스트 (DAST), 소프트웨어 구성 분석 (SCA), 시프트 레프트 (Shift-Left), DevSecOps, 코드 리뷰 (Code Review)
- Projects/Contexts: Antigravity 보안 거버넌스, GitHub Advanced Security
Last updated: 2026-04-30