IDN-homografattack

An example of an IDN homograph attack; the Latin letters "e" and "a" are replaced with the Cyrillic letters "е" and "а".
Ett exempel på en IDN-homografattack; de latinska bokstäverna "e" och "a" ersätts med de kyrilliska bokstäverna "е" och "а".

Homografattacken med internationellt domännamn ( IDN ) är ett sätt som en illvillig part kan lura datoranvändare om vilket fjärrsystem de kommunicerar med, genom att utnyttja det faktum att många olika karaktärer ser likadana ut (dvs. de är homografer, därav termen för attack, även om homoglyf tekniskt sett är den mer exakta termen för olika karaktärer som ser likadana ut). Till exempel kan en vanlig användare av example.com lockas att klicka på en länk där det latinska tecknet " a " ersätts med det kyrilliska tecknet "а" .

Denna typ av spoofingattack kallas även script spoofing . Unicode innehåller många skrivsystem, och av flera anledningar tilldelades inte liknande tecken som grekiska Ο , latinska O och kyrilliska О samma kod. Deras felaktiga eller skadliga användning är en möjlighet för säkerhetsattacker.

Registreringen av homografiska domännamn är besläktad med typosquatting , i det att båda formerna av attacker använder ett liknande namn som en mer etablerad domän för att lura en användare. Den stora skillnaden är att vid typosquatting förövaren attraherar offer genom att förlita sig på naturliga typografiska fel som vanligtvis görs när man manuellt anger en URL , medan förövaren vid homografspoofing lurar offren genom att presentera visuellt oskiljbara hyperlänkar . Det skulle faktiskt vara en sällsynt slump för en webbanvändare att skriva till exempel en kyrillisk bokstav i ett annars engelskt ord som "citibаnk". Det finns fall där en registrering kan vara både typosquatting och homografspoofing; paren l/I , i/j och 0/O ligger alla nära varandra på tangentbord och, beroende på typsnittet, kan de vara svåra eller omöjliga att särskilja.

Historia

Homoglyfer är vanliga i de tre stora europeiska alfabeten: latinska , grekiska och kyrilliska . Unicode försöker inte förena glyferna utan separerar istället varje skript .

En tidig olägenhet av detta slag, som gick före internet och till och med textterminaler , var förvirringen mellan "l" (gemen bokstav "L") / "1" (siffran "ett") och "O" (versal för vokal "o") / "0" (talet "noll"). Vissa skrivmaskiner i före-datoreran kombinerade till och med L och en ; användare var tvungna att skriva ett gement L när nummer ett behövdes. Noll/o-förvirringen gav upphov till traditionen att korsa nollor , så att en datoroperatör skulle skriva in dem korrekt. Unicode kan i hög grad bidra till detta genom att kombinera tecken, accenter, flera typer av bindestreck etc., ofta på grund av otillräckligt renderingsstöd , särskilt med mindre teckenstorlekar och det stora utbudet av typsnitt.

Ännu tidigare gav handstil rika möjligheter till förvirring. Ett anmärkningsvärt exempel är etymologin för ordet " zenith ". Översättningen från det arabiska "samt" inkluderade skrivarens förväxling av "m" till "ni". Detta var vanligt i medeltida svartbokstav , som inte kopplade samman de vertikala kolumnerna på bokstäverna i, m, n eller u, vilket gjorde dem svåra att särskilja när flera stod i rad. Den senare, liksom "rn"/"m"/"rri" ("RN"/"M"/"RRI") förvirring, är fortfarande möjlig för ett mänskligt öga även med modern avancerad datorteknik.

Avsiktlig look-alike karaktärssubstitution med olika alfabet har också varit känd i olika sammanhang. Till exempel Faux Cyrillic använts som ett nöje eller uppmärksamhetsfångare och " Volapuk-kodning ", där kyrilliska skrift representeras av liknande latinska tecken, användes i början av Internet som ett sätt att övervinna bristen på stöd för det kyrilliska alfabetet. Ett annat exempel är att fordonsregistreringsskyltar kan ha både kyrilliska (för inhemskt bruk i länder med kyrilliska skrift) och latinska (för internationell körning) med samma bokstäver. Registreringsskyltar som är utfärdade i Grekland är begränsade till att använda bokstäver i det grekiska alfabetet som har homoglyfer i det latinska alfabetet, eftersom EU:s regler kräver användning av latinska bokstäver.

Homografier i ASCII

