코드 스캐닝: LLM 보안 취약점 검사기
코드 스캐닝: LLM 보안 취약점 검사기
코드의 LLM 관련 취약점을 병합하기 전에 찾아서 고칠 수 있으면 얼마나 좋을까요? Promptfoo Code Scanning은 AI 에이전트로 코드베이스에서 프롬프트 인젝션, PII 노출, 과잉 행위(excessive agency) 같은 LLM 특화 취약점을 찾아내는 기능이에요. 일반 보안 스캐너는 놓치는 LLM 특화 문제에 집중한다는 점이 특징이죠. 이 글에서는 스캐너의 동작 원리와 사용 방법, 심각도 분류를 살펴볼게요.
동작 방식
스캐너는 코드 변경에서 프롬프트 인젝션, PII 노출, 과잉 행위 같은 흔한 LLM 보안 위험을 검사해요. 표면적인 diff만 분석하는 대신, 코드베이스 깊숙이 데이터 흐름을 추적해서 사용자 입력이 어떻게 LLM 프롬프트에 도달하는지, 출력이 어떻게 사용되는지, LLM이 어떤 능력에 접근할 수 있는지를 파악하죠.
이 에이전틱(agentic) 접근 방식은 여러 파일에 걸친 미묘한 보안 문제를 잡으면서도, 알림 피로(alert fatigue)를 피할 만큼 신호 대비 노이즈 비율을 높게 유지해요.
시작하기
GitHub Action
풀 리퀘스트를 자동으로 스캔하고, 발견 사항을 리뷰 코멘트로 게시하며, 선택적으로 GitHub Code Scanning과 저장소 보안 탭에 알림을 게시해요. 코드가 GitHub에 있다면 가장 권장되는 사용 방식이에요.
VS Code 확장(엔터프라이즈)
편집기에서 바로 코드를 스캔하고, 실시간 피드백·인라인 진단·빠른 수정을 제공해요. 엔터프라이즈 고객에게 제공됩니다.
CLI 명령
로컬이나 어떤 CI 환경에서도 스캔을 실행할 수 있어요.
심각도 수준
발견 사항은 우선순위를 정하기 쉽도록 심각도로 분류돼요.
- Critical 🔴: 즉각적인 보안 위험
- High 🟠: 중대한 이슈
- Medium 🟡: 중간 위험
- Low 🔵: 경미한 이슈
스캔 설정에서 최소 심각도 임계값을 구성할 수 있어요.
커스텀 안내(Custom Guidance)
스캔을 내 요구에 맞게 조정할 수 있어요.
- 특정 취약점 유형이나 코드 영역에 집중
- 내 컨텍스트에 맞춰 심각도 조정
- 선호하는 라이브러리로 수정 제안
- 알려진 오탐(false positive) 건너뛰기
예시:
guidance: |
Ignore the /examples directory—it contains demo code only.
Treat potential PII exposure as critical.
For this app, sending proprietary code to OpenAI or Claude is not a vulnerability.
Use Zod schemas for validation when suggesting fixes.
클라우드와 엔터프라이즈
스캔은 기본적으로 Promptfoo Cloud에서 실행돼요. 자체 인프라에서 스캔을 돌려야 하는 조직을 위해 코드 스캐닝이 Promptfoo Enterprise On-Prem에서 제공돼요.