·읽는 데 6분

QR 코드 리다이렉트 하이재킹: 보이지 않는 중개자

QR이 잘 작동할 때 중개자는 보이지 않습니다. 깨졌을 땐 이미 늦습니다. 리다이렉트 모델을 이해하는 것이 이를 피하는 첫걸음입니다.


당신이 지금까지 스캔한 모든 동적 QR 코드에는, 당신이 고른 적 없는 제3자가 끼어 있었습니다. 휴대폰 카메라와 목적지 사이트 사이에서 QR 제공업체의 리다이렉트 서버가 요청을 조용히 전달했습니다. 대부분의 사용자는 눈치채지 못합니다. 그것이 바로 핵심입니다.

이 글은 리다이렉트 하이재킹이 실제로 어떻게 보이는지, 중개자가 실제로 무엇을 하는지, 무엇이 걸려 있는지를 설명합니다.

리다이렉트 시퀀스

https://shop.example.com용 정적 QR을 스캔할 때:

  1. 카메라가 QR을 읽음
  2. OS가 이를 URL로 인식
  3. 브라우저가 https://shop.example.com을 엶

3단계. 제3자 없음.

같은 목적지의 동적 QR을 스캔할 때:

  1. 카메라가 QR을 읽음 (https://qr-provider.com/r/x7n2 같은 것을 인코딩)
  2. OS가 그 URL을 엶
  3. qr-provider.com이 요청을 받고, 로그하고, DB에서 x7n2을 조회
  4. qr-provider.com이 https://shop.example.com으로 301 또는 302 리다이렉트를 반환
  5. 브라우저가 리다이렉트를 따라 실제 목적지에 도착

5단계. 3단계에 추가 당사자 — 당신이 동의한 적도, 지불한 적도, 본 적도 없는 자.

중개자가 얻는 것

모든 스캔마다 서버 로그 항목이 생성됩니다:

  • 스캔 타임스탬프
  • 스캐너의 IP 주소
  • user-agent 문자열(기기, OS, 브라우저)
  • Referrer 헤더(스캐너가 어디서 왔는지, 해당 시)
  • Accept-Language 헤더(선호 언어)

여기서 제공업체는 대략적 위치, 기기 종류, OS 버전을 유추하고, 집계적으론 시간에 따른 스캔 패턴을 얻습니다. 고객에겐 "분석"으로 팔립니다. 동의하지 않은 당신의 코드를 스캔하는 사람들에 대한 감시이기도 합니다.

중개자가 할 수 있는 일

목적지 변경

리다이렉트 목적지는 제공업체 DB에 있습니다. QR 소유자는 보통 대시보드로 편집할 수 있습니다. 기능으로 팔리고, 일부 용도엔 실제로 그렇습니다. 그러나 QR이 더 이상 보이는 그대로가 아니라는 뜻이기도 합니다. 물리적 인쇄물은 "스캔해서 우리 사이트로"라고 말하지만, 실제 동작은 오늘 제공업체 DB가 말하는 대로입니다.

리다이렉트 비활성화

소유자의 구독이 만료되거나, 계정이 닫히거나, 이용약관을 위반하면 리다이렉트가 제거될 수 있습니다. 인쇄된 모든 QR 사본이 즉시 작동을 멈춥니다. 스캐너는 일반 오류 페이지나 404를 보게 됩니다.

중간 페이지 삽입

일부 제공업체는 최종 리다이렉트 전에 자사 브랜드의 중간 페이지를 끼워 넣습니다 — 광고를 띄우고, 동의를 요구하고, 이메일을 모읍니다. QR 소유자는 보통 이에 동의한 적이 없습니다. 제공업체가 더 공격적으로 수익화할수록 나중에 추가됩니다.

스캔 데이터 판매 또는 유출

스캔 로그는 가치 있습니다. 분석 브로커에 팔리고, 광고 타게팅 모델 훈련에 쓰였으며, 문서화된 여러 건의 침해 사고에서 제공업체가 뚫렸을 때 유출되었습니다. 당신의 고객이 메뉴를 스캔했고, 이제 그들의 기기 지문이 유출 데이터셋에 살고 있습니다.

사용자가 절대 눈치채지 못하는 이유

현대 브라우저는 리다이렉트를 자동으로 따라갑니다. 개발자 도구를 열어 두지 않으면 중간 홉은 보이지 않습니다. 리다이렉트는 빠르기 때문에(작동할 때) 스캔이 즉각적으로 느껴집니다. 사용자 관점에서는 동적 QR이 정적 QR과 똑같이 동작합니다.

리다이렉트 서버가 실패할 때까지는. 그때 경험이 날카롭게 갈리지만 — 그 시점에 QR은 이미 수천 개의 표면에 인쇄되어 있습니다.

보안 함의

리다이렉트 서버는 그에 의존하는 모든 QR의 단일 장애점입니다. 고려할 만한 공격 표면 세 가지:

  • 계정 탈취. 공격자가 소유자의 제공업체 계정에 접근하면 모든 QR을 피싱 페이지로 리다이렉트할 수 있습니다. 고객이 식당 메뉴를 기대하고 물리 코드를 스캔했는데, 자격증명을 훔치는 가짜 로그인 페이지에 도착하게 됩니다.
  • 제공업체 침해. 제공업체 자체가 뚫리면 유통 중인 모든 동적 QR이 공격자 제어 콘텐츠로 리다이렉트될 수 있습니다. 이론이 아닙니다 — 복수의 QR-as-a-service 제공업체에서 침해 공시가 존재합니다.
  • 제공업체의 DNS 또는 TLS 장애. 리다이렉트 도메인이 해석되지 않거나 TLS 인증서가 만료되면 의존하는 모든 QR이 실패합니다. 악의적 행위자 아닙니다 — 소유자가 통제할 수 없는 평범한 운영 리스크입니다.

정적 QR에는 이 중 어떤 장애 모드도 없습니다 — 스캔과 목적지 사이에 제3자 서버가 없기 때문입니다.

리다이렉트를 스캔하고 있는지 확인하는 법

여는 대신 디코딩된 내용을 보여주는 스캐너를 쓰세요 — 우리 웹 스캐너가 그렇습니다. QR을 스캔하고 디코딩된 URL을 살펴보세요. 실제 목적지면 정적, qrco.de/xyz처럼 못 보던 짧은 도메인이면 리다이렉트 — 가운데에 제3자가 앉아 있다는 뜻입니다.

대안

목적지를 직접 인코딩한 QR을 만드세요. 제3자 서버 없음, 리다이렉트 로그 없음, 구독 없음. 전체 비교는 정적 vs 동적 QR 코드, 왜 중개자 모델이 업계를 지배하는지는 QR 코드 사기의 진실.

아니면 그냥 정적 QR 코드를 만들고 걱정을 놓으세요.


정적 QR 코드를 쓸 준비가 됐나요?

브라우저에서 바로 생성하세요 — 계정 없이, 추적 없이, 구독 없이. 당신이 만든 것은 당신 것입니다.