ASCII har flera tecken eller par av tecken som ser likadana ut och kallas homografer (eller homoglyfer ). Spoofingattacker baserade på dessa likheter kallas homografiska spoofingattacker . Till exempel, 0 (siffran) och O (bokstaven), "l" liten L och "I" versal "i".

I ett typiskt exempel på en hypotetisk attack kan någon registrera ett domännamn som verkar nästan identiskt med en befintlig domän men går någon annanstans. Till exempel börjar domänen "rnicrosoft.com" med "r" och "n", inte "m". Andra exempel är G00GLE.COM som ser ut ungefär som GOOGLE.COM i vissa typsnitt. Med en blandning av versaler och gemener googIe.com (versal i , inte litet L ) ut ungefär som google.com i vissa typsnitt. PayPal var ett mål för en nätfiske-bedrägeri som utnyttjade detta med hjälp av domänen PayPaI.com . I vissa typsnitt med smala avstånd, som Tahoma (standard i adressfältet i Windows XP ), kommer att placera ett c framför ett j , l eller i att producera homoglyfer som cl cj ci (dga).

Homografier i internationaliserade domännamn

I flerspråkiga datorsystem kan olika logiska tecken ha identiskt utseende. Till exempel Unicode- tecken U+0430, kyrillisk liten bokstav a ("а") se identisk ut med Unicode-tecken U+0061, latinsk liten bokstav a, ("a") som är det gemena "a" som används på engelska. Därav wikipediа.org ( xn--wikipedi-86g.org ; den kyrilliska versionen) istället för wikipedia.org (den latinska versionen).

Problemet uppstår från den olika behandlingen av karaktärerna i användarens sinne och datorns programmering. Ur användarens synvinkel är ett kyrilliskt "а" i en latinsk sträng ett latinskt "a"; det finns ingen skillnad i glyfer för dessa tecken i de flesta typsnitt. Datorn behandlar dem dock annorlunda när den bearbetar teckensträngen som en identifierare. Således bryts användarens antagande om en en-till-en överensstämmelse mellan det visuella utseendet av ett namn och den namngivna enheten.

Internationaliserade domännamn ger ett bakåtkompatibelt sätt för domännamn att använda hela Unicode-teckenuppsättningen, och den här standarden stöds redan brett. Men detta system utökade karaktärsrepertoaren från några dussin tecken i ett enda alfabet till många tusen tecken i många manus; detta ökade avsevärt utrymmet för homografiska attacker.

Detta öppnar en mängd möjligheter för nätfiske och andra typer av bedrägerier. En angripare kan registrera ett domännamn som ser ut precis som på en legitim webbplats, men där några av bokstäverna har ersatts av homografer i ett annat alfabet. Angriparen kan sedan skicka e-postmeddelanden som påstås komma från den ursprungliga webbplatsen, men som leder människor till den falska webbplatsen. Den falska sajten kan sedan registrera information som lösenord eller kontodetaljer, samtidigt som den skickar trafik till den riktiga sajten. Offren kanske aldrig märker skillnaden förrän misstänkt eller kriminell aktivitet inträffar med deras konton.

I december 2001 publicerade Evgeniy Gabrilovich och Alex Gontmakher, båda från Technion , Israel , en artikel med titeln "The Homograph Attack", som beskrev en attack som använde Unicode-webbadresser för att förfalska en webbadress. För att bevisa genomförbarheten av denna typ av attack, registrerade forskarna framgångsrikt en variant av domännamnet microsoft .com som inkorporerade kyrilliska tecken.

Sådana problem förutsågs innan IDN infördes och riktlinjer gavs ut till register för att försöka undvika eller minska problemet. Till exempel rekommenderades det att register endast accepterar tecken från det latinska alfabetet och det i deras eget land, inte alla Unicode-tecken, men detta råd försummades av stora toppdomäner . [ citat behövs ]

Den 7 februari 2005 rapporterade Slashdot att detta utnyttjande avslöjades av 3ric Johanson på hackerkonferensen Shmoocon . Webbläsare som stöder IDNA verkade dirigera URL:en http://www.pаypal.com/, där det första tecknet ersätts med ett kyrilliskt а , till platsen för den välkända betalningssidan PayPal , men ledde faktiskt till en falsk webbplats med olika innehåll. Populära webbläsare fortsatte att ha problem med att korrekt visa internationella domännamn fram till april 2017.

