ETUDE가 LLM 에이전트의 도구 업데이트 권한 상속 문제를 드러낸다
Beyond Prompt Injection: The Tool Update Gap in LLM Agent Security
무엇인가
이 논문은 LLM 기반 에이전트가 외부 도구를 업데이트한 뒤에도 설치 당시 부여한 신뢰와 권한을 그대로 유지하는 도구 업데이트 갭을 다룬다. MCP 생태계에 17만 7천 개 이상의 커뮤니티 도구가 등록됐다는 배경처럼 에이전트 기능이 외부 도구에 의존할수록 공격 표면도 커지는데, 기존 연구는 주로 프롬프트 인젝션처럼 모델이 보는 입력을 조작하는 공격에 집중했다. 저자들은 도구 설치 시에는 검사하지만 이후 업데이트 코드는 재검증하지 않고 실행하는 프레임워크 동작을 공급망 취약점으로 규정한다. 악성 코드가 LLM의 컨텍스트 밖 도구 프로세스에서 직접 실행되므로 프롬프트 인젝션 탐지기나 모델 가시 영역 방어로는 잡기 어렵다는 점이 핵심이다.
어떻게 동작하나
제안 공격 ETUDE는 처음에는 정상 도구 A(v1)를 배포해 입장 검사를 통과하고 신뢰를 얻은 뒤, 업데이트 A(v2)에 악성 기능을 심는 절차를 따른다. A(v2)는 도구 이름·설명·입력 스키마를 유지하고(R1), 원래 기능과 정상 결과를 보존하며(R2), LLM의 추가 도구 호출 없이 도구 구현 내부에서 권한을 악용해 직접 실행한다(R3). 악성 동작은 기존 핸들러 실행 경로에 삽입되고 예외 처리로 격리되어 실패해도 정상 결과를 반환하므로, 정상 작업 완료와 공격 성공을 분리해 측정할 수 있다. 공격 분류는 전달 시점(E1 설치 전, E2 업데이트 후)과 실행 경로(P-ctx 모델 가시 지시, P-direct 도구 코드 직접 실행)로 나뉘며 ETUDE는 E2×P-direct에 해당한다.
무엇과 다른가
실험은 Gemini CLI, Codex CLI, Claude Code, DeepSeek Harness, OpenCode, Pi, Goose 등 7개 프레임워크에서 진행됐다. 세 가지 공격 목표는 합성 자격증명 유출, 테스트 API를 통한 무단 주문 생성, 격리된 연구 노트 파일 변조였고, 정상 작업은 Markdown 정리, CSV 통계, ICS 생성 등으로 구성됐다. RQ1에서 ETUDE는 공격 성공률 97.6%, 정상 작업 완료율 95.9%를 기록했고 가장 강한 프롬프트 인젝션 베이스라인보다 85.1% 더 높은 성공률을 보였다. 2,100개 RQ1 작업의 전체 작업 TCR은 99.3%로, 최종 출력 오류 8개와 정상 출력이지만 입력·도구 반환·호출 횟수 검사를 통과하지 못한 7개가 있었다.
어떻게 쓰나
백엔드 일반화(RQ2)에서는 W1과 Markdown 정리를 고정하고 GLM-5.3-Flash, Qwen-3.8-27B, DeepSeek-V4-flash 및 thinking on/off 조합 등 네 가지 백엔드 설정을 비교했다. 28개 백엔드-프레임워크 조합 모두에서 공격 효과가 확인됐고 ASR은 80.0~100.0%, 평균 96.4%, 전체 작업 TCR은 94.0%였다. 같은 조건의 P-ctx×E2는 ASR이 0~100.0%로 크게 흔들렸는데, 모델이 추가 지시를 따를지에 공격이 의존하기 때문이다. 도구 기능 일반화(RQ3)에서는 Markdown, CSV, ICS를 4개 프레임워크에 적용한 36개 조합 모두 공격 효과가 확인됐고, W3에서 Markdown과 ICS는 대상 파일을 100% 변조하고 최종 출력 TCR도 100%였다. CSV는 잘못된 인자 형성으로 일부 호출이 파싱 전에 멈춰 W3 파일 변조율과 최종 출력 TCR이 평균 91.8%로 낮아졌다. 결론부 기준으로 W3는 700/700 작업에서 대상 파일을 변조했고 698/700에서 핵심 본문 완료를 보였다.
전제와 한계
방어 평가는 파일 무결성, 정적 LLM 코드 리뷰, 런타임 감사 세 갈래로 이뤄졌다. TLSH 기반 파일 유사도 게이트는 임계값에 따라 정상 유지보수와 공격 차단이 상충했다. t=233에서는 정상 업데이트 40개가 모두 통과하고 W3만 차단됐으며, t=145에서는 세 공격 모두 차단되지만 정상 업데이트 40개 중 22개(55%)가 함께 차단됐고 기능 추가는 전부 막혔다. Cisco MCP Scanner와 GLM 조합은 읽을 수 있는 악성 업데이트를 평균 98.3% 거부했지만 PyArmor로 난독화한 ETUDE는 85.0% ASR과 84.3% TCR을 유지했다. SkillFortify는 보호된 세 공격을 모두 허용했고 NVIDIA SkillSpector는 세 공격을 모두 거부하는 대신 보호된 정상 업데이트 20개도 모두 거부했다. 런타임 감사는 업데이트 도구 30개에서 모두 경고를 냈고 정상 도구 30개에서는 경고가 없었으며 60개 정상 작업이 완료됐지만, 조건부 트리거나 실행 환경에 따라 악성 동작이 활성화되는 변형은 샌드박스에서 ALLOW로 통과한 뒤 실제 실행에서 공격 효과를 냈다. 장문 감사 12회에서 평균 지연은 112.8±13.7초, 모델 비용은 회당 0.00697달러로 정적 리뷰의 18.0초·0.00461달러 대비 지연 6.3배, 비용 1.5배였다.
개발자 관점의 결론은 도구 설치 승인을 영구 신뢰로 취급하면 안 된다는 것이다. MCP 서버나 플러그인을 운영하는 팀은 업데이트 수신 시 코드 해시와 의존성 해시를 고정하고, 승인된 구현과 실행되는 구현을 일치시키며, 업데이트마다 재심사와 변경 승인 절차를 두어야 한다. 또한 도구가 선언한 기능 밖의 파일 접근·네트워크 호출을 실행 시점에 차단하는 최소 권한 실행과 호스트·네트워크 중재가 필요하다. 논문은 Sigstore 게시자 바인딩과 SLSA 빌드 출처 같은 공급망 증명도 언급하지만, 해시와 증명은 어떤 코드가 실행되는가만 보증할 뿐 그 코드가 무엇을 하는가는 보증하지 않는다고 강조한다.
저자들이 밝힌 한계는 공격 실증이 실제 오픈소스 도구를 변조한 것이 아니라 연구자가 작성한 도구 구현과 면밀히 통제된 권한 설정으로 이뤄졌다는 점이다. 런타임 감사의 탐지 범위와 비용 수치도 이 연구에서 테스트한 에이전트 작업에 기반하며, 실제 도구의 포괄적 비용 평가는 향후 과제로 남겼다. 또한 ETUDE는 정상적인 도구 호출이 일어나야 발동하므로 모델이 해당 도구를 올바르게 호출하지 않으면 공격 효과가 나타나지 않는다는 실행 전제가 있다. 그럼에도 정상 작업 완료와 무단 동작이 공존할 수 있음을 보여줘, 승인 시점 검사나 모델 가시 영역 방어만으로는 도구 생애주기 전체를 안전하게 만들 수 없다는 주장을 뒷받침한다.