·6 min skaitymas

QR kodo peradresavimo užgrobimas: Nematomas tarpininkas

Kai jūsų QR kodas veikia, tarpininkas yra nematomas. Kai jis sulūžta, jau per vėlu. Peradresavimo modelio supratimas yra pirmas žingsnis, kad jo išvengtumėte.


Kiekvienas dinaminis QR kodas, kurį kada nors nuskaitote, apėmė trečiąją šalį, kurios niekada nepasirinkote. Tarp telefono kameros ir paskirties svetainės QR paslaugų teikėjui priklausantis peradresavimo serveris tyliai persiuntė užklausą. Dauguma vartotojų to niekada nepastebi. Tai esmė.

Šis straipsnis paaiškina, kaip praktiškai atrodo peradresavimo užgrobimas, ką tarpininkas iš tikrųjų daro ir kas pastatyta ant kortos.

Peradresavimo seka

Kai nuskaitote statinį QR į https://shop.example.com:

  1. Kamera perskaito QR kodą
  2. OS atpažįsta jį kaip URL
  3. Naršyklė atidaro https://shop.example.com

Trys žingsniai. Jokių trečiųjų šalių.

Kai nuskaitote dinaminį QR tai pačiai paskirties vietai:

  1. Kamera perskaito QR kodą, kuriame užkoduota kažkas panašaus į https://qr-provider.com/r/x7n2
  2. OS atidaro šį URL
  3. qr-provider.com gauna užklausą, ją užregistruoja, ieško x7n2 savo duomenų bazėje
  4. qr-provider.com išduoda 301 arba 302 peradresavimą į https://shop.example.com
  5. Naršyklė seka peradresavimą ir patenka į tikrąją paskirties vietą

Penki žingsniai. Papildoma šalis 3 žingsnyje — ta, kuriai niekada nedavėte sutikimo, kuriai niekada nemokėjote ir kurios nematote.

Ką gauna tarpininkas

Kiekvienas atskiras nuskaitymas sukuria serverio žurnalo įrašą, kuriame yra:

  • Nuskaitymo laiko žyma
  • Skaitytuvo IP adresas
  • Vartotojo agento eilutė (įrenginys, OS, naršyklė)
  • Nukreipimo antraštės (iš kur atėjo skaitytuvas, jei taikoma)
  • Accept-Language antraštės (kalbos nuostata)

Iš jų paslaugų teikėjas gali numanyti: apytikslę geografinę vietą, įrenginio tipą, operacinės sistemos versiją ir bendrus nuskaitymo modelius laikui bėgant. Tai parduodama klientams kaip „analitika". Tai taip pat yra ne mažesnio masto stebėjimas žmonių, kurie skenuoja jūsų kodus — kurie niekada nedavė sutikimo.

Ką gali daryti tarpininkas

Pakeisti paskirties vietą

Peradresavimo paskirties vieta gyvena paslaugų teikėjo duomenų bazėje. QR savininkas paprastai gali ją redaguoti per valdymo skydelį. Tai parduodama kaip funkcija, ir kai kuriems naudojimo atvejams tai iš tiesų yra. Bet tai reiškia, kad QR kodas nebėra tai, kas atrodo. Fizinis artefaktas sako „skenuokite, kad apsilankytumėte mūsų svetainėje". Faktinis elgesys yra tai, ką šiandien sako paslaugų teikėjo duomenų bazė.

Išjungti peradresavimą

Jei savininko prenumerata baigiasi arba paskyra uždaroma, arba pažeidžiamos paslaugų teikėjo sąlygos, peradresavimas gali būti pašalintas. Kiekviena atspausdinta QR kodo kopija iškart nustoja veikti. Vartotojai nuskaito ir mato bendrą klaidos puslapį arba 404.

Įterpti tarpinį puslapį

Kai kurie paslaugų teikėjai nukreipia dinaminius QR nuskaitymus per prekės ženklą turintį tarpinį puslapį prieš galutinį peradresavimą — rodydami reklamas, prašydami sutikimo, renkant el. paštus. QR savininkas paprastai tam nepritarė. Tai pridedama vėliau, kai paslaugų teikėjas agresyviau monetizuoja.

