정적 코드 분석 도구 (Static Code Analyzer)

정의

코드를 실행하지 않고, 소스 코드 자체를 분석해서 보안 취약점, 버그, 코드 품질 문제를 찾아내는 도구

즉, 컴파일 전 또는 빌드 전에 코드의 문법, 패턴, 취약점을 “정적(Static)” 으로 탐색

동작

소스 코드를 파싱 (구문 분석)

특정 규칙/패턴에 맞춰 취약점, 버그, 코드 스멜, 보안 문제 탐색

결과 리포트 제공 (ex: SQL Injection 가능성, NullPointer, 비밀번호 하드코딩 등)

특징

실행 여부 : 코드 실행 없이 소스 자체 분석

분석 대상 : 소스 코드, 바이너리, 스크립트

속도 : 빠름 (대체로 빌드 시간 내에 가능)

장점 : CI/CO 통합, 개발 초기 단계에서 보안 문제 예방 가능

한계 : 실행 중 발생하는 논리적/.런타임 취약점은 탐지 어려움 (ex. 환경 변수, 동적 로딩 문제)

대표 도구

  • SonarQube
  • FindSecBugs
  • Semgrep
  • CodeQL
  • Fortify SCA
  • YASCA

사용 이유

개발 초기 단계에서 문제를 바로 발견 가능 → 수정 비용 절감

CI/CD 파이프라인에 바로 넣기 쉬움 (Jenkins, GitHub Actions 등)

규제 대응 (ISMS-P, KISA 권고) 시 필요

Leave a Comment