Följande alfabet har tecken som kan användas för spoofingattacker (observera att dessa bara är de mest uppenbara och vanliga, givet konstnärlig licens och hur stor risk spoofern tar för att åka fast; möjligheterna är mycket fler än vad som kan anges här):

Kyrillisk

Kyrilliska är överlägset det vanligaste alfabetet för homoglyfer, till stor del för att det innehåller 11 gemener som är identiska eller nästan identiska med latinska motsvarigheter.

De kyrilliska bokstäverna а , с , е , о , р , х och у har optiska motsvarigheter i det grundläggande latinska alfabetet och ser nära eller identiska ut med a , c , e , o , p , x och y . Kyrilliska З , Ч och б liknar siffrorna 3 , 4 och 6 . Kursiv typ genererar fler homoglyfer: дтпи eller дтпи ( д т п и i standardtyp), som liknar d m n u (i vissa teckensnitt kan д användas, eftersom dess kursivform liknar ett gement g ; dock i de flesta vanliga typsnitt, д liknar istället ett partiellt differentialtecken , ).

Om versaler räknas kan А В С Е Н І Ј К М О Р Ѕ Т Х ersätta A B C E H I J K M O P S T X , förutom versalerna för de kyrilliska homoglyferna med små bokstäver.

Kyrilliska icke-ryska problembokstäver är і och i , ј och j , ԛ ​​och q , ѕ och s , ԝ och w , Ү och Y , medan Ғ och F , Ԍ och G har en viss likhet med varandra. Kyrillisk ӓ ё ї ӧ kan också användas om ett IDN i sig förfalskas, för att fejka ä ë ï ö .

Även om Komi De ( ԁ ), shha ( һ ), palochka ( Ӏ ) och izhitsa ( ѵ ) har stora likheter med latinska d, h, l och v, är dessa bokstäver antingen sällsynta eller ålderdomliga och har inte allmänt stöd i de flesta standardteckensnitt (de ingår inte i WGL-4 ). Försök att använda dem kan orsaka en lösenseddeleffekt .

grekisk

Från det grekiska alfabetet visas bara omicron ο och ibland nu ν identiska med en bokstav i latinskt alfabet med gemener som används för webbadresser. Teckensnitt som är i kursiv stil kommer att ha grekisk alfa α som ser ut som en latinsk a .

