피드로 돌아가기
Your agent takes orders from the web pages it reads
Dev.toDev.to
Security

LLM의 데이터-명령어 구분 불가 문제를 해결하는 시스템적 제어벽 설계

Your agent takes orders from the web pages it reads

Mirza Iqbal2026년 6월 20일4advanced

Context

LLM이 외부 웹페이지나 Tool 결과값을 처리할 때 데이터와 명령어를 동일한 Token Stream으로 인식하는 구조적 취약점 존재. 이로 인해 신뢰할 수 없는 외부 입력이 System Prompt를 무력화하고 권한 없는 동작을 유도하는 Prompt Injection 공격에 노출됨.

Technical Solution

  • System Prompt를 통한 단순 지시가 아닌 Harness 레벨에서의 구조적 격리 설계
  • 외부 유입 바이트 전체를 Untrusted Data로 규정하여 명령어 실행 권한을 원천 차단하는 보안 포스처 적용
  • 보이지 않는 문자(Invisible Characters) 제거를 통한 은닉 텍스트 필터링 로직 구현
  • Tool Output에 대한 기본 신뢰도를 제거하고 추론의 근거(Evidence)로만 활용하도록 루프 재설계
  • 외부 통신 경로를 엄격히 제한하여 침해 사고 발생 시 데이터 유출(Phone Home)을 방지하는 Outbound 락 설정
  • 에이전트가 악의적 명령어를 인지하되 이를 그대로 인용만 하는 Content-only 처리 구조 확립

- 모든 외부 입력(Web, Tool, DB, File)을 명령어가 아닌 단순 데이터로 처리하는지 검토 - 가시적이지 않은 제어 문자 및 HTML 주석 내 은닉 명령어를 제거하는 전처리 파이프라인 구축 - 에이전트의 외부 API 호출 권한을 최소화하고 화이트리스트 기반의 Outbound 필터링 적용 - 정상 케이스 외에 적대적 입력(Hostile Input)을 포함한 시나리오 기반의 보안 테스트 수행

원문 읽기