10 min de cititConformitate

Atacul homograf: cum te păcălește un domeniu clonă

Un atac homograf ascunde un domeniu falsificat în spatele codării xn-- din punycode și al caracterelor care seamănă vizual. Cum funcționează trucul și cum verifici mai întâi un link.

Sasha Ehrlich
Compliance · EU residency
O bară de adresă a browserului care arată un atac homograf, cu domeniul înșelător și forma punycode xn-- din care este decodat, în paleta de brand Elido

Un atac homograf înregistrează un domeniu construit din caractere care arată identic cu cele dintr-un domeniu real, dar nu sunt aceleași - un "a" chirilic în locul unui "a" latin, de exemplu - astfel încât adresa pe care o citește o persoană și adresa pe care o rezolvă un browser sunt două lucruri diferite. Trucul funcționează pentru că sistemul de nume de domenii înțelege doar ASCII, așa că fiecare domeniu non-ASCII este tradus într-o formă ASCII numită punycode, marcată cu un prefix xn--, înainte să ajungă vreodată la DNS. Browserele o decodează înapoi în versiunea lizibilă pentru afișare, iar acest pas de decodare este exact locul unde trăiește înșelăciunea.

Browserele moderne prind acum cazurile evidente și revin la afișarea formei punycode brute atunci când o etichetă amestecă alfabete într-un mod suspect, blocând majoritatea atacurilor simple care funcționau acum un deceniu. Dar această protecție nu depășește bara de adrese a browserului.

Mă ocup de cazuri de falsificare a brandurilor ca meserie, iar falsurile bune încă îmi atrag privirea pentru o jumătate de secundă înainte să înregistrez semnul care le trădează. Acest articol acoperă cum funcționează un atac homograf, unde se oprește apărarea browserului și ce poți face în privința asta - fie că ești pe cale să dai clic, fie că deții domeniul care este falsificat. Pentru întrebarea mai largă legată de cât de sigure sunt linkurile scurte în sine, sunt scurtătoarele de linkuri sigure acoperă acel subiect; acesta este despre domeniul care se află dedesubtul linkului.

Ce este punycode și de ce există

DNS a fost construit pentru ASCII, punct. Nu are niciun mod nativ de a stoca literele accentuate, caracterele chirilice, arabe sau chinezești care alcătuiesc majoritatea sistemelor de scriere din lume, ceea ce a devenit o problemă reală din momentul în care înregistrarea domeniilor s-a deschis în afara piețelor vorbitoare de limba engleză.

Punycode este soluția: o codare reversibilă, standardizată ca RFC 3492, care transformă o etichetă Unicode în litere, cifre și cratime ASCII pe care DNS le poate transporta fără nicio modificare a protocolului de transmisie. O brutărie germană care înregistrează un domeniu cu o umlaut, sau un retailer ucrainean care înregistrează unul în chirilică, obține un nume de domeniu internaționalizat funcțional care se rezolvă exact ca oricare altul, pentru că dedesubt este doar o altă etichetă ASCII. Forma codată începe întotdeauna cu xn--, semnalând "aceasta este punycode, decodeaz-o înainte să o arăți unui om."

Niciunul dintre aceste lucruri nu este o vulnerabilitate în sine - numele de domenii internaționalizate sunt o funcție reală și necesară, nu o soluție de ocolire pe care cineva ar trebui să o dezactiveze. Problema începe un nivel mai sus, în momentul în care browserul decide cum să îți afișeze înapoi acel nume decodat.

Cum funcționează un atac homograf

Un atac homograf exploatează diferența dintre ce conține un domeniu și cum arată odată redat. Există două variante întâlnite în practică, și nu sunt la fel de răspândite.

Versiunea cu alfabet întreg înregistrează un domeniu complet într-un alfabet non-latin ale cărui forme de litere seamănă întâmplător cu brandul vizat. Este ușor de observat la construire și mai simplu de detectat pentru cei care apără, pentru că întreaga etichetă este străină.

