피드로 돌아가기
Dev.toSecurity
원문 읽기
LLM Context Window 내 Secret 제거를 통한 Prompt Injection 원천 차단
Want AI Agents That Don't Spill Secrets? Don't Give Them Secrets
AI 요약
Context
LLM이 Instruction과 Data를 구분하지 못하는 아키텍처적 특성으로 인해 System Prompt나 Tool Schema에 포함된 API Key가 노출되는 보안 취약점 발생. Prompt Injection 공격 시 Context Window 내의 모든 토큰이 모델의 생성 대상이 되어 민감 정보가 그대로 유출되는 구조적 한계 존재.
Technical Solution
- Probabilistic Layer와 Deterministic Layer의 완전한 분리를 통한 권한 관리 체계 구축
- Tool Schema 설계 시 인증 정보(Credentials)를 제외하고 사용자의 의도(Intent)와 대상(Target)만 정의하는 파라미터 구조 채택
- Secret Fetching 로직을 LLM 외부의 Execution Handler 단계로 이동시켜 런타임에만 인증 정보 주입
- RAG 시스템 내 문서 노출 방지를 위해 LLM 전달 전 단계에서 Auth0 FGA 기반의 결정론적 필터링 적용
- .claudeignore 등 파일 필터링 도구를 보안 경계로 오인하지 않고 코드 레벨의 Context 주입 제어 로직 구현
실천 포인트
1. System Prompt 및 Tool Schema 내에 API Key, Token 등 하드코딩된 Secret 존재 여부 전수 조사
2. LLM이 인증 값을 직접 전달하는 구조를 Execution Handler에서 환경 변수나 Secret Manager를 통해 주입하는 방식으로 변경
3. Tool 정의서에서 'server_key'와 같은 인증 관련 파라미터를 완전히 제거하고 비즈니스 로직 파라미터만 정의
4. RAG 파이프라인의 Retriever 단계에서 사용자 권한 기반의 Access Control List(ACL) 필터링 로직 적용 여부 검토