해결책
Ars Technica는 2022년 1월에 구글이 10년 넘게 통해 온 한 부류의 공격에 대응하고 있다고 보도했다. 그 공격은 브라우저를 발판으로 삼아 방문자의 네트워크에 있는 라우터와 다른 기기로 침투하는 것이었다. 브라우저는 기본적으로 로컬 네트워크 내부의 거의 모든 리소스에 연결할 수 있으며, 이로 인해 사이트 간 요청 위조 공격이 생겨났다. 2014년의 한 사건에서는 해커들이 30만 대가 넘는 라우터의 DNS 설정을 변경했고, 2016년에는 DNSChanger 악성코드가 같은 경로를 이용해 Netgear, D-Link, Comtrend, Pirelli 라우터를 공격했다.
해결책은 프라이빗 네트워크 액세스(private network access)라는 사양이다. 공개 사이트가 프라이빗 네트워크의 엔드포인트를 원할 때, 크롬은 새로운 헤더 Access-Control-Request-Private-Network: true를 붙인 프리플라이트 요청을 보내며, 기기가 Access-Control-Allow-Private-Network: true로 응답해야만 요청이 통과된다. 이는 CORS 프로토콜을 기반으로 한다.
배포는 단계적으로 이루어진다. 크롬 98부터 브라우저는 프리플라이트를 보내지만 실패하면 DevTools 문제 패널에 경고만 기록하고 요청은 여전히 이루어진다. 크롬 101 무렵, 시험에서 큰 문제가 드러나지 않으면 권한이 의무화된다. 구글 엔지니어들은 그때에는 실패한 프리플라이트가 모두 실패한 가져오기(fetch)로 이어질 것이며, 기록된 경고를 통해 사이트 소유자가 미리 자신의 사이트를 시험해 볼 수 있다고 밝혔다.
이룬 것
CORS를 재사용한다. 즉 공개 사이트가 프리플라이트를 보내고 내부 기기가 요청이 통과되기 전에 명시적으로 권한을 부여하도록 한다.
브라우저는 많은 서비스에 접근해야 하므로 기본적으로 로컬 네트워크 내부의 무엇이든 접근할 수 있고, 공격자들은 이를 악용한다.
라우터와 프린터는 흔히 잠겨 있으므로 공격자들은 대신 브라우저를 통해 접근한다.
CORS를 재사용한다는 것은 익숙한 메커니즘과 작은 사양 변경을 의미한다.
로그 전용 경고를 통해 구글은 시행 전에 무엇이 깨질지 볼 수 있다.
오랫동안 열려 있던 구멍을 단계적으로, 먼저 로그 전용으로 닫아서 규칙을 의무화하기 전에 무엇이 깨질지 볼 수 있게 한다.
그 후
당시 계획은 크롬 98에서 경고를, 크롬 101 무렵에 의무적 권한을 두는 것이었으며, 결과가 인터넷의 주요 부분이 깨질 것임을 보여주지 않는 경우에 한했다. Ars는 그 후에 무슨 일이 있었는지 보도하지 않았다.
근거 확인하기
출처
- New Chrome security measure aims to curtail an entire class of Web attack Ars Technica · arstechnica.com ·