Denna lista ökar om nära matchningar också är tillåtna (som grekiska εικηρτυωχγ för eiknptuwxy). Med stora bokstäver utökas listan kraftigt. Grekiska ΑΒΕΗΙΚΜΝΟΡΤΧΥΖ ser identisk ut med latinska ABEHIKMNOPTXYZ. Grekiska ΑΓΒΕΗΚΜΟΠΡΤΦΧ liknar kyrilliska АГВЕНКМОПРТФХ (liksom kyrilliska Л (Л) och grekiska Λ i vissa geometriska sans-serif-typsnitt som liknar κο och grekiska bokstäver liknar κο. Förutom denna grekiska τ φ likna kyrilliska т, ф i vissa teckensnitt, grekiska δ liknar kyrilliska б i det serbiska alfabetet , och det kyrilliska а kursiverar också samma som sin latinska motsvarighet, vilket gör det möjligt att ersätta det med alfa eller vice versa. Den galna formen av sigma, Ϲϲ, liknar både latinsk Cc och kyrillisk Сс.

Om ett IDN i sig förfalskas, kan grekisk beta β ersätta tyska eszett ß i vissa teckensnitt (och i själva verket behandlar kodsidan 437 dem som likvärdiga), liksom grekisk slutvariant sigma ς för ç ; accentuerade grekiska substitut όίά kan vanligtvis användas för óíá i många teckensnitt, där den sista av dessa (alfa) återigen bara liknar en i kursiv typ.

armeniska

Det armeniska alfabetet kan också bidra med viktiga tecken: flera armeniska tecken som օ, ո, ս, samt versaler Տ och Լ är ofta helt identiska med latinska tecken i moderna typsnitt, och symboler som är tillräckligt lika för att passera, som ցհոօզս som ser ut som ghnoqu, յ som liknar j (om än prickfritt), och ք, som antingen kan likna p eller f beroende på typsnittet; ա kan likna kyrilliska ш. Men användningen av armeniska är, lyckligtvis, lite mindre tillförlitlig: Alla standardteckensnitt har inte armeniska glyfer (medan de grekiska och kyrilliska skrifterna är det); Windows före Windows 7 renderade armeniska i ett distinkt teckensnitt, Sylfaen , där blandningen av armeniska med latin skulle uppenbarligen se annorlunda ut om du använder ett annat teckensnitt än Sylfaen eller ett Unicode-typsnitt . (Detta är känt som en lösenseddeleffekt .) Den nuvarande versionen av Tahoma , som används i Windows 7, stöder armeniska (det gjorde inte tidigare versioner). Dessutom skiljer detta teckensnitt latinska g från armeniska ց.

Två bokstäver på armeniska (Ձշ) kan också likna siffran 2, Յ liknar 3, medan en annan (վ) ibland liknar siffran 4.

hebreiska

Hebreisk spoofing är i allmänhet sällsynt. Endast tre bokstäver från det alfabetet kan användas tillförlitligt: ​​samekh (ס), som ibland liknar o, vav med diakritisk (וֹ), som liknar ett i, och heth (ח), som liknar bokstaven n. Mindre exakta approximationer för vissa andra alfanumeriska värden kan också hittas, men dessa är vanligtvis bara tillräckligt exakta för att användas för utländskt varumärke och inte för ersättning. Dessutom skrivs det hebreiska alfabetet från höger till vänster och att försöka blanda det med glyfer från vänster till höger kan orsaka problem.

Thai


Överst: Thailändska glyfer renderade i ett modernt teckensnitt (IBM Plex) där de liknar latinska glyfer. Nederst: Samma glyfer återgivna med traditionella loopar.

Även om det thailändska manuset historiskt har haft ett distinkt utseende med många slingor och små blommor, har modern thailändsk typografi , som började med Manoptica 1973 och fortsatte genom IBM Plex i modern tid, alltmer antagit en förenklad stil där thailändska karaktärer representeras med glyfer liknar starkt latinska bokstäver. ค (A), ท (n), น (u), บ (U), ป (J), พ (W), ร (S) och ล (a) är bland de thailändska glyfer som kan likna latin .

kinesiska

Det kinesiska språket kan vara problematiskt för homografer eftersom många tecken finns både som traditionella (vanliga skrift) och förenklade kinesiska tecken . I .org -domänen gör registrering av en variant den andra otillgänglig för någon; i .biz levererar en enda kinesiskspråkig IDN-registrering båda varianterna som aktiva domäner (som måste ha samma domännamnsserver och samma innehavare). .hk (.香港) antar också denna policy.

Andra manus

Andra Unicode-skript där homografer kan hittas inkluderar nummerformer ( romerska siffror ), CJK-kompatibilitet och bifogade CJK-bokstäver och månader (vissa förkortningar), latin (vissa digrafer), valutasymboler , matematiska alfanumeriska symboler och alfabetiska presentationsformer ( typografiska ligaturer) . ).

Accenttecken

Två namn som bara skiljer sig i en accent på ett tecken kan se väldigt lika ut, särskilt när ersättningen involverar den prickade bokstaven i ; titeln (punkten) på i:et kan ersättas med en diakritisk (som en grav accent eller akut accent ; både ì och í ingår i de flesta vanliga teckenuppsättningar och typsnitt) som bara kan upptäckas med noggrann inspektion. I de flesta toppdomänregister är wikipedia.tld (xn--wkipedia-c2a.tld) ​​och wikipedia.tld två olika namn som kan innehas av olika registranter. Ett undantag är .ca , där reservation av den vanliga ASCII- versionen av domänen hindrar en annan registrant från att göra anspråk på en accentversion med samma namn.

Ej visningsbara tecken

Unicode innehåller många tecken som inte visas som standard, till exempel nollbreddsutrymmet . I allmänhet ICANN att alla domäner med dessa tecken registreras, oavsett toppdomän.

Kända homografattacker

2011 registrerade en okänd källa (som registrerade sig under namnet "Helt anonymt") ett homografiskt domännamn till tv-stationen KBOI-TV för att skapa en falsk nyhetswebbplats . Det enda syftet med sajten var att sprida ett aprilskämt om att guvernören i Idaho utfärdade ett förmodat förbud mot försäljning av musik av Justin Bieber .

I september 2017 upptäckte säkerhetsforskaren Ankit Anubhav en IDN-homografattack där angriparna registrerade adoḅe.com för att leverera Betabot-trojanen.

Försvara sig mot attacken

Begränsning på klientsidan

