Files
2nd/10_Wiki/Topics/Static_Application_Security_Testing.md
T

47 lines
3.7 KiB
Markdown

---
id: P-REINFORCE-WIKI-DEV-SAST
title: "정적 애플리케이션 보안 테스트와 코드 품질 분석 (SAST)"
category: Dev
status: verified
canonical_id: ""
aliases: ["SAST", "정적 분석", "Static Analysis", "보안 스캔", "코드 품질 검사"]
duplicate_of: ""
source_trust_level: A
confidence_score: 1.0
tags: ["Security", "Testing", "Code_Quality", "CI_CD", "Vulnerability_Scanning"]
raw_sources: ["Datacollector_Export_2026-05-02"]
last_reinforced: 2026-05-02
github_commit: ""
---
# [[정적 애플리케이션 보안 테스트와 코드 품질 분석 (SAST)]]
## 1. 개요
정적 애플리케이션 보안 테스트(SAST, Static Application Security Testing)는 소프트웨어를 실행하지 않은 상태에서 소스 코드, 바이트 코드 또는 바이너리를 분석하여 보안 취약점, 프로그래밍 오류 및 설계 결함을 찾아내는 보안 검사 기술이다. 개발 초기 단계(Shift-Left)에서 코드를 스캔하여 SQL 인젝션, 크로스 사이트 스크립팅(XSS)과 같은 심각한 보안 위험을 사전에 차단하고 전반적인 코드 품질을 유지하는 데 핵심적인 역할을 한다.
## 2. 주요 기능 및 특징
- **코드 구조 분석**: 제어 흐름(Control Flow)과 데이터 흐름(Data Flow)을 추적하여 입력값이 안전하지 않은 방식으로 처리되는 지점을 식별.
- **취약점 식별**: OWASP Top 10, CWE(Common Weakness Enumeration) 등 국제적인 보안 취약점 목록을 기준으로 코드를 검사.
- **자동화된 피드백**: CI/CD 파이프라인이나 IDE와 통합되어 코드가 작성되거나 커밋되는 즉시 개발자에게 보안 이슈를 알림.
- **규정 준수(Compliance)**: 특정 산업 표준(PCI DSS, HIPAA 등)에 부합하는 보안 수준을 유지하고 있음을 증명하기 위한 감사 보고서 생성.
## 3. 엔지니어링 가치
- **보안의 조기 확보 (Shift-Left Security)**: 애플리케이션이 실행되기 전인 코딩 단계에서 취약점을 발견하므로, 운영 단계에서 발견되는 결함에 비해 수정 비용이 압도적으로 저렴함.
- **코드 품질 표준화**: 보안 이슈뿐만 아니라 코드 복잡도, 명명 규칙 위반, 비효율적인 코드 패턴 등을 잡아내어 팀 전체의 코딩 표준 상향 평준화 유도.
- **지속적인 보안 태세 유지**: 수동 보안 진단과 달리, 자동화된 스캔을 통해 모든 코드 변경에 대해 24/7 보안 검증 수행 가능.
## 4. 트레이드오프 및 주의사항
- **오탐(False Positives)**: 실제 보안 위협이 아닌 코드도 취약점으로 오인하여 보고할 수 있으며, 이는 개발자의 피로도를 높이고 도구에 대한 신뢰를 떨어뜨리는 주된 요인이 됨.
- **빌드 성능 영향**: 대규모 코드베이스에 대해 심층 분석을 수행할 경우 스캔 시간이 길어져 개발 파이프라인의 속도를 저하시킬 수 있음.
- **런타임 결함 탐지 한계**: 코드를 실행하지 않기 때문에, 실제 실행 환경에서 발생하는 구성 설정 오류(Config errors)나 인증/인가 로직의 논리적 허점 등은 완벽히 잡아내기 어려움.
## 5. 지식 연결 (Related)
- [[Continuous_Integration]]: SAST가 자동화된 품질 게이트로 작동하는 환경.
- [[Test_Automation]]: 보안 테스트를 포함한 전체적인 소프트웨어 검증 체계.
- [[Clean_Code]]: SAST를 통해 달성하고자 하는 고품질 코드의 표준.
## 🧪 검증 상태 (Validation)
- **정보 상태**: 검증 완료 (Verified)
- **출처 신뢰도**: A
- **검토 이유**: 소프트웨어의 안전성과 품질을 코드 작성 단계에서부터 시스템적으로 보장하기 위한 정적 분석 전략 및 보안 표준 정립.