54 lines
3.7 KiB
Markdown
54 lines
3.7 KiB
Markdown
---
|
|
id: static_application_security_testing
|
|
title: 정적 애플리케이션 보안 테스트 (Static Application Security Testing, SAST)
|
|
category: DevOps_and_Security
|
|
status: stable
|
|
confidence_score: 0.95
|
|
created_at: 2026-04-18
|
|
updated_at: 2026-05-08
|
|
tags:
|
|
- sast
|
|
- static_analysis
|
|
- linting
|
|
- shift_left
|
|
- security_testing
|
|
raw_sources:
|
|
- Backend/Static Analysis & Linting (정적 분석 및 린팅).md
|
|
- Backend/동적-정적 코드 분석 (Static-Dynamic Code Analysis).md
|
|
- Programming & Language/시프트 레프트 (Shift-Left).md
|
|
---
|
|
|
|
# 정적 애플리케이션 보안 테스트 (Static Application Security Testing, SAST)
|
|
|
|
## 📌 Brief Summary
|
|
SAST(Static Application Security Testing)는 애플리케이션을 실행하지 않고 소스 코드, 바이트 코드 또는 바이너리 수준에서 보안 취약점을 분석하는 '화이트박스 테스팅' 기법입니다 [1]. 개발 초기 단계(Shift-Left)에서 보안 결함을 발견하여 수정 비용을 최소화하고, 코딩 표준 준수 및 잠재적인 논리 오류를 식별하는 데 핵심적인 역할을 합니다 [1, 2].
|
|
|
|
## 📖 Core Content
|
|
|
|
### 1. SAST의 특징 및 장점
|
|
* **화이트박스 테스트**: 내부 소스 코드 구조를 직접 분석하여 취약한 함수 호출, 데이터 흐름, 제어 흐름을 파악합니다 [1].
|
|
* **조기 발견 (Shift-Left)**: 코드가 작성되는 즉시 또는 빌드 단계에서 검사를 수행하므로, 배포 후 발견되는 이슈보다 수정 비용이 훨씬 저렴합니다 [1].
|
|
* **높은 커버리지**: 실행 경로에 상관없이 코드 전체를 훑으므로 이론적으로는 모든 코드 라인을 검사할 수 있습니다.
|
|
|
|
### 2. 주요 분석 기법
|
|
* **데이터 흐름 분석 (Data Flow Analysis)**: 신뢰할 수 없는 사용자 입력(Taint)이 검증 없이 위험한 함수(Sink)로 도달하는지 추적합니다 (예: SQL Injection, XSS 방어).
|
|
* **제어 흐름 분석 (Control Flow Analysis)**: 논리적인 실행 순서를 분석하여 도달 불가능한 코드나 비정상적인 루프를 식별합니다.
|
|
* **린팅 (Linting)**: 코딩 컨벤션 위반이나 잠재적인 버그를 유발할 수 있는 안티 패턴을 정적 규칙 기반으로 찾아냅니다 [2].
|
|
|
|
### 3. 도구 및 통합
|
|
* **대표 도구**: SonarQube, Checkmarx, Fortify, Snyk Code, ESLint (Security plugins) 등.
|
|
* **IDE 통합**: 개발자가 코드를 작성하는 시점에 실시간으로 피드백을 제공하여 보안 교육 효과를 동시에 거둘 수 있습니다.
|
|
|
|
## ⚖️ Trade-offs & Caveats
|
|
* **높은 오탐률 (False Positives)**: 실제로는 안전한 코드임에도 불구하고 문맥을 오해하여 취약점으로 보고하는 경우가 많아 개발자의 검토 시간이 필요합니다.
|
|
* **런타임 이슈 탐지 불가**: 서버 설정 오류, 인증 메커니즘의 동적 결함 등 실행 환경에서만 발생하는 문제는 잡아낼 수 없습니다 (DAST와 병행 필수).
|
|
* **언어 의존성**: 각 프로그래밍 언어의 구문을 이해해야 하므로, 지원되지 않는 언어나 복잡한 프레임워크에서는 분석 정밀도가 떨어질 수 있습니다.
|
|
|
|
## 🔗 Knowledge Connections
|
|
- **Related Topics**: [[DAST|동적 보안 테스트]], [[SCA|소프트웨어 구성 분석]], [[Shift-Left|시프트 레프트]], 추상 구문 트리(AST)
|
|
- **Projects/Contexts**: CI/CD 파이프라인 보안 게이트 설정, 안전한 소프트웨어 개발 수명주기(SSDLC)
|
|
- **Contradictions/Notes**: SAST는 모든 취약점을 해결해주지 않습니다. 특히 서드파티 라이브러리의 취약점은 SCA가, 런타임 환경은 DAST가 담당해야 전체적인 방어망이 완성됩니다 [1, 2].
|
|
|
|
---
|
|
*Last updated: 2026-05-08*
|