웹 에이전트가 적응형 프롬프트 주입을 견디도록 세계 모델 안에서 함께 진화시킨다
AdvSim2Real : Training Web Agents Against Adaptive Prompt Injection in a Web World Model
무엇인가
웹 에이전트는 제3자가 작성한 페이지를 읽고 행동하면서 사용자 요청을 완수한다. 그래서 페이지 본문에 심긴 지시 하나가 에이전트를 사용자의 목표에서 다른 곳으로 돌려세울 수 있다. 이것이 간접 프롬프트 주입이고, 웹 에이전트 보안 벤치마크에서는 이런 공격이 최대 86%의 사례에서 부분적으로 성공한다. 문제는 에이전트가 페이지를 무시하는 방식으로 방어할 수 없다는 점이다. 페이지에는 과제가 요구하는 값과 컨트롤이 함께 들어 있기 때문이다. 논문이 요구하는 것은 과제 보존 견고성(task-preserving robustness), 즉 과제가 여전히 수행 가능한 한 경쟁하는 페이지 지시가 있어도 승인된 목표를 끝까지 완수하는 능력이다.
어떻게 동작하나
기존 방어는 훈련 전에 미리 만들어 둔 고정된 주입 예시로 에이전트를 미세조정한다. 구분자로 지시와 데이터를 분리하는 StruQ, 정당한 지시 쪽 응답을 선호하도록 학습하는 SecAlign과 Meta SecAlign이 대표적이다. 주입이 변하지 않으니 방어자는 평가 시점에야 적응형 공격자를 처음 만나고, 훈련된 모델에 맞춰 최적화한 공격자는 이 방어들을 우회한다. 공격자까지 학습시키는 최근 연구들(RETA, ARLAS, DMAST, CoER, WARD 등)도 과제 집합은 고정해 둔다. 에이전트가 한 번 풀어낸 과제는 더 이상 가르쳐 줄 것이 없어지고, 새 과제를 넣으려면 그것을 실행할 수 있는 사이트가 따로 필요하다.
무엇과 다른가
AdvSim2Real은 이 두 한계를 웹 월드 모델로 없앤다. 동결된 WebWorld-14B가 어떤 목표·페이지·행동에 대해서도 다음 페이지를 예측하고, 공격자가 요청한 변경까지 렌더링한다. 그 안에서 세 정책을 서로 경쟁시킨다. 커리큘럼 C는 목표와 초기 페이지로 과제를 제안하고, 공격자 A는 궤적당 하나의 주입을 요청하며, 실행자 E는 과제를 수행한다. 판정은 고정된 심판(Qwen3.8-27B)이 내린다. 1단계에서는 커리큘럼과 실행자가 교대로 갱신된다. 커리큘럼 보상은 R-Zero의 불확실성 보상 q(p)=1-2|p-1/2|를 쓴다. 실행자가 절반쯤 풀어내는 과제에서 최대가 되고, 전부 풀거나 전부 실패하는 과제에서는 0이 된다. 여기에 파싱 불가·미해결 제안을 걸러내는 유효성 게이트와 어휘 유사도 클러스터 기반 반복 페널티가 붙는다. 실행자 쪽은 그룹 정규화 어드밴티지에 f(p)=max{0.1, q(p)}를 곱해 역량 경계 근처의 과제를 더 세게 학습시킨다. 2단계에서는 커리큘럼을 동결하고 공격자와 실행자를 교대로 갱신한다. 공격자는 성공 뒤집기(success flip)에만 보상을 받는다. 심판이 통과시킨 깨끗한 실행을 주입 시점까지 재생하고, 주입을 렌더링한 뒤 이어지는 실행이 실패로 뒤집힐 때만 크레딧을 얻는다. 렌더링 여부는 페이지에 나타나야 할 마커로 확인한다. 실행자는 새 공격, 이전 라운드의 공격, 깨끗한 과제를 섞어 훈련하며 좋은 판정에 +1, 나쁜 판정에 -1, 선언된 목표 행동을 피한 나쁜 판정에는 0을 준다. 각 역할은 별도의 저랭크 어댑터로 훈련하고, 우도비나 클리핑 없이 어댑터를 끈 베이스 모델 쪽으로 가는 페널티를 건다.
어떻게 쓰나
실험 환경은 접근성 트리 페이지와 최대 12개 행동으로 구성된다. 벤치마크는 10개 템플릿에서 나온 150개 폼 작성 과제로, 조건부 정책·파생 값·결합 선택·관계 조인·순서 복구의 다섯 스킬 계층에 걸쳐 있다. 모든 과제에 보호 필드 2개와 절대 눌러서는 안 되는 금지 컨트롤 2개(Save draft, Reset all)가 지정돼 있고, 실제 브라우저에서는 제출된 폼을 결정적 체커로 검사한다. 공격자는 궤적당 주입 하나를 넣을 수 있고, 평가 중 동결된 공격자 호출은 최대 11회, 출력은 256토큰으로 제한된다. 훈련에 참여한 Adv v1~v3와 훈련에 전혀 참여하지 않은 프런티어 모델 Kimi-K3를 함께 평가한다.
전제와 한계
결과는 다음과 같다. 깨끗한 완료율은 74.89%에서 81.33%로, 학습된 공격자 3종에 대한 평균 완료율은 48.07%에서 57.48%로 올랐다. 주입을 한 번도 보지 않은 1단계만으로도 깨끗한 완료율이 79.33%까지 오르고 공격 평균이 54.74%로 상승했다. 훈련에 참여하지 않은 Kimi-K3에 대해서는 베이스 23.00%에서 30.72%로 7.72포인트, 상대적으로 33.6% 향상됐다. 실제 Chromium 브라우저에서 엄격 성공률은 25.56%에서 44.44%로, 최종 필드 값 정확도는 52.50%에서 73.24%로 올랐다. 월드 모델에서 측정한 1단계 이득이 실행 환경으로 전이된다는 증거다. 4B 체크포인트는 공격 하에서 호스팅 9B와 사실상 동등하고(57.40% 대 56.96%) 깨끗한 조건에서는 앞선다(81.33% 대 78.22%). 1단계를 제거한 절제 실험에서는 최종 깨끗한 완료율이 76.67%로 4.67포인트 낮아지지만 공격 평균은 57.04%로 0.44포인트 차이에 그쳤다. 1단계가 견고성이 아니라 역량을 사 온다는 뜻이다. 스킬 계층별로는 조건부 정책 +14.3포인트, 결합 선택 +12.8포인트로 이득이 크고 관계 조인은 +1.6포인트에 그쳤으며, 결합 선택이 40.6%로 가장 어려운 계층으로 남았다. 최종 체크포인트에도 깨끗한 조건과 공격 조건 사이에 23.85포인트 격차가 남아 있다.
웹 에이전트를 만드는 개발자에게 이 논문이 주는 실무적 신호는 세 가지다. 첫째, 페이지 콘텐츠는 신뢰할 수 없는 입력이지만 동시에 과제 수행에 반드시 필요한 입력이라는 구조는 사라지지 않는다. 둘째, 방어 훈련을 고정된 주입 세트로 돌리면 적응형 공격자에게 그대로 뚫린다. 셋째, 월드 모델 같은 시뮬레이터 안에서 훈련한 역량이 실제 브라우저로 전이된다는 실측 근거가 있다. 다만 견고성 수치는 월드 모델 내부의 심판 판정이라는 점을 감안해야 한다. 도입을 검토한다면 훈련에 참여하지 않은 외부 공격자로 평가하고, 모델 판정이 아니라 실행 가능한 체커로 최종 검증하는 절차를 함께 갖추는 편이 안전하다.
저자들이 밝힌 한계는 분명하다. 월드 모델이 실행자가 입력하지 않은 값을 화면에 표시할 수 있고 심판이 잘못된 계산을 수용할 수 있어서, 판정된 견고성 이득이 곧 실행 가능한 과제 완료의 이득은 아니다. 브라우저 검증은 역량 체크포인트에만 적용됐고 2단계 견고성은 월드 모델 안에서만 측정됐다. 훈련 공격자는 초기 페이지에서 제안하지만 평가 공격자는 궤적에 반응하므로, 공격자 체크포인트를 맞춘다는 것은 공격자를 맞추는 것이지 공격 자체를 맞추는 것이 아니다. 1단계 제거 절제는 실행자와 커리큘럼 초기화를 동시에 없애고 컴퓨트도 맞추지 않아 커리큘럼 단독 효과를 분리하지 못한다. 컴퓨트는 1단계 한 반복이 96GB RTX 6000 Pro 두 대로 20시간 46분, 41.54 GPU-시간이었고 토큰 수와 API 비용은 측정하지 않았다. 저자들은 다음 단계로 블라인드 인간 감사, 실행 가능한 과제 체커, 컴퓨트를 맞춘 구성요소 대조 실험이 필요하다고 적었다.