무슨 일이 벌어진 건가요?
웹 브라우저를 쓸 때 우리는 보통 "이 사이트가 내 컴퓨터 안의 다른 프로그램까지 들여다보진 않겠지"라고 생각하잖아요. 그런데 LinkedIn이 바로 그 경계를 넘었다는 사실이 밝혀졌어요. LinkedIn 웹사이트가 사용자의 로컬 컴퓨터에서 어떤 앱이 실행 중인지 몰래 스캔하고 있었다는 건데요, 이건 단순한 쿠키 추적과는 차원이 다른 이야기예요.
이 문제를 처음 공개한 건 유럽의 프라이버시 연구 프로젝트인 BrowserGate인데요, 이들은 LinkedIn이 브라우저를 통해 사용자의 로컬 네트워크와 실행 중인 프로세스 정보를 수집하는 행위가 EU의 개인정보보호법(GDPR)을 위반한다고 주장하고 있어요.
기술적으로 어떻게 가능한 건가요?
이게 뭐냐면, 웹 브라우저에는 원래 로컬 시스템 정보에 접근할 수 있는 여러 가지 API와 기법이 존재해요. 대표적인 게 WebRTC라는 기술인데요, 이건 원래 화상통화나 P2P 연결을 위해 만들어진 기술이에요. 그런데 이 WebRTC를 활용하면 사용자의 로컬 IP 주소를 알아낼 수 있고, 더 나아가 로컬 네트워크에서 어떤 서비스가 열려 있는지도 탐색할 수 있거든요.
LinkedIn은 이런 브라우저 기능을 활용해서 사용자 컴퓨터의 특정 포트를 스캔한 것으로 알려져 있어요. 포트 스캔이라는 게 뭐냐면, 컴퓨터에서 돌아가는 각각의 프로그램은 고유한 "문 번호"(포트 번호)를 통해 네트워크 통신을 하는데요, 이 문 번호들을 하나하나 두드려보면서 "여기 누구 있어요?"하고 확인하는 거예요. 예를 들어 특정 포트가 열려 있으면 Spotify가 실행 중이라거나, 개발 서버가 돌아가고 있다거나 하는 정보를 유추할 수 있는 거죠.
이런 기법은 사실 예전부터 핑거프린팅(fingerprinting)이라고 불리는 사용자 추적 기술의 일부로 사용되어 왔어요. 쿠키를 지워도 "이 사람의 컴퓨터에는 이런 프로그램들이 깔려 있고, 이런 설정이 되어 있으니까 같은 사람이네"라고 식별할 수 있게 해주는 기술이에요.
왜 이게 심각한 문제인가요?
단순히 "내 컴퓨터를 들여다봤다"는 감정적인 문제를 넘어서, 이건 몇 가지 실질적인 위험이 있어요.
첫째, 보안 취약점 노출이에요. 어떤 소프트웨어가 실행 중인지 안다는 건, 공격자 입장에서 어떤 취약점을 노릴 수 있는지 알게 되는 거와 같아요. 마치 도둑이 집에 어떤 자물쇠가 달려 있는지 미리 파악하는 것과 비슷하죠.
둘째, 프라이버시 침해예요. 어떤 앱을 쓰고 있는지는 매우 민감한 개인 정보예요. 특정 VPN을 쓰고 있다거나, 특정 메신저를 쓰고 있다거나, 개발 환경이 어떤지 같은 정보가 고스란히 드러나는 거거든요.
셋째, 동의 없는 데이터 수집이라는 법적 문제예요. GDPR에서는 사용자의 기기에서 정보를 수집하려면 명시적인 동의를 받아야 해요. LinkedIn의 개인정보 처리방침 어디에도 "당신의 로컬 포트를 스캔하겠습니다"라고 적혀 있지 않았다는 게 핵심이에요.
업계에서는 이런 일이 처음이 아닙니다
사실 이런 로컬 포트 스캔은 LinkedIn만의 문제가 아니에요. 2020년에는 eBay이 사용자의 로컬 포트를 스캔해서 원격 데스크톱 소프트웨어 실행 여부를 확인한다는 것이 밝혀져 큰 논란이 됐었고요. 그 전에는 여러 금융 사이트들도 사기 탐지를 명목으로 비슷한 기법을 사용한 사례가 있었어요.
브라우저 벤더들도 이런 문제를 인식하고 대응하고 있긴 해요. Chrome은 몇 년 전부터 로컬호스트(localhost) 접근을 제한하는 정책을 강화해왔고, Firefox도 비슷한 조치를 취하고 있어요. 하지만 완벽하게 막기는 어려운 게, 일부 정상적인 웹 애플리케이션도 로컬 서비스와 통신해야 하는 경우가 있어서 무조건 차단하면 기능이 깨지는 사이트들이 생기거든요.
최근에는 Private Network Access(PNA)라는 새로운 웹 표준이 논의되고 있는데, 이건 외부 웹사이트가 로컬 네트워크에 접근하려면 사용자에게 명시적으로 허락을 구하도록 하는 거예요. HTTPS에서 카메라나 마이크 접근할 때 권한 요청 팝업이 뜨는 것처럼요.
한국 개발자에게 주는 시사점
프론트엔드나 웹 보안 쪽 일을 하시는 분들이라면 이 사건에서 몇 가지 체크해볼 게 있어요.
우선, 혹시 자신이 만드는 서비스에서도 비슷한 기법을 쓰고 있는지 확인해보세요. 사기 탐지(fraud detection) SDK나 핑거프린팅 라이브러리를 도입할 때, 그 내부에서 어떤 데이터를 수집하는지 꼼꼼히 살펴봐야 해요. 국내에서도 개인정보보호법이 강화되고 있어서, 이런 식의 수집이 문제가 될 수 있거든요.
또한, 로컬 개발 서버를 돌릴 때 보안도 신경 써야 해요. 많은 개발자분들이 localhost:3000이나 localhost:8080 같은 포트에서 개발 서버를 띄워놓고 작업하시잖아요. 악의적인 웹사이트가 이 포트를 스캔해서 개발 서버에 요청을 보낼 수도 있다는 점을 인지해두세요. CORS 설정을 느슨하게 해두면 실제로 데이터가 유출될 수 있어요.
브라우저 확장 프로그램 중에 uBlock Origin 같은 광고 차단기가 이런 로컬 포트 스캔을 어느 정도 막아주기도 하니까, 개발자라면 이런 도구를 적극 활용하는 것도 방법이에요.
마무리
한 줄 정리: LinkedIn이 사용자 동의 없이 브라우저를 통해 로컬 컴퓨터의 실행 중인 프로그램을 스캔하고 있었고, 이는 EU 개인정보보호법 위반 소지가 크다는 것이 밝혀졌어요.
여러분이 만드는 서비스에서 서드파티 SDK가 어떤 데이터를 수집하는지, 한 번쯤 들여다본 적 있으신가요? 혹시 "이 정도는 괜찮겠지"하고 넘어간 부분은 없었는지 한번 돌아보면 어떨까요?
🔗 출처: Hacker News
TTJ 코딩클래스 정규반
월급 외 수입,
코딩으로 만들 수 있습니다
17가지 수익 모델을 직접 실습하고, 1,300만원 상당의 자동화 도구와 소스코드를 받아가세요.
"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"
실제 수강생 후기- 비전공자도 6개월이면 첫 수익
- 20년 경력 개발자 직강
- 자동화 프로그램 + 소스코드 제공