구글 밋이 사용하고 있는 편법들
구글 밋을 사용해보다가 문제해결 및 도움말
이라는 버튼을 누를 경우 다음과 같은 UI가 표시되는 것을 확인해볼 수 있었습니다.
놀랍게도 여기에는 디바이스의 CPU 사용량이 표시되고 있었는데, 이를 보고 처음으로 든 생각은 이것이 보안에 위협이 되지 않는가 하는 생각이었습니다. 저게 표시된다면 웹에서 사용자의 동의 없이 자유롭게 CPU 사용량을 얻어갈 수 있다는 뜻이고, 이는 충분히 사이드 채널 어택 등에 이용될 수 있을 것 같아 보였습니다.
위와 같은 표준이 있었다면 분명히 한 번 논란이 되었을 법 하기에 어떤 표준일지 궁금했는데, 아무리 찾아봐도 그런 표준에 대해서는 보이지 않았고, navigator
에도 비슷한 속성은 보이지 않았습니다.
그래서 조금 더 찾아본 결과 크롬 익스텐션에서는 퍼미션이 있다면 chrome.system.cpu
라는 속성을 통해서 CPU 사용량을 획득할 수 있음을 확인했습니다. 이를 통해 저는 구글 밋이 일반적인 방법으로 CPU 사용량을 얻어오는 것은 아님을 확신했는데, 당연히도 쉽게 CPU 사용량을 가져올 수 있는 API가 있다면 굳이 저런 익스텐션용 API를 만들 필요도 없을 것이고 그걸 퍼미션까지 요구하게 설계하지는 않았을 것입니다.
그러고보니 묘하게 구글밋이 파이어폭스, 심지어는 같은 엔진을 사용하고 있는 크로미움 엣지나 웨일 브라우저에서까지도 비디오 가상 배경을 지원하지 않았던 것이 기억났습니다. 그 때 구글링을 했을 때에는 WASM SIMD 지원이 안돼서 그렇다는 말이 있었는데, 상식적으로 같은 크로미움에서까지 동작하지 않는 것이 이상하게 여겨졌습니다.
그래서 혹시나 해서 chrome.runtime.sendMessage
를 후킹했더니 다음과 같은 메시지가 지속적으로 전송되는 것을 확인할 수 있었습니다.
해당 확장 프로그램을 구글링해보니 Google Hangouts
라는 확장 프로그램이었으며, (현재는 이름이 구글 밋으로 바뀌었을 수도 있겠네요) 크롬에는 그 외에도 숨겨진 확장 프로그램이 훨씬 더 많았습니다. 더 찾아보니 WebRTC 지원이 제대로 되기 전에는 저 확장 프로그램을 가지고 화면공유를 했었나보네요.
이건 편법이라는 생각이 듭니다. 자사가 브라우저를 만든다는 이유만으로 자사 서비스를 일반적인 웹의 바운더리를 넘어서 개발한다니요.
저는 개인적으로 파이어폭스가 "사용자를 위한 브라우저"의 마지막 보루라고 생각하고 있습니다. 그러나 파이어폭스의 점유율이 점점 더 낮아지고 있고, 회사 사정은 더욱 어려워지고 있다는 것을 알고 있었기에, 오늘 알게 되었던 이 사실이 더욱 씁쓸하게 느껴졌던 것 같습니다.