크로미움 148부터 `Math.tanh`로 OS 식별 가능해졌다

Chrome 148부터 V8이 std::tanh를 사용하면서 OS별 수학 라이브러리 차이로 Math.tanh(0.8)가 Linux, macOS, Windows에서 각각 다른 값을 반환합니다(예: Linux 0.6640367702678491, macOS 0.664036770267849, Windows 0.6640367702678489). 이는 피싱 탐지에 활용될 수 있으며, Chrome 147 이하에서는 V8이 자체 fdlibm을 사용해 동일한 값을 반환했습니다.

AI 요약

크로미움 148부터 Math.tanh 함수가 운영체제별 수학 라이브러리를 사용하면서, 동일한 입력값에 대해 OS별로 다른 비트 결과를 반환하게 되었다. 이는 브라우저 핑거프린팅의 새로운 신호로 활용될 수 있으며, 리눅스(glibc), macOS(libsystem_m), 윈도우(UCRT)는 약 25%의 입력값에서 1 ULP(Unit in the Last Place) 차이를 보인다. 크롬 147 이하에서는 V8이 자체 fdlibm 포트를 사용해 OS 정보가 누출되지 않았으나, 148부터 std::tanh로 변경되면서 이 취약점이 생겼다.

핵심 포인트

  • Math.tanh(0.8) 결과: 리눅스 0.6640367702678491, macOS 0.664036770267849, 윈도우 0.6640367702678489로 모두 다름
  • 크롬 148부터 V8 커밋 c1486295ae5로 인해 std::tanh 사용 시작
  • IEEE 754는 sin, cos, tanh의 정확한 반올림을 요구하지 않아 각 OS 라이브러리 차이 발생
  • 단일 tanh 호출로 OS 식별이 가능해 User-Agent 위조 탐지에 활용 가능

향후 전망

  • 브라우저 핑거프린팅 방어 기술은 수학 함수 결과를 OS별로 재구현하거나 가상화하는 방향으로 발전할 것
  • 크로미움 팀이 이 문제를 인지하고 패치할 가능성이 있으나, 현재로서는 명시적 해결책 없음
Share

이것도 읽어보세요

댓글

이 소식에 대한 의견을 자유롭게 남겨주세요.

댓글 (0)

불러오는 중...