- Cloudflare Turnstile'ın “Verify you're human” cihaz doğrulaması, yaklaşık bir haftadır WebKitGTK tabanlı tarayıcılarda sonsuz döngüye giriyor
- Birçok web sitesine erişimin engellenmesinin doğrudan nedeni, Cloudflare'ın WebGL üzerinden cihaz parmak izi almaya çalışması gibi görünüyor
- Turnstile açıklaması, tarayıcı parmak izi toplama yöntemini insan olup olmadığını doğrulamak için kullandığını ve engelleme/rastgeleleştirme araçlarının kullanıcıyı bot gibi gösterebildiğini belirtiyor
- WebKit bu tür işlevleri yıllardır engelliyor ve bunun kullanıcıların kolayca kapatabileceği bir gizlilik seçeneği olmadığı görülüyor
- Safari için bir istisna olduğu tahmin edilirken WebKitGTK tarayıcılarının tamamı engelleniyor; Firefox'un koruma ayarlarını kullanan kullanıcılar da etkilenebilir
WebKitGTK'de tekrarlanan Turnstile doğrulaması
- Cloudflare Turnstile'ın “Verify you're human” cihaz doğrulaması, yaklaşık bir haftadır WebKitGTK tabanlı tarayıcılarda sonsuz döngüye girerek birçok web sitesine erişimi engelliyor
- Erişim engelinin nedeni, Cloudflare'ın WebGL üzerinden cihaz parmak izi almaya çalışması gibi görünüyor
- Turnstile bilgilendirme metni, tarayıcı parmak izi toplama yöntemini insan olup olmadığını doğrulamak için kullandığını söylüyor
- Parmak izi toplamayı engelleyen veya rastgeleleştiren gizlilik araçları, tarayıcıyı kimliğini gizlemeye çalışan bir bot gibi gösterebilir
- WebKit bu tür işlevleri yıllardır engelliyor ve bunun kolayca devre dışı bırakılabilen bir gizlilik özelliği olmadığı görülüyor
- Cloudflare'ın Safari için bir istisna tanıdığı tahmin edilirken, WebKitGTK tarayıcılarının tamamı engellenmiş durumda
Firefox'taki ilgili koruma davranışı
- Mozilla Firefox'un WebGL parmak izi toplama korumasında Bugzilla#1916271: Gecko reveals sanitized GPU Characteristics; webkit and blink return hardcoded strings for all users sorunu bulunuyor
privacy.resistfingerprinting, ayarlarda “Strict” ve “Enhanced Privacy Protection” seçilse bile etkinleşmiyorprivacy.resistfingerprintingayarını elle etkinleştiren gizlilik odaklı Firefox kullanıcıları, gelecekte Cloudflare'ın cihaz doğrulamasını geçemeyebilir
2 yorum
Lobste.rs görüşleri
Görünüşe göre makalede Firefox’la ilgili birkaç farklı şey birbirine karıştırılmış. Bu işi doğrudan yapan ekipte bulunmuş biri olarak söyleyebilirim ki, Firefox parmak izi koruması birkaç farklı şekilde çalışıyor
Birincisi, Firefox, WebGL vendor/renderer dizelerindeki bilgiyi, "unmasked" denilen dizeler dahil, sınırlar. Bunu doğrudan doğrulayabileceğiniz örnek kodu Fatih comment 14’te paylaşmış. Bir şeyi bozduğu iddiası tamamen yanlış
İkincisi, Firefox canvas çıktısını da rastgeleleştirir. Aynı canvas üzerinde
toDataURL()çağırırsanız, dönen değer oturumdan oturuma hafifçe farklı olur. Örneğin bunu gizli mod/normal mod ya da farklı container tabs arasında test edebilirsinizÜçüncüsü, yukarıdaki özellik ve yakın tarihli diğer parmak izi korumaları, ağı bozmadan etkili çalışmaları için ampirik analiz temel alınarak tasarlandı. Bunların çoğu varsayılan olarak etkindir; daha fazlasını istiyorsanız ayarlardan “Enhanced Tracking Protection” seçeneğini strict yapabilirsiniz
Dördüncüsü,
resistFingerprintingmodu ayarlarda yoktur ve yalnızcaabout:configüzerinden erişilebilir; çünkü web’i bozabildiği biliniyor. Tor Browser gibi bir Firefox çatalı için korunuyor, ama kişisel görüşüm Enhanced Tracking Protection tarafındaki korumanın çok daha iyi olduğu yönündeParmak izi takibini savunuyor değilim, ama işimin bir kısmı nedeniyle bot engelleme araçlarıyla ilgileniyorum
Cloudflare’ın Turnstile ile hedeflediği şey, insanların CAPTCHA çözmesini gerektirmeyen bir bot savunma widget’ı üretmek gibi görünüyor. Muhtemelen parmak izi takibiyle birden çok sitedeki davranışı gözleyip kullanıcıların çoğunu geçiren bir sistemdir; doğru anlayıp anlamadığımı merak ediyorum
Parmak izi takibi olmadan da CAPTCHA çözümü gerektirmeyen bir widget mümkün mü? Baştan mümkün mü? Turnstile’ı aşmanın o kadar da zor olmadığı da söyleniyor :tm:. Bütün bot engelleme widget’ları sonuçta belirsizliğe dayalı güvenliğe mi mahkûm?
Kullanıcının farklı sitelerde dolaşıp dolaşmadığı çok önemli değil; asıl mesele aynı siteye tekrar tekrar geleni tespit etmektir
Parmak izi takibi olmadan CAPTCHA’sız bir widget yapmak için donanım attestasyonu da işe yarayabilir. Ama bundan herkes nefret ediyor. Apple donanım attestasyonu sunuyor ve Cloudflare bunu Safari’de kullandığı için Safari, canvas rastgeleleştirmesi yapsa bile geçebiliyor. Bu blog yazısının ima ettiğinin aksine, Cloudflare Safari’ye özel bir istisna tanımış değil
Çalışma ispatı da istenebilir, ancak bu durumda sadece düşük maliyetli Android telefonlara sahip birçok web kullanıcısını dışlamayı göze almanız ve tekil bot eylemlerinin değerinin, bot operatörünün çalışma ispatı yapmasını teşvik etmeyecek kadar düşük olması gerekir. Bu koşullar bazen sağlanır ama e-ticaret siteleri veya bankalar için uygun değildir
Bunun dışında iyi bir çözüm yok. Turnstile hakkında çok şey bilmiyorum, ama benim çalıştığım şirketin ürününü büyük ölçekte aşmak gerçekten zordu. Yine de küçük ölçekte özellikle zorlaştırmamıştık; Cloudflare da aynı tercihi yaptıysa şaşırmam
Tüm bot engelleme widget’larının amacı botları imkânsız hale getirmek değil, web sitelerine bot saldırısını ekonomik olarak imkânsız hale getirmektir. Bu yüzden buradaki oyun diğer siber güvenlik alanlarından farklıdır ve belirsizlik oldukça işe yarar. Amaç, zaman geçtikçe karşı tarafa sürekli ek maliyet çıkarmaktır
canvas/webglparmak izi takibi, web scraper’lar için pratikte çözülmüş bir problemdir. Hatta web scraping odaklı iş görüşmelerinde sorulan bir konuYaygın çözüm, çizim komutlarını çıkarmaktır. Bunu komutları döken modifiye bir tarayıcıyla yapabilir veya script’in obfuscation’ını çözüp elde edebilirsiniz
Ardından çıkardığınız canvas/webgl script’ini kendi sitenize koyar, ziyaretçilerden botlarda yeniden kullanılacak parmak izleri üretirsiniz
Bu yöntem oldukça sağlamdır. Bu tür parmak izi script’leri neredeyse hiç değişmez; çünkü değiştirirseniz canvas → GPU/vendor/browser/OS eşleşmeleri veritabanı geçersiz hale gelir
Kısacası bu da sıradan kullanıcıları biraz daha uğraştıran, ama ciddi web scraper’ların zaten çeşitli atlatma stratejilerini bildiği bir başka örnek
Hacker News yorumları
Cloudflare'ın scraper tespitinde tarayıcı parmak izi toplama kullandığı biliniyor. Örneğin JA3 parmak izini kullanıcı aracısıyla karşılaştırarak cURL gibi şeyleri engelliyor, OkHttp'yi (Android istemcisi) ise izin veriyor; ancak CycleTLS gibi paketlerle kolayca taklit edilebiliyor [1]
İnternetin büyük bir kısmını “bot koruması” adına kapattığı için bunu savunmak istemem ama iş kanıtı (PoW) kullanılmayacaksa parmak izi toplama pratik bir yöntem olabilir ve bunun sonucunda ilgili herkesin gizliliği tamamen mahvolur
Android için gizlilik odaklı bir Chromium çatalı olan Cromite, Cloudflare Turnstile ile sürekli sorun yaşıyor [2]; çünkü Cloudflare challenge'ı geçirebilmek için çeşitli şekillerde parmak izi topluyor
Bunu çözmek için Cloudflare Browser Developer programına katılmak gerekiyor ama NDA imzalamak şartmış; proje yöneticisinin bunu reddetmesi makul görünüyor
Cloudflare'ın tarayıcı parmak izini ne kadar derin kazıdığını görmek için, challenge'ı geçebilmek adına hangi bayrakların kapatılması gerektiğine dair [2] numaralı issue'ya bakmak yeterli. En azından Cloudflare'ın, insanları form gönderimi veya web sitesi erişiminden doğrudan engellemek yerine iş kanıtıyla değiştirecek kadar esnek olabileceğini düşünüyorum
[1]: https://github.com/Danny-Dasilva/CycleTLS
[2]: https://github.com/uazo/cromite/issues/2365
Konut IP'leri ile ticari ağ bloklarına itibar puanı vermek, istenen sonucu elde etmenin başka bir yolu olabilir. Bu, operatörleri IP kötüye kullanımına karşı çok daha dikkatli olmaya zorlar; ama o zaman saldırgan ve savunmacı taraftaki DDoS işleri birlikte çökebilir
İronik biçimde, kendi botlarını yaparken başka şirketlerin botlarını engelleme yöntemlerine de yatırım yapan epey şirket var
5W yükü 2 saniye vermek 0.002Wh eder ve akıllı telefonların da geçmesi gerektiğinden onlara onlarca saniyelik iş kanıtı yaptırılamaz. Günde 8 milyar kontrolü 1 yıl boyunca yapsanız bile 8GWh eder
privacy.resistfingerprintingseçeneğinin “Strict” olan “Enhanced Privacy Protection”ta bile etkinleşmemesinin bir nedeni var. Uzun süre açık kullanmayı denedim ama web siteleri tuhaf biçimde bozulduğu için sürekli kapatmak zorunda kaldım ve çeşitli istisnalar ekledimBazı sitelerde saat dilimi işleme bozulduğu için birkaç kez randevuları neredeyse kaçırıyordum. Kullanıcıya Firefox'un bozulmadığını anlatmak için neredeyse “web siteleri bozulursa, garip glitch'ler görürseniz, bilgisayar saatiniz yanlışsa, fontlar tuhafsa ya da videolar bazen çıkmıyorsa buraya tıklayıp parmak izi korumasını kapatın” diyen kalıcı bir banner gerekirdi
İlginç olan şu ki Turnstile,
resistfingerprintingile bozuluyor amafingerprintingProtectionile çalışıyor. İkincisi belli ki böyle saçma durumları hesaba katıyorStrict ayarında sitelerin bozulabileceğini bir ölçüde beklersiniz ama izleme yollarının hâlâ sonuna kadar açık olmasını beklemezsiniz. Aldatıcı hissettiriyor
Az kullanılan bir tarayıcının bakımını yapıyorum[0] ve birkaç haftadır çeşitli kullanıcılar bu sorunla karşılaşıyor[1]. Şu anda bunun bir tarayıcı hatası olduğunu düşünmüyorum ama elbette ilgili hatalar olabilir; daha fazla kişinin bakması iyi olur, bu yüzden durumu iyileştirecek ya da hafifletecek fikir ve yardım arıyorum
[0]: https://konform-browser.codeberg.page/
[1]: Çoğu mu hepsi mi bilmiyorum. Telemetri olmadan kullanıcı raporlarına ve kendi testlerime dayanıyorum
“Kamufle olduğun fark edildiyse, yeterince iyi kamufle olmamışsındır.”
Bu aptal botlarla savaş, internetin çöküşüne yol açacak ve sonunda yalnızca “onaylı” kullanıcı düşmanı ajanların izinli olduğu başka bir kapalı bahçeye çevirecek. “AI scraper” denen saçmalığa kanmayın. Bu sadece rıza üretmenin bir aracı
Google ile Cloudflare, Chrome dışı tarayıcıları kullanmayı zorlaştırmak için anlaşma mı yaptı? Chrome kullanma baskısı sürekli artıyor ve Chrome'da yapılabilen reklam filtreleme giderek azalıyor
Bir şeyi gizlerseniz otomatik olarak “gizlemek için nedeni olan ajan” tarafına atılıyorsunuz
Açık olmak gerekirse asıl sorun da bu. İnternetin bu kadar büyük bir bölümü Cloudflare üzerinden geçtiği için, tek bir belirli sinyalden daha güçlü biçimde kötü niyetli olmadığınızı gösterecek alternatif sinyallerin yeterince fazla olması gerekir
Yine de aynı ayarları kullanan kullanıcı sayısı tabanda çok az olduğundan, gerçek bir çözüm ortaya çıkana kadar çok uzun zaman geçebilir
“Kimliğinizi gizlemeye çalışıyor gibisiniz” diyorlar ama baştan beri bunu talep etme hakları yoktu
privacy.resistfingerprintingayarını bilmiyordum; bundan sonra tüm Cloudflare Turnstile'ların başarısız olmasına izin vereceğimprivacy.resistfingerprintingayarı Tor Browser içindirTor Browser'ın gizlilik ve güvenlik yamalarının çoğunu alan Konform Browser ve Mullvad Browser'da da varsayılan olarak açık
Suçla ilgili veciz sözlerden biri hoşuma gider: Nüfusun X%'i bir yasayı çiğniyorsa o yasa kaldırılmalıdır. Keyif verici uyuşturucular bunun bariz örneğidir
Rastgele canvas işleme bot davranışı diye engellendiyse ve artık Firefox kullanan herkes bunu yapıyorsa, belki Cloudflare'ın da bunu “yasallaştırması” gerekmez mi diye düşünüyorum