피드로 돌아가기
My personal journey learning about prompt-injections and how that influences my use of AI (agents)
Dev.toDev.to
Security

LLM Prompt Injection 방지를 위한 Data-Instruction 분리 설계 전략

My personal journey learning about prompt-injections and how that influences my use of AI (agents)

Artur Neumann2026년 4월 24일11intermediate

Context

LLM 기반 Agent가 외부 웹페이지나 파일의 텍스트를 컨텍스트로 처리하는 과정에서 데이터 내 삽입된 악의적 명령어가 실행되는 Prompt Injection 취약점 발생. 기존의 단순 문자열 Sanitization 방식은 LLM의 통계적 추론 특성으로 인해 우회 가능하며, 이는 데이터와 명령어를 구분하지 못하는 아키텍처적 한계에서 기인함.

Technical Solution

  • XML 태그 기반의 Prompt 구조 설계 및 데이터 영역() 지정
  • 입력 데이터 내 태그 제거를 통한 기본 Sanitization 시도 및 한계 검증
  • LLM의 통계적 연관성 추론을 이용한 유사 태그([selection]) 기반의 우회 공격 패턴 분석
  • System Prompt와 User Input을 물리적으로 분리하여 모델에 전달하는 구조 채택
  • Agent의 외부 액션 실행 전 사용자 확정(User Confirmation) 단계 도입을 통한 임의 실행 방지
  • Base64 및 비가시 문자 인코딩을 통한 데이터 유출(Data Exfiltration) 경로 식별 및 통제

- 외부 데이터가 포함된 Prompt 구성 시 System Role과 User Role을 명확히 구분하여 전송하는가? - 입력 데이터 내에 제어 문자가 포함되었을 때 LLM이 이를 명령어로 해석할 가능성을 검토했는가? - AI Agent가 API 호출이나 파일 접근 등 파괴적 액션을 수행하기 전 사용자 승인 절차가 존재하는가? - 출력 결과물에 민감 정보가 인코딩되어 유출될 가능성에 대해 필터링 로직을 갖추었는가?

원문 읽기