Versiunea cu alfabete amestecate este cea care chiar se folosește, pentru că are nevoie de o singură substituție. Ia un domeniu ca novacloud.com. Înlocuiește "o" latin cu "о" chirilic (U+043E), vizual identic, și obții nоvacloud.com - aceeași formă, aceeași lungime, punct de cod diferit, și un domeniu care se codează ca xn--nvacloud-nbh.com. Tot restul etichetei rămâne neatins, așa că ochiul nu are aproape nimic de semnalat. Cercetătorii în securitate numesc acest tip de pereche similară vizual un "confusable", iar un număr mic dintre ele acoperă majoritatea alfabetului latin.

Comparație alăturată între domeniul real novacloud.com în alfabet latin, domeniul clonă cu litera o chirilică în locul lui o latin, și forma xn--nvacloud-nbh.com pe care o dezvăluie browserul dedesubt

Odată ce domeniul este înregistrat, restul atacului este phishing obișnuit: o pagină de autentificare copiată pixel cu pixel, un mesaj urgent care indică spre linkul falsificat, și o țintă care nu are niciun motiv să se îndoiască de o adresă care arată exact cum trebuie.

Ce fac browserele în privința asta astăzi

Producătorii de browsere au închis majoritatea versiunii simple a acestui atac cu ani în urmă, cu o regulă despre ce alfabete sunt permise să se amestece într-o singură etichetă. Politica Chrome, documentată în ghidul său de gestionare IDN, verifică dacă fiecare caracter dintr-o etichetă aparține în mod plauzibil unui singur alfabet, sau unui set restrâns de combinații de alfabete care apar legitim împreună, cum ar fi kanji japonez cu hiragana. Amestecă alfabete în afara acelui set permis și browserul afișează forma xn-- brută în loc să o decodeze - cel mai bun atu al atacului, un domeniu care arată complet normal, se transformă înapoi într-un șir evident codat. Firefox rulează o verificare comparabilă, descrisă în algoritmul de afișare IDN al Mozilla, iar Safari aplică propria sa versiune.

Nu este o protecție completă. O etichetă cu alfabete amestecate, construită doar din caractere dintr-o singură combinație permisă, poate încă trece drept un nume lizibil și înșelător, iar regula este aplicată browser cu browser, fără nicio autoritate comună care să decidă ce contează drept sigur.

Unde se oprește această protecție

Verificarea amestecului de alfabete trăiește în codul de randare a barei de adrese a browserului. Nu călătorește odată cu URL-ul nicăieri altundeva, iar acest gol este exact locul unde un domeniu falsificat mai poate face daune reale.

Clienții de email sunt cea mai mare expunere: un mesaj poate afișa orice text de ancoră peste un link, indiferent de destinație, iar majoritatea aplicațiilor de mail nu rulează deloc vreo verificare de caractere confuzabile. Aplicațiile de chat despăturesc un link partajat într-un card de previzualizare construit din metadatele paginii, nu dintr-un randor conștient de punycode. Codurile QR elimină complet pasul de text, un gol pe care îl acoperim în sunt codurile QR sigure, iar materialele tipărite nu au niciun strat software între ochi și înșelăciune.

CanalArată destinația reală înainte să acționeziExpunere tipică
Browser desktop modernDe obicei, prin reguli de amestecare a alfabetelorRedusă pentru browserele comune, ținute la zi
Client de emailRareori - textul de ancoră poate spune oriceRidicată, mai ales pe aplicațiile de mail mobile
Aplicații de chat și mesagerieRareori - previzualizările de link folosesc metadatele paginiiRidicată, previzualizările linkurilor arată identic
Cod QRNu - nimic nu se randează până după scanareRidicată, decizia se ia într-o fracțiune de secundă
Materiale tipăriteNiciodată - nu este implicat niciun softwareCea mai ridicată, nu este posibilă nicio verificare tehnică

