본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

SpotBugs는 컴파일된 자바 바이트코드를 정적 분석해 버그 패턴과 보안 약점을 찾아 주는 공개 소프트웨어 도구로, 개발이 멈춘 FindBugs 를 이어받은 후속 프로젝트이다.

SpotBugs 는 프로그램을 실행하지 않고 클래스 파일(바이트코드)을 읽어 문제가 될 만한 코드 모양을 찾는 정적 분석 도구이다. 소스코드가 아니라 바이트코드를 보므로 컴파일만 되면 분석할 수 있고, 어떤 자바 버전으로 컴파일한 프로그램이든 다룰 수 있다. 공식 사이트는 SpotBugs 가 정적 분석으로 자바 코드의 버그를 찾는 LGPL 자유 소프트웨어이며, 버려진 FindBugs 를 포크해 그 자리에서 이어 가는 프로젝트이고, 400개가 넘는 버그 패턴을 검사한다고 소개한다. Ant, Maven, Gradle, Eclipse, IntelliJ IDEA, SonarQube 와 함께 쓸 수 있다.[1]

기본 검사기는 널 포인터 역참조, 닫지 않은 자원, 잘못된 equals·hashCode 구현, 동기화 오류 같은 코드 품질 결함을 찾는다. 보안 약점은 플러그인 Find Security Bugs(find-sec-bugs)가 맡는다. 이 플러그인의 버그 패턴 목록에는 다음 같은 항목이 있다.[2]

  • 크로스사이트 스크립트(XSS) - 서블릿·JSP 에서 검증 없이 출력되는 값
  • HTTP 응답 분할(HTTP_RESPONSE_SPLITTING) - 헤더에 들어가는 CR·LF
  • 경로 탐사(PATH_TRAVERSAL_IN/OUT) - 파일 경로에 들어가는 외부 입력 → 디렉토리 트래버설
  • 하드코드된 비밀번호·키(HARD_CODE_PASSWORD, HARD_CODE_KEY)
  • SQL·명령어·LDAP 인젝션, 검증 없는 리다이렉트, 취약한 암호 알고리즘(DES 등), 예측 가능한 난수

이 항목들은 행정안전부·KISA 소프트웨어 개발보안 기준의 구현단계 보안약점과 많이 겹쳐, 공공 정보화사업에서 보안약점 진단의 보조 도구로도 쓰인다 → 시큐어 코딩

보안 도구 구별하기

편집 원본 편집
도구 분류 무엇을 대상으로 하는가
SpotBugs 정적 분석(SAST) 자바 바이트코드의 버그·보안 약점
ModSecurity 웹 방화벽(WAF) 운영 중인 웹 서버로 들어오는 HTTP 요청을 검사·차단
OpenVAS 취약점 스캐너 네트워크로 접속해 호스트·서비스의 알려진 취약점 점검
OllyDbg 디버거 윈도우 실행 파일을 실행하며 기계어 수준으로 분석

정적 분석은 소스나 바이트코드를 읽고, 취약점 스캐너는 실행 중인 시스템을 밖에서 찔러 보며, 웹 방화벽은 운영 중 공격을 막는다는 점이 다르다.

  1. ↑ 「SpotBugs - Find bugs in Java Programs」, SpotBugs 프로젝트, https://spotbugs.github.io/, 확인일: 2026-11-04.
  2. ↑ 「Bug Patterns」, Find Security Bugs, https://find-sec-bugs.github.io/bugs.htm, 확인일: 2026-11-04.