Chrome 148부터 Math.tanh 계산값이 OS마다 달라져 브라우저 지문 추적에 악용 가능
- V8 커밋 c1486295ae5가 자체 fdlibm 기반 수학 구현을 std::tanh로 교체하면서 Math.tanh가 OS의 호스트 libm을 직접 호출하게 됨, 이 변경은 V8 14.8.57 즉 Chrome 148부터 반영됨
- Linux glibc, macOS libsystem_m, Windows UCRT(ucrtbase.dll) 세 라이브러리가 입력값의 약 4분의 1에서 최소 1 ULP 차이의 결과를 반환해 OS 식별용 시그니처로 쓰일 수 있음
- 예시로 Math.tanh(0.8)을 실행하면 Linux 0.6640367702678491, macOS 0.664036770267849, Windows 0.6640367702678489로 세 OS가 모두 다른 값을 반환함
- Chrome 147 이전 버전은 V8이 자체 fdlibm 포트로 계산해 모든 OS에서 동일한 비트를 반환했기 때문에 이 지문 추적 기법이 통하지 않음
- User-Agent로 macOS라 주장하면서 실제 반환값은 Linux 수학 결과라면 두 신호가 서로 모순되어 봇 탐지에 활용 가능함
Hacker News opinions
Chromium Math.tanh가 v148부터 결과값이 달라지는 걸 발견해서 파헤쳐봤는데 이게 OS 판별용 지문 추적 표면이 되더라
보고 자체는 흥미로운데 "You are not building..., you are..." 이런 식으로 딱 봐도 LLM이 쓴 문체라 몰입이 안 됨
왜 slop스럽다는 거야? 그냥 파워포인트에 불릿포인트로 써도 될 걸 이런 식으로 늘어놓은 게 문제인 거지
정확히 라운딩되는 초월함수(transcendental function)가 이제 거의 해결된 문제라던데, 이런 게 하나 더 push할 이유가 되네
glibc pow 예전 최악의 케이스처럼 correctly rounded libm도 worst-case 성능만 나쁘지 않으면 좋은 방향인데, JS 엔진들이 왜 fdlibm을 계속 안 쓰는지 의아함. tanh가 핫패스에 있다는 것 자체가 이상한 케이스 아님?
이 글 클로드가 썼다고 밝혀줘서 고마운데, 헤드라인 발견 빼고 나머지는 그냥 Claude가 쓴 거임
요즘 HN이 뭐만 하면 slop이라고 몰아붙이면서 LLM 사용 여부 파악하는 데 너무 집착하는 것 같음
제일 어이없는 건 상단에 있는 "이 글을 AI로 요약하기" 링크들인데, 클로드로 눌러보니 프롬프트 자체가 scrapfly가 어떻게 스크래핑 도와주는지까지 물어보게 광고 삽입돼 있음
이거 흥미롭긴 한데 대부분 유저는 이미 IP+User-Agent 조합만으로도 충분히 지문 추적 가능한 상태임
TOR나 VPN 쓰면서 UA도 조작하는 경우는 어떻게 되는 거야
OS 스푸핑하는 사람 몰라도 지문 추적에서 신경 안 쓰는 사람도 있으니 옵션은 필요하다고 봄
이건 OS를 스푸핑했을 때 잡아내는 거지, 실제 대부분 안티봇 솔루션은 OS 추론엔 관심 없고 그냥 semi-unique한 신호만 찾는 거라 브라우저 버전대 추정 쪽이 오히려 더 흥미로운 포인트인데 놓친 것 같음
이 글 쓴 회사(scrapfly)야말로 UA 스푸핑하는 놈들임, 봇을 사람인 것처럼 속여서 남의 웹사이트 데이터 팔아먹는 게 본업이라 윈도우나 맥 흉내내는 게 리눅스 VM이라고 밝히는 것보다 안티봇 뚫기 쉬워서 그런 거임
148 이상만 단정할 수 있는 게 아니라 v8/blink 기능 추가 시점 체크하면 크로미움 major 버전을 100% 확률로 특정할 수 있는 더 좋은 벡터도 있음, 그리고 LLM 쓴 건 글에 명시했으니 숨긴 거 아님
fingerprinting이 이렇게 광범위해진 것도 scrapfly 같은 회사들 때문임, 이 글도 결국 outrage로 고쳐지길 바라면서 자기네 스크래핑 사업에 유리하게 만들려는 수작 같음
fingerprinting은 사람 추적하는 데 필요한 거고 스크래퍼가 있든 없든 계속 쓰일 기술임
요즘 브라우저들 OS 탐지 막는 방어가 얼마나 되어있음? 구멍 엄청 많을 것 같은데
구멍 정말 많음
fingerprinting 자체를 감옥형까지 가는 불법으로 만들 순 없을까
기술 자체보다는 그걸 악용하는 애플리케이션을 처벌하는 쪽이 나을 것 같음, 감시 목적의 은밀한 fingerprinting은 국가기관 포함해서 불법화하는 게 합리적일 듯
Math.tanh를 오버라이드해서 랜덤 노이즈 섞어 리턴하면 되지 않나 하는 아이디어 나옴
노이즈 넣는 건 오히려 "지문 숨기는 중" 자체가 더 식별하기 쉬운 시그널이 되고, 안티봇 벤더들이 그 교체 패턴 자체를 탐지해서 fingerprinting에 써먹을 거임