브라우저 에이전트 보안의 기준은 문구가 아니라 웹 요소의 의미
들어가며
브라우저 에이전트는 사용자를 대신해 검색하고, 양식을 작성하고, 여러 웹페이지를 오가며 작업을 수행한다. 하지만 현재의 많은 시스템은 웹페이지를 스크린샷이나 평탄화된 텍스트로 바꿔 대규모 언어 모델에 제공한 뒤, 모델이 클릭과 입력을 결정하게 한다. 이 과정에서 페이지에 포함된 제3자의 문구가 실제 작업 지시와 같은 위치에 놓인다. 악성 문장이 모델을 설득하면, 사용자의 권한을 이용해 사용자가 요청하지 않은 행동을 실행할 수 있다.
《What It Is, Not What It Says》 논문은 이 문제를 해결하기 위한 시스템으로 Intact를 제안한다. 핵심은 요소가 무엇을 할 수 있는지를 화면에 적힌 문장이 아니라 요소의 종류와 출처로 판단하는 것이다. 브라우저가 원래 알고 있는 의미 정보를 모델 입력과 실행 제어에 반영해, 안전을 모델의 판단에만 맡기지 않는다.
핵심 내용
- GenTree로 출처와 능력을 기록한다. Intact는 수정하지 않은 브라우저 위에서 동작하며, 웹 요소의 출처, 구조적 관계, 가능한 상호작용을 담은 GenTree를 구축한다. 버튼이나 입력창은 단순한 텍스트가 아니라 고유한 능력과 경계를 가진 객체로 처리된다.
- 모델에 요소를 하나씩 제공한다. Intact는 GenTree의 페이지 정보를 한꺼번에 전달하지 않고 요소 단위로 LLM에 보낸다. 한 요소에 포함된 유도 문구가 다른 요소를 조작하도록 모델을 끌어가는 가능성을 줄이기 위한 설계다. 모델은 계속 판단하지만, 판단의 문맥은 의도적으로 분리된다.
- 실행 권한을 모델 밖에서 통제한다. 실행 하네스는 모델이 제안한 단계가 대상 요소의 실제 능력에 부합하는지 확인한다. 제3자 콘텐츠에 대한 행동이라면 사용자에게 확인을 요청한다. 모델이 악성 지시를 따르더라도 요소의 권한을 임의로 확대할 수 없도록 한 것이다.
- 실험에서 공격 감소를 확인했다. 1270개의 실제 웹페이지에서 GenTree가 제3자에 귀속한 요소 수는 브라우저의 기존 귀속 결과보다 2.3배 많았다. 기존 브라우저 방식은 이 요소의 58.7%를 제1자에 잘못 귀속했다. 공격이 삽입된 1091개 페이지에서는 기존 플래너의 공격 진입률이 73.1%였지만 Intact에서는 12.8%였다. Intact에 들어온 공격도 최종적으로는 사용자 동의 요청을 넘을 수 없었다. 격리로 기능이 영향을 받은 작업은 3.7%였으며, 병렬 스케줄링을 사용하면 추가 지연의 상당 부분을 줄일 가능성이 제시됐다.
의미와 영향
Intact의 방향은 프롬프트 인젝션을 모델이 완벽하게 탐지하도록 만드는 데서, 모델이 실제로 실행할 수 있는 범위를 제한하는 데로 보안의 초점을 옮긴다. 공격 탐지는 여전히 필요하지만, 모델이 한 번 잘못 판단해도 곧바로 실제 권한 행사로 이어지지 않게 만드는 별도의 경계가 중요하다.
스크린샷과 일반 텍스트는 모델이 처리하기 쉽지만, 요소의 출처와 상호작용 능력 같은 보안 정보를 잃게 만든다. 앞으로의 브라우저 에이전트는 요소 유형, 제공 주체, 권한 경계를 구조화해 모델에 전달하고, 최종 실행 검사는 모델 밖에서 수행해야 할 수 있다. Intact가 사용자 확인을 없애거나 모든 공격을 차단하는 것은 아니다. 대신 모델을 최종 권한자가 아니라 해석자로 두고, 브라우저와 실행 계층이 권한의 경계를 지키도록 하는 현실적인 설계 방향을 보여준다.
댓글
로그인 상태 확인 중…
댓글 불러오는 중…