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

3.7 KiB

id, title, category, status, canonical_id, aliases, duplicate_of, source_trust_level, confidence_score, tags, raw_sources, last_reinforced, github_commit
id title category status canonical_id aliases duplicate_of source_trust_level confidence_score tags raw_sources last_reinforced github_commit
P-REINFORCE-WIKI-DEV-SAST 정적 애플리케이션 보안 테스트와 코드 품질 분석 (SAST) Dev verified
SAST
정적 분석
Static Analysis
보안 스캔
코드 품질 검사
A 1.0
Security
Testing
Code_Quality
CI_CD
Vulnerability_Scanning
Datacollector_Export_2026-05-02
2026-05-02

정적 애플리케이션 보안 테스트와 코드 품질 분석 (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)나 인증/인가 로직의 논리적 허점 등은 완벽히 잡아내기 어려움.
  • Continuous_Integration: SAST가 자동화된 품질 게이트로 작동하는 환경.
  • Test_Automation: 보안 테스트를 포함한 전체적인 소프트웨어 검증 체계.
  • Clean_Code: SAST를 통해 달성하고자 하는 고품질 코드의 표준.

🧪 검증 상태 (Validation)

  • 정보 상태: 검증 완료 (Verified)
  • 출처 신뢰도: A
  • 검토 이유: 소프트웨어의 안전성과 품질을 코드 작성 단계에서부터 시스템적으로 보장하기 위한 정적 분석 전략 및 보안 표준 정립.