LLM 보안 판정을 검증 가능하게 만들기: Evidence Gate 패턴
요약
LLM 기반 보안 분석의 신뢰성을 높이기 위해 증거 기반의 판정을 강제하는 'Evidence Gate' 패턴을 소개합니다. 모든 판정은 MCP, 외부 URL, S3, 로컬 경로 등 해결 가능한 출처를 반드시 포함해야 하며, 이를 통해 모델의 환각을 방지하고 검증 가능성을 확보합니다.
핵심 포인트
- Evidence Gate 패턴을 통해 LLM 보안 판정의 근거를 명확히 규정
- 모든 판정은 MCP, 외부 URL 등 해결 가능한 출처를 포함해야 함
- 도구 연결 시 특정 솔루션에 종속되지 않는 논리적 추상화 적용
- 숫자 데이터(CVSS 등)는 계산 근거가 있을 때만 허용하여 조작 방지
- 오픈 소스 USAP를 통해 실제 사고 사례 기반의 성능 검증 지원
제가 시도해 본 모든 "AI 보안 분석가"는 동일한 결함을 가지고 있었습니다. 즉, 화면상에서 올바른 판정과 자신만만하지만 틀린 판정을 구분할 수 없다는 점입니다. 보안 분야에서 이것은 단순한 UX의 사소한 문제가 아니라, 문제의 핵심 그 자체입니다. 그래서 저는 단 하나의 규칙을 중심으로 USAP를 구축했으며, 이 포스트는 그 규칙과 그로부터 파생된 세 가지 요소에 관한 것입니다.
Evidence Gate (증거 게이트)
USAP의 출력 계약(output contract)은 11개의 타입 지정된 JSON 필드로 구성됩니다. 타협할 수 없는 핵심 필드는 evidence_references입니다. 모든 판정은 반드시 해결 가능한(resolves) 최소 하나 이상의 출처를 포함해야 합니다. 허용되는 네 가지 형식은 다음과 같습니다:
mcp:<logical>:<tool>:<call_id>— 연결된 MCP로부터 실시간으로 가져온 증거https://...— 정식 외부 출처 (CVE, EPSS 피드, MITRE)s3://...— 운영자 아티팩트 (operator artifact)local://<repo-path>— 권고 판정(advisory verdicts)을 위한 저장소 내 표준 (해당 경로가 존재해야 함)
"scanner"나 "SIEM이 보여주었다"와 같은 출처는 계약 경계에서 거부됩니다. 이 단 한 번의 검사로 대부분의 모호한 출력을 제거할 수 있습니다. 모델이 실제 무언가를 지목하지 않고서는 계약을 충족할 수 없기 때문입니다.
파생 결과 1: 커넥터는 추상화되어야 한다
만약 판정이 mcp:siem:search를 인용한다면, 이것이 Splunk로 하드코딩되어서는 안 됩니다. 모든 사람이 Splunk를 사용하는 것은 아니기 때문입니다. 따라서 에이전트는 논리적(logical) 역량을 선언하고, 레지스트리(registry)가 이를 운영자가 연결한 실제 도구(Splunk, Elastic, Sentinel 등)로 해결(resolve)합니다. 만약 어떤 역량도 구현되지 않았다면, 에이전트는 우아하게 성능을 낮추고(degrades gracefully) 텔레메트리(telemetry)를 지어내는 대신 해당 축을 UNKNOWN으로 표시합니다.
파생 결과 2: 숫자를 서술할 수 없다
해결 가능한 증거를 요구하게 되면, 숫자를 서술하는 방식도 어색하게 느껴집니다. CVSS는 게시된 벡터(vector)로부터 계산됩니다. EPSS는 FIRST 피드에서 실시간으로 가져옵니다. 신뢰도(Confidence)는 작성된 루브릭(rubric)에서 나옵니다. 만약 숫자를 계산할 수 없다면, 도구는 숫자를 조작하는 대신 "정성적(qualitative)"이라고 반환합니다. 그리고 계약은 인용된 벡터와 일치하지 않는 cvss_score를 거부합니다.
파생 결과 3: 스스로를 채점할 수 없다
증거를 강제하는 시스템은 자신의 정답지(answer key)를 기준으로 스스로를 채점해서는 안 됩니다. USAP는 실제 공개된 사고 사례(Log4Shell, xz, Capital One, MOVEit)와 양성 오탐(false-positive) 함정이 포함된 홀드아웃 코퍼스(held-out corpus), 그리고 정밀도(precision), 재현율(recall), FPR(False Positive Rate), MTTD(Mean Time To Detect)를 보고하는 표준 라이브러리(stdlib) 하네스(harness)를 제공합니다.
USAP는 오픈 소스(Apache-2.0)이며, 표준 라이브러리(stdlib) 전용으로, MCP 서버 또는 모든 모델에 붙여넣을 수 있는 시스템 프롬프트(system prompts)로 실행됩니다. 저장소(repo)의 모든 예시는 다시 실행해 볼 수 있는 실제 명령입니다. 게이트(gate) 설계에 대한 피드백을 환영합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기