Dacă echipa ta trimite linkuri sub un domeniu pe care clienții tăi îl recunosc deja, un domeniu clonă falsificat are mult mai puțin spațiu să te imite convingător pe toate aceste canale simultan. Vezi cum funcționează un domeniu personalizat de brand pe Elido dacă încă trimiți linkuri de pe un domeniu partajat sau generic.

De ce un domeniu de brand este cea mai bună apărare a ta

Un atac homograf funcționează exploatând familiaritatea - are nevoie de un brand recunoscut pentru a-l contraface. Asta sună ca un argument împotriva construirii unui domeniu propriu, recunoscut, dar este exact opusul. Un link scurt de brand distinctiv, pe care publicul tău îl asociază deja cu tine, este ceva cu care poate compara un mesaj suspect; un domeniu de scurtător generic sau împrumutat oferă unui atacator un șablon pe care clienții nu îl pot distinge oricum de furnizorul real, pentru că niciunul dintre ele nu arată ca "tine".

Configurarea unui domeniu personalizat pentru linkuri scurte înseamnă că fiecare link pe care îl trimiți poartă un nume pe care destinatarii îl recunosc, ceea ce ridică ștacheta pentru oricine încearcă să îl contrafacă. Merită separat de mascarea linkurilor și camuflarea URL-urilor, o alegere deliberată și declarată de a ruta linkurile prin propriul tău domeniu. Un atac homograf este mișcarea opusă - ascunde identitatea atacatorului în timp ce o imită pe a ta - iar apărarea este transparența despre care domeniu este cu adevărat al tău.

Controalele de registrar care contează cu adevărat

Două controale fac cea mai mare parte a muncii reale odată ce deții un domeniu care merită protejat, iar ele operează la niveluri diferite ale stivei.

Registrar lock este cel de zi cu zi - un indicator de stare, afișat adesea ca clientTransferProhibited, care blochează cererile automate de rutină de transfer din interiorul propriului tău panou de registrar. Fiecare domeniu pe care îl folosești activ ar trebui să îl aibă activat; nu costă nimic. Registry lock stă un nivel mai sus, implicând direct operatorul registrului, astfel încât orice modificare, transfer sau ștergere necesită verificare manuală, în afara canalului obișnuit - un apel telefonic sau o parolă securizată - înainte să intre în vigoare. Această fricțiune își are locul pe unul sau două domenii unde o modificare neautorizată ar fi cu adevărat costisitoare, ceea ce pentru majoritatea companiilor înseamnă cel puțin domeniul principal de brand.

Niciunul dintre cele două blocaje nu împiedică pe cineva să înregistreze un domeniu clonă lângă al tău. Asta necesită monitorizare activă: urmărirea înregistrărilor noi de domenii și a jurnalelor publice de transparență a certificatelor pentru nume vizual apropiate de brandul tău, astfel încât să poți raporta la registrar sau să alertezi clienții înainte ca o campanie care îl folosește să ajungă la cineva.

Ce să incluzi într-o politică de protecție a brandului

Dacă deții un domeniu care merită falsificat, secțiunea de securitate a politicii tale de protecție a brandului ar trebui să fie suficient de specifică încât cineva nou în echipă să o poată executa fără să te întrebe mai întâi.

  • Blocare de transfer la registrar pe fiecare domeniu deținut de companie, cu registry lock adăugat pe domeniul principal de brand și pe orice gestionează plăți sau autentificări.
  • O cadență recurentă de scanare a înregistrărilor noi de domenii și a jurnalelor de transparență a certificatelor, pentru nume vizual apropiate de brandul tău, nu o verificare unică.
  • Înregistrarea defensivă a etichetelor clonă cu cel mai mare risc și a domeniilor de nivel superior confuzabile pe care le poți justifica, prioritizate în funcție de cât de aproape se potrivesc cu domeniul tău principal.
  • Un responsabil desemnat și un traseu de escaladare pentru raportarea unui domeniu clonă descoperit către registrarul său, plus îndrumări interne astfel încât personalul de suport să recunoască tiparul atunci când un client raportează unul. Lista de verificare a securității pentru alegerea unui furnizor de linkuri acoperă controalele conexe ale furnizorilor.

