TL;DR
- Chrome 152의 연결 허용 목록(Connection Allowlist)은 문서와 워커의 네트워크 통신을 지정된 URL 패턴으로 제한하는 기본 거부 방식의 방화벽임.
- 악성 스크립트나 생성형 AI가 만든 코드가 애플리케이션 수준 검사를 우회해 민감한 정보를 외부 서버로 전송할 위험을 다룸.
Connection-Allowlist응답 헤더에 표준URLPattern문법으로 허용 대상을 지정하며, 브라우저가 연결 전에 목적지를 검사함.- 리디렉션과 WebRTC 연결은 기본 차단되며, 보고 전용 모드에서는 연결을 막지 않고 Reporting API로 위반 사항을 전송함.
- 생성형 AI 코드, 서드파티 스크립트와 웹 게임, 민감한 애플리케이션 영역의 네트워크 경계 보호에 활용할 수 있으며 기존 콘텐츠 보안 정책(CSP)을 보완함.
네트워크 통신 보안의 과제
- 현대 웹 애플리케이션은 서드파티 스크립트와 생성형 AI가 동적으로 만든 코드를 통합하는 경우가 늘어 데이터 유출 위험이 커짐.
- 의존성을 관리하고 사이트 아키텍처를 보호하려면 페이지가 통신하는 엔드포인트를 명시적으로 제어해야 함. 악성 스크립트나 환각으로 생성된 AI 코드가 애플리케이션 수준 검사를 우회해 민감한 정보를 승인되지 않은 서버로 보낼 수 있음.
- 콘텐츠 보안 정책(CSP)은 페이지가 불러오고 실행하는 항목을 제어하는 강력한 도구지만, 페이지가 통신하는 대상을 제한하도록 설계된 정책은 아님.
- CSP는 요청을 유형별로 구분하므로 폭넓은 네트워크 경계만 필요한 경우에도 지나치게 세분화된 설정이 필요함. 또한 DNS 프리페치, 탐색, WebRTC 등 웹 플랫폼의 모든 통신 API를 빠짐없이 다루지 않음.
연결 허용 목록이란?
- 연결 허용 목록은 페이지에서 시작되는 모든 네트워크 연결을 브라우저가 통제하도록 하는 보안 기능임.
- Fetch 및 기타 웹 플랫폼 API로 시작되는 명시적 네트워크 요청을 직접 관리함.
Connection-AllowlistHTTP 응답 헤더에 허용할 URL 패턴을 지정하면 프레임워크 수준의 기본 거부 방화벽이 적용됨. 연결을 설정하기 전에 브라우저가 목적지를 허용 목록과 대조하며, 일치하는 항목이 없으면 네트워크 계층에서 차단함.
연결 허용 목록 사용 방법
- 정책은 표준화된
URLPattern문법으로 허용 엔드포인트를 정의하며, 각 창 또는 워커 컨텍스트에 별도로 적용됨.
기본 설정
- 응답 출처 토큰인
response-origin을 사용하면 응답이 제공된 출처를 특정 API 엔드포인트와 함께 허용 목록에 동적으로 추가할 수 있음. - 예시 설정은
https://api.example.com/*과 응답 출처를 허용 대상으로 지정함.
리디렉션 및 WebRTC 처리
- 기본적으로 연결 허용 목록은 모든 리디렉션과 WebRTC 연결을 차단함.
- 정책을 적용할 때 리디렉션을 발생시키는 요청은 명시적으로 허용하지 않는 한 차단됨.
redirects=allow와webrtc=allow로 각각 허용할 수 있음.
위반 사항 보고
- 서비스를 중단하지 않고 잠재적인 문제를 모니터링하려면 보고 전용 모드로 정책을 배포할 수 있음.
- 보고 전용 모드는 정책을 파싱하고 지정된 Reporting API 엔드포인트로 위반 보고서를 전송하지만 연결은 차단하지 않음.
- 선택한 엔드포인트 이름을 실제 URL에 연결하려면
Reporting-EndpointsHTTP 응답 헤더도 설정해야 함.
주요 활용 사례
- 연결 허용 목록은 보안 수준이 높거나 동적으로 동작하는 환경을 위한 기능임.
- 생성형 AI 보안: AI가 만든 UI나 개발 샌드박스처럼 웹 앱에서 생성되거나 신뢰할 수 없는 코드를 실행할 때, 코드가 외부 도메인으로 데이터를 유출하지 못하도록 제한함.
- 서드파티 감독: 서드파티 스크립트나 웹 게임을 포함할 때, 해당 요소가 침해된 경우에도 승인되지 않은 서버로 데이터를 보내지 못하게 보장함.
- 아키텍처 보호 장치: 애플리케이션의 민감한 영역에 엄격한 네트워크 경계를 적용해 승인된 백엔드하고만 통신하도록 보장함.
- 기존 콘텐츠 보안 정책(CSP) 기반 설정을 보완하는 점진적 강화 기능으로 사용할 수 있음.
연결 허용 목록 테스트
- 연결 허용 목록 기능은 Chrome 152부터 공식 제공되며, 서버 응답에 해당 헤더를 추가해 웹 애플리케이션 보호를 시작할 수 있음.
- 개발 중에는 로컬 개발 서버가
Connection-AllowlistHTTP 응답 헤더를 보내도록 설정해야 함. - Chrome DevTools의 Network 패널에서 차단된 요청을 확인하고, Issues 탭에서 헤더 파싱에 관한 상세 보고서를 확인할 수 있음.
추가 자료
- Connection Allowlists 명세
- WICG GitHub 저장소
- ChromeStatus: Connection Allowlists
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요