
Claude Code, 외부 사이트를 조작하는 내장 브라우저의 안전 설계 읽기
요약
Claude Code의 최신 업데이트를 통해 외부 사이트를 조작할 수 있는 탭형 브라우저 기능이 추가되었습니다. Anthropic은 프롬프트 인젝션 위험을 방지하기 위해 모든 권한 모드에서 쓰기 동작을 감시하는 안전 분류기(Safety classifier)와 도메인 허용 목록 시스템을 도입했습니다.
핵심 포인트
- Claude Code에 외부 웹사이트 조작이 가능한 탭형 브라우저 탑재
- 클릭, 입력 등 '쓰기 동작' 시 안전 분류기가 위험도를 판정
- Bypass 모드에서도 위험 동작 시 사용자 확인 프롬프트 강제 발생
- 조직 관리자가 외부 페이지 도구 사용을 완전히 차단할 수 있는 설정 제공
코딩 에이전트에게 브라우저를 갖게 한다는 발상 자체는 새롭지 않다. 새로운 것은 "어디까지 신뢰할 것인가"의 경계선이다. 7월 610일의 Week 28 릴리스(v2.1.202v2.1.206)에서, Claude Code의 데스크톱 앱에 외부 사이트를 열 수 있는 탭형 브라우저가 탑재되었다. 문서도 Issue 트래커도, Claude가 스스로 열어서 읽고, 클릭하고, 폼(form)에 입력한다. 여기서 가장 먼저 신경 쓰이는 것은 기능이 아니라, 임의의 웹 페이지를 조작하는 에이전트가 프롬프트 인젝션(Prompt Injection)의 좋은 표적이 된다는 점일 것이다. Anthropic이 그 위험을 어떻게 다루었는지 공식 문서를 통해 풀어본다.
전제 조건 하나. Claude Code의 데스크톱에는 이전부터 "Browser pane(브라우저 페인)"이 있었다. 이것은 로컬 개발 서버를 Claude가 스스로 실행하고, 스크린샷을 찍고, DOM을 들여다보고, 요소를 클릭하고, 폼을 채워 자신의 변경 사항을 검증하기 위한 창이다. 프론트엔드뿐만 아니라 백엔드 API 엔드포인트 호출이나 로그 확인에도 사용한다. 즉, "자신이 지금 쓰고 있는 앱"을 만지는 도구였다.
Week 28에서 바뀐 것은 이 페인이 탭형 브라우저가 되어, localhost 외부, 즉 외부의 임의 사이트를 열 수 있게 되었다는 점이다. 여는 단축키는 정해져 있다.
macOS: Cmd + Shift + B (Browser 페인 개폐)
Windows: Ctrl + Shift + B
macOS: Cmd + Shift + S (페이지 내 요소 선택)
Views 메뉴를 통해서도 열 수 있다. 채팅 내의 외부 링크를 클릭하면 "Open in app(페인에서 열기)" 또는 "Default browser(기본 브라우저)"를 선택하는 선택창이 나온다. Google OAuth와 같은 팝업형 로그인도 페인 내에서 통과된다. 사소하지만, 이곳에서 로그인이 가능하다는 사실이 후술할 안전 설계와 직결된다.
외부 페이지에 대해 Claude는 개발 서버 검증과 동일한 도구(클릭, 입력, 스크롤 등)를 사용한다. 다만 공식 문서는 외부 페이지에는 두 가지 추가 체크가 적용된다고 명시하고 있다.
Safety classifiers review Claude's write actions on external pages, such as clicking and typing, in every permission mode.
포인트는 "write actions(쓰기 동작)"에 한해서만 안전 분류기(classifier, 조작의 위험도를 판정하는 경량 모델)가 작동한다는 것이다. 게다가 어떤 퍼미션 모드(permission mode)에서도 동작한다. 분류기가 플래그를 세우면 모드와 관계없이 인간에게 확인을 요청하는 프롬프트가 나타난다. 이는 Auto mode가 사용하고 있는 것과 동일한 분류기다. 뒤집어 말하면, 단순히 페이지를 읽기만 한다면 막을 수 없지만, 폼 전송이나 버튼 클릭과 같이 부작용(side effect)이 있는 행위는 항상 감시 하에 놓이게 되는 설계다.
또 하나는 도메인 허용 목록(allowlist) 체크다. Auto와 Bypass permissions 이외의 모드에서는 Claude가 새로운 사이트로 전환하기 전에 허용 목록을 대조한다. 조직 관리자는 browserExternalPageTools라는 관리형 설정을 "disabled"로 설정하면 외부 페이지에서 Claude의 도구를 완전히 무효화할 수 있다. 이 경우 사용자는 외부 사이트로 이동할 수 있지만, Claude는 읽을 수도 조작할 수도 없다.
// 관리형 설정 (조직에서 외부 페이지 조작을 중단)
{ "browserExternalPageTools": "disabled" }
--dangerously-skip-permissions에 해당하는 Bypass permissions 모드로 설정하더라도, 외부 사이트상의 조작에 대해서는 분류기가 강제로 프롬프트를 띄운다는 단서 조항도 들어있다. 에이전트의 권한을 완전히 개방하더라도, 바깥 세상에 손을 대는 순간만큼은 별도로 취급한다. 이러한 비대칭성이 이번 업데이트의 가장 핵심이라고 나는 보고 있다.
실무상 또 하나 빠지기 쉬운 점은 이 Browser 페인과 "Claude in Chrome 확장 프로그램"의 구분 사용이다. 문서는 이를 명확히 구분하고 있다.
The Browser pane uses a clean browser profile, separate from your personal browser, with none of your saved logins or history.
Browser 페인은 **완전히 새로운 프로파일 (clean profile)**로 작동한다. 사용자의 저장된 로그인 정보나 방문 기록을 가져오지 않는다. 따라서 앱의 빌드 및 검증, 혹은 신원 확인이 필요 없는 사이트 브라우징에 적합하다. 반대로 "사용자 본인으로서 로그인된 세션을 조작하기를 원할" 때는, 브라우저의 로그인 상태를 공유하는 Claude in Chrome 확장 프로그램(Week 27에 모든 유료 플랜에 GA)을 사용하라는 식으로 역할 분담이 되어 있다. 게다가 Browser 페인에서 승인된 사이트라 할지라도, Claude는 인간의 입력 없이 구매, 계정 생성, 또는 CAPTCHA 돌파를 수행하지 않는다.
혼동을 방지하기 위해, Claude가 브라우저에 접근하는 4가지 경로를 정리해 둔다.
| 경로 | 접근 대상 | 로그인 상태 | 주요 용도 |
|---|---|---|---|
| Browser 페인 (개발 프리뷰) | 로컬 개발 서버 | 개발용으로 영속화(Persistence) 선택 가능 | 자신의 변경 사항 자동 검증 |
| ... |
세션을 영속화할지(재시작 후에도 Cookie나 로컬 스토리지(Local Storage)를 유지할지)는 사용자가 직접 선택할 수 있다. 개발 서버 프리뷰에서는 드롭다운의 "Persist sessions"를 통해 활성화할 수 있으며, 저장된 데이터 삭제나 브라우저 자체의 비활성화는 Settings → Claude Code의 토글(Toggle)에서 수행한다. 조직 단위에서는 Claude in Chrome 확장 프로그램용으로 설정된 사이트 허용/차단 리스트를 Browser 페인이 그대로 존중한다.
솔직히 말하면, 기능 자체는 Playwright MCP나 Chrome DevTools MCP를 통해 각자 해왔던 작업들과 겹친다. 차이점은 브라우징의 안전 모델 (Safety Model)이 에이전트(Agent) 측에 통합되어, "읽기는 자유롭되 부작용(Side-effect)이 있는 조작은 분류기(Classifier)와 허용 리스트(Allowlist)로 상시 방어한다"는 방침이 기본값으로 적용된다는 점에 있다. MCP를 통해 직접 헤드리스 브라우저(Headless Browser)를 구축하면, 이러한 모니터링 레이어(Monitoring Layer)는 스스로 준비해야 한다. 에이전트에게 외부 웹(Web)을 조작하게 하는 구성을 검토 중이라면, 이번에 제시된 구분(쓰기 조작만 모든 모드에서 감시하고, 사칭은 별도 프로파일로 격리하는 방식)을 자체 권한 설계(Permission Design)를 재검토하기 위한 초안으로 그대로 활용할 수 있다.
한 가지 세부적인 주의 사항이 있다. 페인(Pane) 주변의 UI는 Claude Desktop v1.2581.0 이후 버전이 필요하며, Claude Code 본체의 v2.1.x 계열과는 버전 번호 체계가 다르다. 데스크톱 버전이 오래된 경우 기능이 나타나지 않을 수 있으므로, 작동하지 않을 때는 앱 측의 업데이트를 먼저 확인하는 것이 좋다.
1차 정보는 공식 문서에 모두 갖춰져 있다. 외부 사이트 조작에 대한 자세한 내용은 아래 내용을 기점으로 삼으면 된다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기