O rețetă de verificare pe care o poate urma oricine

Nu trebuie să înțelegi punycode ca să verifici un link în siguranță. Patru pași, făcuți în ordine, prind aproape tot pe ce se bazează un atac homograf.

  1. Extinde mai întâi linkul, în loc să dai clic direct pe el. Cum vezi unde duce un URL scurt trece în revistă instrumentele pentru asta, iar propriul verificator de linkuri al Elido face același lucru fără să îți ceară să ai încredere în destinație mai întâi.
  2. Citește domeniul înregistrabil - partea imediat dinaintea domeniului de nivel superior - nu ce apare înaintea lui. Aceea este partea pe care un atacator trebuie să o controleze în întregime.
  3. Verifică dacă există un prefix xn--, fie în URL-ul extins brut, fie în bara de adrese a browserului. Dacă vezi unul acolo unde te așteptai la un nume de brand simplu, oprește-te și tratează-l ca pe un domeniu clonă până la proba contrarie.
  4. Confirmă numele din certificatul site-ului de destinație. Un certificat reflectă ce a fost emis efectiv unui proprietar de domeniu, ceea ce este mult mai greu de falsificat convingător decât o etichetă randată.
Patru pași de verificare înainte să dai clic pe un link: extinde linkul scurt, citește domeniul înregistrabil, verifică dacă există un prefix xn--, și confirmă numele din certificat

Niciunul dintre acești pași nu durează mai mult de câteva secunde odată ce devin obiceiuri, și îi poți învăța pe toți patru unui coleg netehnic în timpul necesar pentru a citi această secțiune o singură dată.

Un atac homograf este o problemă de afișare deghizată în problemă de securitate. Punycode face exact ce a fost proiectat să facă; înșelăciunea are loc în golul dintre ce este de fapt un domeniu și ce îți arată în schimb o bucată de software. Browserele au închis cea mai mare parte a acelui gol pentru bara de adrese. Peste tot altundeva golul este încă deschis, motiv pentru care extinderea unui link și citirea domeniului înregistrabil rămâne obiceiul care funcționează indiferent de canalul care ți-a pus linkul în față.

Articole conexe de pe blog

Întrebări frecvente

Ce este un atac IDN homograf?

Un atac IDN homograf înregistrează un domeniu folosind caractere dintr-un alt alfabet care arată identic sau aproape identic cu cele dintr-un domeniu real, astfel încât un cititor nu poate distinge cele două vizual. Cazul clasic înlocuiește o singură literă latină cu una similară din alfabetul chirilic sau grecesc, de exemplu litera chirilică a în locul literei latine a, în timp ce restul domeniului rămâne neschimbat. Deoarece caracterul de substituție are un punct de cod diferit dedesubt, cele două domenii sunt distincte din punct de vedere tehnic și pot fi înregistrate și controlate de proprietari diferiți. Atacul reușește exclusiv prin aspect, motiv pentru care vizează nume de branduri recunoscute și de încredere, nu pe cele obscure.

Ce este punycode și de ce există?

Punycode este codarea care transformă etichetele de domeniu non-ASCII într-un șir ASCII pe care sistemul de nume de domenii îl poate stoca și rezolva, definită în RFC 3492. Există pentru că DNS înțelege doar un set limitat de caractere ASCII, așa că un domeniu scris în chirilică, arabă, chineză sau cu litere latine accentuate trebuie tradus în această formă înainte de a putea fi căutat. Eticheta codată începe întotdeauna cu prefixul xn--, care le spune resolverelor și browserelor că ceea ce urmează este un șir codat punycode, nu un nume ASCII simplu. Browserele îl decodează apoi înapoi la alfabetul original pentru afișare, ceea ce este o funcție legitimă și necesară, nu vulnerabilitatea în sine.

Ce înseamnă prefixul xn-- într-un URL?