Parduoti ar prarasti nuskaitymo duomenis

Nuskaitymo žurnalai yra vertingi. Jie buvo parduoti analitikos brokeriams, naudojami reklamos taikymo modelių mokymui ir — bent keliuose dokumentuotuose pažeidimuose — nutekinti, kai paslaugų teikėjai buvo pažeisti. Jūsų klientai nuskaitė meniu; dabar jų įrenginio pirštų atspaudas gyvena pažeidimo duomenų rinkinyje.

Kodėl vartotojai niekada nepastebi

Šiuolaikinės naršyklės automatiškai seka peradresavimus. Jei neturite atvirų kūrėjo įrankių, nematote tarpinio šuolio. Nuskaitymas atrodo akimirksniu, nes peradresavimas yra greitas (kai jis veikia). Vartotojo požiūriu dinaminis QR elgiasi identiškai statiniui.

Kol peradresavimo serveris neiškrenta. Tada patirtis smarkiai skiriasi — bet tuo metu QR kodas jau atspausdintas ant tūkstančių paviršių.

Saugumo pasekmės

Peradresavimo serveris yra vienas gedimo taškas kiekvienam nuo jo priklausomam QR kodui. Trys atakos paviršiai, kuriuos verta apsvarstyti:

  • Paskyros perėmimas. Jei užpuolikas gauna prieigą prie QR savininko paslaugų teikėjo paskyros, jis gali peradresuoti kiekvieną QR į sukčiavimo puslapį. Klientai nuskaito fizinį kodą, tikėdamiesi restorano meniu; jie atsiduria restorano prisijungimo puslapio kredencialų rinkėjo klone.
  • Paslaugų teikėjo kompromitavimas. Jei pats QR paslaugų teikėjas yra pažeidžiamas, kiekvienas apyvartoje esantis dinaminis QR gali būti peradresuotas į užpuoliko kontroliuojamą turinį. Tai nėra teorinis dalykas — egzistuoja pažeidimų atskleidimai keliems QR-as-a-service teikėjams.
  • DNS ar TLS gedimas paslaugų teikėjo pusėje. Jei peradresavimo domenas nustoja atsiskleisti arba TLS sertifikatas baigia galioti, kiekvienas nuo jo priklausantis QR sugenda. Ne piktavalis veikėjas — tiesiog įprasta veiklos rizika, kurios QR savininkas nekontroliuoja.

Statiniai QR kodai neturi nė vieno iš šių gedimo režimų, nes tarp nuskaitymo ir paskirties vietos nėra trečiosios šalies serverio.

Kaip patikrinti, ar skenuojate peradresavimą

Naudokite QR skaitytuvą, kuris rodo iškoduotą turinį prieš jį sekant — mūsų žiniatinklio skaitytuvas tai daro. Nuskaitykite QR kodą ir patikrinkite iškoduotą URL. Jei tai yra jūsų tikroji paskirties vieta, QR yra statinis. Jei tai yra kažkas panašaus į qrco.de/xyz arba trumpas domenas, kurio neatpažįstate, tai peradresavimas — ir viduryje sėdi trečioji šalis.

Alternatyva

Generuokite QR kodus, kurie koduoja jūsų paskirties vietą tiesiogiai. Jokių trečiųjų šalių serverių, jokių peradresavimo žurnalų, jokios prenumeratos. Žiūrėkite statiniai vs dinaminiai QR kodai pilnam palyginimui ir tiesą apie QR kodų sukčiavimus, kodėl tarpininko modelis dominuoja pramonėje.

Arba tiesiog sugeneruokite statinį QR kodą ir nustokite jaudintis.


Pasiruošę statiniam QR kodui?

Sukurkite jį savo naršyklėje — be paskyros, be sekimo, be prenumeratos. Tai, ką kuriate, priklauso jums.