Det enklaste försvaret är att webbläsare inte stöder IDNA eller andra liknande mekanismer, eller att användare stänger av allt stöd som deras webbläsare har. Det kan innebära att man blockerar åtkomst till IDNA-webbplatser, men i allmänhet tillåter webbläsare åtkomst och visar bara IDN i Punycode . Oavsett vilket innebär detta att överge icke-ASCII-domännamn.

  • Google Chrome versioner 51 och senare använder en algoritm som liknar den som används av Firefox. Tidigare versioner visar ett IDN endast om alla dess tecken tillhör ett (och endast ett) av användarens föredragna språk. Chromium och Chromium-baserade webbläsare som Microsoft Edge (sedan 2019) och Opera använder också samma algoritm.
  • Safaris tillvägagångssätt är att återge problematiska teckenuppsättningar som Punycode . Detta kan ändras genom att ändra inställningarna i Mac OS X: s systemfiler.
  • Mozilla Firefox versioner 22 och senare visar IDN om någon av toppdomänen förhindrar homografattacker genom att begränsa vilka tecken som kan användas i domännamn eller etiketter som inte blandar skript för olika språk. Annars visas IDN i Punycode.
  • Internet Explorer version 7 och senare tillåter IDN förutom etiketter som blandar skript för olika språk. Etiketter som blandar skript visas i Punycode. Det finns undantag från lokaler där ASCII-tecken vanligtvis blandas med lokaliserade skript. Internet Explorer 7 kunde använda IDN, men det inför begränsningar för visning av icke-ASCII-domännamn baserat på en användardefinierad lista över tillåtna språk och tillhandahåller ett anti-phishing-filter som kontrollerar misstänkta webbplatser mot en fjärrdatabas med kända phishing-webbplatser . [ citat behövs ]
  • Gamla Microsoft Edge konverterar all Unicode till Punycode. [ citat behövs ]

Som ett ytterligare försvar inkluderar Internet Explorer 7, Firefox 2.0 och senare och Opera 9.10 nätfiskefilter som försöker varna användare när de besöker skadliga webbplatser. Från och med april 2017 visade flera webbläsare (inklusive Chrome, Firefox och Opera) IDN:er som normalt bestod av rent kyrilliska tecken (inte som punycode), vilket tillåter falska attacker. Chrome skärpte IDN-begränsningarna i version 59 för att förhindra denna attack.

Webbläsartillägg som No Homo-Graphs är tillgängliga för Google Chrome och Firefox som kontrollerar om användaren besöker en webbplats som är en homograf av en annan domän från en användardefinierad lista.

Dessa försvarsmetoder sträcker sig bara till inom en webbläsare. Homografiska webbadresser som innehåller skadlig programvara kan fortfarande distribueras, utan att visas som Punycode, via e-post , sociala nätverk eller andra webbplatser utan att upptäckas förrän användaren faktiskt klickar på länken. Även om den falska länken visas i Punycode när den klickas, har sidan redan börjat laddas in i webbläsaren och den skadliga programvaran kan redan ha laddats ner till datorn.

Begränsning av serversida/registeroperatör

IDN-homografdatabasen är ett Python-bibliotek som låter utvecklare försvara sig mot detta med hjälp av maskininlärningsbaserad teckenigenkänning.

ICANN har implementerat en policy som förbjuder alla potentiella internationaliserade toppdomäner att välja bokstäver som kan likna en befintlig latinsk toppdomän och därmed användas för homografiska attacker. Föreslagna IDN-tlddomar .бг (Bulgarien), .укр (Ukraina) och .ελ (Grekland) har avvisats eller stoppats på grund av deras upplevda likhet med latinska bokstäver. Alla tre (och serbiska .срб och mongoliska .мон ) har senare accepterats. Tre bokstäver TLD anses säkrare än två bokstäver TLD, eftersom de är svårare att matcha med normala latinska ISO-3166 landsdomäner; även om potentialen för att matcha nya generiska domäner kvarstår, är sådana generiska domäner mycket dyrare än att registrera en domänadress på andra eller tredje nivå, vilket gör det kostsamt att försöka registrera en homoglyfisk toppdomän i det enda syftet att göra bedrägliga domäner ( vilket i sig skulle få ICANN:s granskning).

Den ryska registeroperatören Coordination Center for TLD RU accepterar endast kyrilliska namn för toppdomänen .рф , vilket förbjuder en blandning med latinska eller grekiska tecken. Men problemet i .com och andra gTLD: er är fortfarande öppet.

Se även

externa länkar