Prefixul xn-- marchează o etichetă de domeniu ca fiind ASCII Compatible Encoding, produsă de punycode, semnalând că numele lizibil a fost tradus din caractere non-ASCII. Tot ce urmează după prefix este forma codată a etichetei originale - xn--nvacloud-nbh.com, de exemplu, se decodează într-un domeniu care arată ca novacloud.com cu o literă înlocuită cu una similară vizual. Faptul că vezi forma xn-- acolo unde te așteptai la un nume de brand simplu este exact semnalul pe care browserele îl folosesc ca avertisment, pentru că înseamnă că eticheta a amestecat alfabete într-un mod pe care browserul nu l-a considerat sigur pentru a fi redat în versiunea prietenoasă. Un domeniu fără niciun caracter non-ASCII nu produce niciodată o formă xn--, așa că a vedea una merită întotdeauna o a doua privire.

Browserele protejează împotriva atacurilor homograf?

Browserele moderne aplică reguli de amestecare a alfabetelor care prind majoritatea încercărilor de tip homograf și revin la afișarea formei punycode brute în loc de cea înșelătoare. Chrome și Firefox verifică ambele dacă literele unei etichete de domeniu aparțin în mod plauzibil unui singur alfabet sau unui set restrâns de alfabete folosite frecvent împreună, iar dacă nu, afișează versiunea xn-- în loc să o decodeze în ceva care ar putea trece drept un nume familiar. Asta blochează cele mai ușoare atacuri pe alfabet întreg să mai fie afișate drept impostori convingători, deși atacatorii pot găsi în continuare caractere în seturile permise care sunt confuzabile vizual cu literele latine. Protecția este de asemenea strict limitată la bara de adrese a browserului - nimic altceva din stivă nu o moștenește automat.

Cum îmi dau seama dacă un link este un domeniu clonă înainte să dau clic?

Extinde mai întâi linkul ca să vezi destinația completă, nu o versiune scurtată sau trunchiată, apoi citește domeniul înregistrabil, nu ce apare înaintea lui. Dacă bara de adrese sau instrumentul de extindere arată un prefix xn-- acolo unde te așteptai la un nume de brand simplu, tratează asta ca pe un domeniu clonă până la proba contrarie. Confirmarea numelui din certificatul site-ului de destinație este o verificare finală utilă, pentru că un certificat reflectă ce a fost emis efectiv, nu doar ce se afișează. Nimic din toate astea nu necesită software special - doar obiceiul de a le face înainte să introduci o parolă sau un număr de card.

Ce este registry lock și are domeniul meu nevoie de el?

Registry lock este un control setat la nivelul registrului de domenii care blochează orice modificare, transfer sau ștergere a unui domeniu până când este verificată manual, în afara canalului obișnuit, de obicei prin telefon sau o parolă securizată, ceea ce oprește chiar și un cont de registrar compromis să mute domeniul. Este o garanție mai puternică decât registrar lock, mai frecvent întâlnit, care previne doar transferurile automate de rutină din interiorul propriului tău panou de registrar. Registry lock merită costul anual modest pentru orice domeniu a cărui indisponibilitate sau deturnare ar fi costisitoare, ceea ce pentru majoritatea companiilor înseamnă cel puțin domeniul principal de brand. Nu va opri pe cineva să înregistreze un domeniu clonă lângă al tău - asta este o problemă separată, rezolvată prin monitorizare, nu prin blocare.

Încearcă Elido

Lipește un URL, obții un link scurt funcțional

Fără înregistrare. Linkul este activ timp de 30 de zile. Înregistrează-te ca să-l păstrezi pentru totdeauna.

Gratuit, fără înregistrare · 2 pe zi

Încearcă Elido

Scurtător de URL-uri găzduit în UE, cu domenii personalizate, analiză avansată și un API deschis. Nivel gratuit - fără card bancar.

Etichete
homograph attack
punycode
idn homograph attack
lookalike domain
xn-- prefix
spoofed domain

Continuă lectura