위키득계정 ↗
기술

Bandit

Bandit기술
대상 언어
Python
분석 기반
추상 구문 트리
확장 방식
검사 플러그인
프로젝트
PyCQA
Bandit는 Python 소스 코드에서 흔한 보안 문제를 찾는 정적 분석 도구다. 각 파일의 추상 구문 트리를 만들고 검사 플러그인을 적용해 진단 보고서를 생성한다.

문자열보다 코드 구조

같은 글자가 나타나더라도 코드에서 어떤 역할을 하는지에 따라 의미가 달라질 수 있다. Bandit는 파일을 처리해 추상 구문 트리를 만들고 해당 노드에 적절한 플러그인을 실행한다. 소스를 실제 서비스처럼 실행하지 않고 코드 구조에 기반해 보안 문제의 후보를 찾는 방식이다.

프로젝트별 검사 구성

검사할 파일과 디렉터리, 실행할 검사 항목과 제외할 항목을 설정할 수 있다. INI 형식의 프로젝트 설정이나 명시적으로 지정한 YAML과 TOML 설정을 활용한다. 어떤 검사를 적용했는지에 따라 결과 범위가 달라지므로 보고서를 읽을 때 대상과 규칙 구성을 함께 확인해야 한다.

개발 과정의 진단 자료

로컬 개발 도구나 CI 과정에서 사용할 수 있으며 검사가 끝나면 보고서를 생성한다. 진단을 코드와 문맥에 맞춰 검토하는 과정이 필요하다. 취약점이 알려진 의존성의 버전을 대조하는 도구와는 검사 대상이 다르며 결과가 없다는 이유로 코드 전체의 안전성을 보장할 수는 없다.

관련 문서

Pip-audit / Semgrep / CodeQL / Detect-secrets / Pre-commit