HTML5 ‘배터리 상태 API’, 사용자 정보 추적한다... 보안 침해 우려

HTML5 일부 기능이 개인정보 유출에 악용될 수 있다는 지적이 제기됐다. 파이어폭스, 오페라, 크롬이 이 기능을 지원하고 있어 주의가 요구된다.

최근 프랑스와 벨기에 보안 연구진이 HTML5 특징 중 하나인 ‘배터리 상태 API(battery status API)’ 기능을 이용해 사용자 정보를 추적할 수 있는 취약점이 발견됐다고 가디언이 5일 보도했다.

HTML5는 지난 2012년 월드와이드웹컨소시엄(W3C)에서 발표한 표준 웹 프로그래밍 언어로 PC 및 모바일 기기에서 가동되는 웹사이트를 만드는 데 쓰인다.

HTML5의 일부 기능으로 웹사이트가 사용자 정보에 쉽게 접근할 수 있다는 점이 드러났다. 파이어폭스, 오페라, 크롬 등이 이 기능을 지원하고 있어 주의가 요구된다. 사진은 아이폰의 스마트폰 잔량.
HTML5의 일부 기능으로 웹사이트가 사용자 정보에 쉽게 접근할 수 있다는 점이 드러났다. 파이어폭스, 오페라, 크롬 등이 이 기능을 지원하고 있어 주의가 요구된다. 사진은 아이폰의 스마트폰 잔량.

HTML5 ‘배터리 상태 API’ 는 웹사이트를 켜면 배터리 상태를 체크해 사이트 내에서 배터리 구동량이 많은 외부 기능을 끄게 만든다. 에너지 절약 모드나 고성능 모드 중 하나를 가동할 수 있게 했다. 충·방전 정도와 충·방전 시간 정보를 수집해 배터리가 닳는 데 걸리는 시간까지 측정한다. 현재 파이어폭스, 오페라, 크롬 브라우저에서 지원 중이다. W3C 측은 사용자가 배터리 수명을 측정할 것을 승인해야 웹사이트가 이 기능을 활용할 수 있다고 명시한다.

연구진은 이 주장에 의문을 제기했다. 이들은 웹사이트에서 배터리 상태 API 기능이 활성화되면 배터리가 완벽히 방전될 때까지 걸리는 시간을 초단위로 측정한 정보가 지나치게 정확히 수신한다는 데 주목했다.

이는 웹사이트가 사용자가 등록한 ID를 알아챌 수 있게끔 악용될 수 있다는 설명이다. 더군다나 이 값은 웹사이트가 사용자 배터리 상태를 그때그때 식별하기 위해 30초마다 갱신된다.

만약 사용자가 크롬 브라우저에서 VPN을 활용, 개인정보 보호 기능이 적용된 웹사이트를 방문한다. 웹사이트는 VPN을 끄거나 나중에 방문한 개인용 브라우저에 연결될 수 없게 돼 있다.

연구진의 주장은 다르다. 사용자는 통상 웹사이트에 신규 가입하거나 사이트를 재방문, 로그인할 때 브라우저 개인 모드나 저장된 쿠키, 기타 클라이언트측 ID 등을 활용한다.

짧은 시간 동안 웹사이트에 연속으로 방문하면 사이트의 배터리 상태 API기능이 활성화돼 배터리 잔량과 충·방전 시간에 관한 정보를 수집한다. 이 정보와 웹사이트가 자체적으로 저장한 정보를 바탕으로 결과적으로 웹사이트에서 사용자 ID나 쿠키까지 파악해 웹 검색 시간이나 방문한 기록을 알 수 있다는 설명이다. 더 심각한 문제는 연구진이 일부 플랫폼에서 충분한 쿼리와 함께 기기별 최대 배터리 용량을 알아내는 게 가능하다는 점을 발견했다는 것이다.

이는 각 기기를 비교할 반영구적 메트릭(metric)을 만드는 데 악용될 수 있다. 기기별로 배터리 용량이 정해져 있기 때문에 결국 사용자가 어떤 기기를 활용하고 있는지도 알 수 있다.

연구진은 “배터리 잔량 API는 결국 배터리 정보에 접근, 브라우저가 사용자를 식별하기까지 사용자로부터 어떤 허가도 요구받지 않는 것”이라며 “이는 사용자 동의 없이 이 기능을 사용하는 웹사이트나 제 3자가 사용자를 추적할 수 있다는 것을 뜻한다”고 밝혔다.

김주연기자 pillar@etnews.com