정의
코드를 실행하지 않고, 소스 코드 자체를 분석해서 보안 취약점, 버그, 코드 품질 문제를 찾아내는 도구
즉, 컴파일 전 또는 빌드 전에 코드의 문법, 패턴, 취약점을 “정적(Static)” 으로 탐색
동작
소스 코드를 파싱 (구문 분석)
특정 규칙/패턴에 맞춰 취약점, 버그, 코드 스멜, 보안 문제 탐색
결과 리포트 제공 (ex: SQL Injection 가능성, NullPointer, 비밀번호 하드코딩 등)
특징
실행 여부 : 코드 실행 없이 소스 자체 분석
분석 대상 : 소스 코드, 바이너리, 스크립트
속도 : 빠름 (대체로 빌드 시간 내에 가능)
장점 : CI/CO 통합, 개발 초기 단계에서 보안 문제 예방 가능
한계 : 실행 중 발생하는 논리적/.런타임 취약점은 탐지 어려움 (ex. 환경 변수, 동적 로딩 문제)
대표 도구
- SonarQube
- FindSecBugs
- Semgrep
- CodeQL
- Fortify SCA
- YASCA
사용 이유
개발 초기 단계에서 문제를 바로 발견 가능 → 수정 비용 절감
CI/CD 파이프라인에 바로 넣기 쉬움 (Jenkins, GitHub Actions 등)
규제 대응 (ISMS-P, KISA 권고) 시 필요