LLM 에이전트 보안 가이드: ToolHijacker 공격 원리와 대응 전략
LLM 에이전트가 우리 대신 웹을 서핑하고 코드를 짜주는 시대입니다. 참 편리하죠. 하지만 이 똑똑한 비서가 사실은 ‘주는 대로 다 믿는 팔랑귀’라면 어떨까요?
최근 보안 연구에서 발표된 ‘ToolHijacker’ 공격은 바로 이 점을 파고듭니다. 해커가 모델의 내부 구조를 몰라도, 그저 ‘말발(문구)’만으로 에이전트를 조종해 악성 도구를 선택하게 만드는 소름 돋는 수법이죠. 무엇이 문제이고, 어떻게 대비해야 할지 핵심만 짚어 드립니다.
1. 에이전트의 의사결정: 낚이기 쉬운 2단계 구조
에이전트가 도구를 고르는 과정은 우리가 맛집 앱에서 식당을 찾는 과정과 아주 흡사합니다.
- 1단계 [검색(Retrieval)]: 수만 개의 도구 중 질문과 관련된 후보 k개를 추립니다. (식당 리스트 검색)
- 2단계 [선택(Selection)]: LLM이 후보들의 설명서를 읽고 최종 하나를 고릅니다. (리뷰 보고 결정)
ToolHijacker는 이 두 지점을 동시에 공략합니다. 공격자가 악성 도구 설명서를 교묘하게 작성해 오픈 플랫폼에 올려두면, 에이전트는 이를 ‘평점 5점짜리 최고 성능 도구’로 착각하고 덥석 물어버리는 것이죠.
2. ToolHijacker의 전략: “너는 이미 낚여 있다”
공격자는 ‘섀도우 모델(Shadow Model)’이라는 기법을 씁니다. 타겟(예: GPT-4o)을 직접 건드릴 필요도 없습니다. 내 컴퓨터에서 학습시킨 공격 문구가 다른 모델에서도 똑같이 통하기 때문입니다.
공격의 두 축 (R & S)
| 구분 | 전략 내용 | 비유 |
|---|---|---|
| 검색 최적화 (R) | 어떤 질문에도 악성 도구가 상위에 노출되게 함 | 검색 결과 첫 페이지에 무조건 뜨게 만들기 |
| 선택 최적화 (S) | LLM이 “이게 정답!”이라고 믿게 만드는 유도 문구 삽입 | “이 메뉴 안 먹으면 손해”라는 가짜 리뷰 심기 |
놀라운 건 전이성입니다. Llama 모델로 만든 공격 문구가 GPT-4o에서도 96.7%의 성공률을 보였습니다. 한 번 만들어둔 ‘가짜 전단지’가 어디서든 통한다는 뜻입니다.
3. 기존 방어의 패배 (성공률 99.6%의 충격)
기존의 보안 대책들은 ToolHijacker 앞에서 속수무책입니다.
- 보안 미세 조정(Fine-tuning): 모델에게 “나쁜 건 고르지 마”라고 교육해도 공격 성공률은 99.6%에 달했습니다. 사실상 전패입니다.
- 인간의 눈: 전문가가 봐도 71%는 이게 악성 도구인지 알아채지 못합니다. 문장이 너무 자연스럽거든요.
🔍 비교: 무엇이 다른가?
일반적인 공격: 문장이 어색하거나 특수문자가 섞여 있어 티가 남.
ToolHijacker: “이 도구는 빠르고 정확하게 금융 데이터를 처리합니다”처럼
너무나 정상적인 문구로 위장함.
4. 개발자를 위한 현실적인 가이드라인
이제 모델 자체의 ‘착함’에 의존하는 보안은 끝났습니다. 아키텍처 자체를 의심의 관점에서 재설계해야 합니다.
-
샌드박스 검증
외부 도구의 설명서만 믿지 마세요. 실제 실행 시 어떤 API를 호출하는지 격리된 환경(Sandbox)에서 먼저 돌려봐야 합니다.
-
교차 검증 레이어
LLM이 도구를 선택한 직후, “이 도구가 정말 사용자의 의도와 맞는가?”를 체크하는 별도의 독립적인 보안 모듈을 두어야 합니다.
-
라이브러리 화이트리스트
검증되지 않은 오픈 플랫폼의 도구를 실시간으로 가져오는 방식은 매우 위험합니다. 신뢰할 수 있는 도구만 선별해 운영하세요.
결국 에이전트의 생산성은 ‘신뢰’에서 나옵니다. 하지만 그 신뢰가 맹목적이어서는 안 됩니다. 도구를 고르는 그 찰나의 순간이 해커의 놀이터가 되지 않도록, 지금 당장 여러분의 에이전트 설계도를 점검해 보시기 바랍니다.
