Araştırmacılar, Chromium tabanlı tarayıcılarda kullanılan bazı Unicode karakterlerinin sahte alan adlarını güvenilir gibi gösterebildiğini ortaya koydu. Sorun, tarayıcının alan adını Punycode olarak göstermesi gerekirken bazı örneklerde Unicode görünümünü korumasından kaynaklanıyor. Bu da kullanıcıların ilk bakışta meşru görünen adreslere güvenmesini kolaylaştırabiliyor.
Çalışmada öne çıkan iki karakter, çeşitli Kiril dillerinde yer alan “ө” ile Hausa ve Karai-karai dillerinde kullanılan Latin kökenli “ƙ” oldu. Araştırmacılara göre bu karakterler görsel olarak sırasıyla e/o, i ve k harflerine yeterince benzediği için aldatıcı alan adlarında etkili biçimde kullanılabiliyor. Bu yöntemle 20 benzer alan adı kaydedildi. Verilen örnekler arasında aррӏө[.]com, sрасөх[.]com, oƙta[.]com ve niƙe[.]com yer alıyor.
Bu adreslerin güvenli gösteriminde tarayıcının aslında xn--80a6aa68c8d.com, xn--80a5aeq0fr0c.com, xn--ota-f6a.com ve xn--nie-g6a.com gibi Punycode karşılıklarını göstermesi bekleniyor. Ancak araştırma, bazı durumlarda Chromium tabanlı tarayıcıların bunu yapmadığını ve kullanıcıya Unicode biçimini sunduğunu gösteriyor.
Sorunun temelinde Chromium’un iki ana savunma katmanı bulunuyor. İlk katman, SafeToDisplayAsUnicode işlevi içindeki yedi ardışık kontrolden oluşuyor. Bu kontroller yaygın sahtecilik yöntemlerini tespit etmeye çalışıyor. 2017’de tamamen Kiril karakterlerden oluşan аррӏе.com vakasının ardından bu korumalar güçlendirilmişti. Ne var ki sistem, bilinen bazı Kiril karakterlerini sabit bir liste üzerinden değerlendiriyor ve yaklaşım büyük ölçüde “ya hep ya hiç” mantığıyla çalışıyor.
Eğer alan adındaki tüm karakterler bu sabit listede yer alırsa tarayıcı önlem alıyor; fakat tek bir karakter bile listede yoksa kontrol aşılabiliyor. Araştırmaya göre “ө”, “ї” ve “ү” gibi karakterler bu nedenle “breaker” işlevi görüyor. Chrome 154 kararlı sürümünde dahi bunların benzer karakter listesinde bulunmadığı belirtiliyor. Böylece alan adı, Punycode’a düşmeden Unicode olarak gösterilebiliyor.
İkinci savunma katmanı, alan adının popüler siteleri taklit edip etmediğini kontrol ediyor. Chromium bunu GetSimilarTopDomain() işleviyle yapıyor. Burada alan adı bir “skeleton” biçimine dönüştürülüyor; aksan gibi işaretler sadeleştiriliyor ve sonuç yaklaşık 8.500 popüler alan adıyla karşılaştırılıyor. Eşleşme varsa tarayıcı Punycode gösterimine geçiyor.

Ancak “ƙ” karakteri bu aşamada da sorun çıkarıyor. Bu karakter aksanlı bir harf gibi ele alınmadığı için skeleton oluşturulurken Latin “k” üzerine ek bir birleştirici işaretle temsil ediliyor ve beklenen eşleşme kaçabiliyor. Benzer biçimde аррӏө.com örneğinde de Kiril “ө” karakterinin çizgisi skeleton içinde korunuyor. Sonuçta görünüşte Apple benzeri bir alan adı, arka plandaki karşılaştırma mantığını atlatabiliyor.
Chromium tarafında ek korumalar da var. “Safety Tips” adı verilen uyarılar, gezinme sırasında kullanıcıyı şüpheli adreslere karşı uyarabiliyor. Örneğin ínstagarm[.]com gibi örneklerde gerçek alan adına çok yakın bir taklit tespit edilirse kullanıcıya doğru siteye gitmek isteyip istemediği sorulabiliyor. Fakat bu uyarılar yalnızca tam karakter eşleşmesi, tek düzenleme farkı veya bitişik harf yer değişimi gibi sınırlı durumlarda tetikleniyor.
Bu nedenle аррӏө[.]com gibi birden fazla karakter farkı içeren örneklerde uyarı çıkmayabiliyor. Ayrıca beş karakterden kısa alan adlarında da korumalar yetersiz kalabiliyor; oƙta.com bunun dikkat çekici örneklerinden biri. Savunmalar sadece tarayıcılarla da sınırlı değil; e-posta istemcilerinde durum daha karmaşık. Gmail’in test edilen 20 alan adını Unicode olarak gösterdiği, Outlook Web’in ise hepsini Punycode olarak sunduğu aktarılıyor.
Araştırmacılar ölçeği görmek için ICANN’in tüm .com alan adlarını da incelemiş. Yaklaşık 167 milyon .com alan adının 733.000 kadarını IDN’ler oluşturuyor. ASCII dışı karakterler ASCII karşılıklarıyla değiştirildiğinde yaklaşık 162.000 benzer çift bulundu. Bu sayı doğrudan 162.000 kötü niyetli alan adı anlamına gelmiyor, ancak görsel benzerlikten yararlanabilecek geniş bir alan bulunduğunu ortaya koyuyor.

