Haftanın Hackleri: CloudBleed - Cloudflare, Firefox: Yeni Bir Fingerprint
2016 yılı geriye bir alışkanlık bıraktı. Her ayın son haftasını sansasyonel güvenlik haberleri ile kapatmak. Aralık 2016'dan beri devam eden bu furyanın Şubat ayındaki izdüşümü ise gelecek bir yılı etkisi altında bırakacak denli ciddi güvenlik zafiyetleri.
2016 yılı geriye bir alışkanlık bıraktı. Her ayın son haftasını sansasyonel güvenlik haberleri ile kapatmak. Aralık 2016'dan beri devam eden bu furyanın Şubat ayındaki izdüşümü ise gelecek bir yılı etkisi altında bırakacak denli ciddi güvenlik zafiyetleri.
sha1'in de dahil olduğu hash algoritmaları sertifika doğrulamadan, bütünlük kontrollerine kadar pek çok alanda kullanılıyor. Dosyaların bütünlük kontrolleri, satır satır kontrol edilmek yerine, hizmete sunulan dosyanın bir hash özeti vasıtası ile yapılıyor. Sertifika dünyasında keza CA'ların sertifika imzaları, sertifikanın parmak izi olarak bilinen, hash değeri üzerinden yapılıyor.
Dolayısıyla aynı hash'e sahip iki sertifika üretilebildiği takdirde rahatlıkla güvenli bağlantılar dinlenebilir, ya da dosya bütünlükleri saldırganların lehine üretilen hashler ile değiştirilebilir hale geliyor.
Özet işlemleri md5, sha1, sha256 ve sha512 gibi yaygın olarak kullanılan algoritmalardan biri ile yapılıyor. Bir algoritmanın değeri çakışmaya mahal vermeyecek tekillikte, dolayısıyla uzunlukta bir hash değeri üretmesi olacağından, en uzun değeri üreten hash algoritması, kırılması en güç algoritma olacaktır.
Örneğin: "Netsparker" metninin hash'ini md5, sha1, sha256 ve sha512 algoritmaları ile alacak olursak:
Metin | Algoritma | ||||||||
---|---|---|---|---|---|---|---|---|---|
Netsparker |
|
Görüldüğü üzere üretilen hashlerden en kısa olanı md5'e ait. Dolayısıyla, kırılması en kolay olan hash algoritması.
Bugün shattered.io'da pratik olarak ilan edildiği gibi farklı içeriğe sahip iki PDF dosyasından aynı sha1 imzası üretilebiliyor
Sertifikalarınız sha1 bir imzaya sahip ise, uzun bir süredir tarayıcılar tarafından güvensiz olarak işaretlenmeye başlamıştır. Dolayısı ile sertifika imzalarında daha güçlü bir algoritma kullanmalıyız.
CloudBleed- Cloudflare
Cloudflare, yaygın olarak kullanılan bir reverse proxy hizmeti. Bilinenin aksine sadece DDoS saldırılarına karşı koruma sağlamıyor. On-the-fly olarak sayfalara örneğin bir kütüphane, analytics kodları eklemekten tutun da HTTP URL'leri HTTPS olarak değiştirmeye, eposta adreslerini gizlemeye kadar pek çok artı özellik sunuyor.
İkinci vakamız da bu noktada. Cloudflare'in bu hizmetleri vermesini mümkün kılan HTML parserındaki bir hata, hassas bilgilerin ifşasına yol açtı. Yakın zamanda, kullandıkları parserı, cf-html olarak adlandırdıkları yeni bir ürün ile değiştirmeye karar veren Cloudflare, bu koddaki bir hata nedeni ile oluşan hataları output etti. Bu sayede de hassas bilgi içeren web istekleri görülebilir hale geldi. Dahası arama motorları tarafından indexlendi.
Google Project Zero'dan Tavis Ormandy'nin raporladığı zafiyet çok kısa sürede en başta cf-html kütüphanesinin devredışı bırakılması ile onarıldı. Arama motorları tarafından indexlenen içeriklerin silinmesi de devam eden çalışmalar arasında. Ayrıntıları Cloudflare'in yayınladığı Incident Report'dan okumak mümkün.
Cloudflare servisini kullanıyorsanız, oturum cookielerinin ifşa olması ihtimaline karşı geçerli oturumları sonlandırmanız öneriliyor. Yine tedbiren kullanıcılarınızı şifre değişikliğine zorlayabilirsiniz.
Arama motorlarında sorgulama yaparak sitenize ait ifşa olan bir bilgi olup olmadığını kontrol edebilir, sonuçların kaldırılması için başvurabilirsiniz.
Firefox: Yeni Bir Fingerprint
Güvenlik terminolojisinde fingerprint, bir takım davranışlardan sistem ile ilgili bazı özel bilgileri çıkarsamaya verilen genel bir ad. Konumuz özelinde ise, bir davranıştan hareketle browser türü ve versiyon bilgisini edinme işlemi diyebiliriz.
Gün geçmiyor ki yeni bir fingerprint yöntemi ilan edilmesin. Bu sefer ki ise sadece Firefox tarayıcıları etkileyen ve hala geçerli olan bir yöntem.
Yöntem basit olarak güvenli bağlantı kurulum akışında, Firefox'un kullandığı bir fallback mekanizmasına dayanıyor.
Sertifika otoriteleri, site sertifikaları dışında, ikinci bir tip sertifika, ara otorite sertifikaları da imzalayarak, yetkilerinin bir kısmını devredebilmektedir. Esasen bu ara otoritelerin varlığı, olası bir ele geçirilme durumunda sayıca daha az bir kümenin bundan etkilenmesi gibi olumlu ve önemli bir varsayıma dayanıyor.
Kök sertifika otoriteleri tarayıcılarımız tarafından bilinirken, ara sertifika otoritelerine ait sertifikalar ise güvenli bağlantı kurulan siteler aracılığı ile sağlanıyor.
Dolayısı ile güvenli bağlantı ile erişilmek istenen site hem kendi sertifikasını, hem de sertifikasını imzalayan ara (intermediate) sertifika sağlayıcının sertifikasını servis etmek zorunda. Buradan hareketle geçerli bir akış şeması aşağıdaki şekilde olmalıdır.
SSL doğru bir biçimde implemente edilmediği durumlarda, yani ara otorite sertifikası, sitenin kendi sertifikası ile birlikte servis edilmediği durumlarda hata oluşacaktır:
Bu noktada Firefox'un kullandığı fallback mekanizması, kullandığımız browserın fingerprint edilmesine yol açıyor. Şöyle ki, eğer ara sertifika otoritesine ait sertifika ile daha önceki bir güvenli bağlantıda karşılaşıldı ise Firefox tarafından bu ara otorite sertifikası cacheleniyor. Dolayısıyla, aynı sertifika otoritesi tarafından imzalanan bir sertifikaya sahip başka bir siteye erişildiği takdirde, yukarıdaki doğru implementasyona ait akış sağlanmasa bile, Firefox cachelediği ara sertifikası ile durumu tölere ediyor ve hatayı önlüyor.
Peki bu ne gibi bir güvenlik riskine sebep olabilir?
Saldırganın kasıtlı bir biçimde SSL 'i yanlış bir biçimde implemente ettiği siteye hatasız bir biçimde erişilebiliyorsa, bu siteyle aynı ara sertifika otoritesine sahip siteye girildiği bilgisi ifşa olabilir.
Örneğin reklamcılar, daha önce erişilen sitelerin tespiti üzerinden bir profilleme yapabilirler.
İkinci olarak, genellikle ara sertifika otoritelerinin hizmet verdiği kişiler genelde bir bölgeye mahsus olabilir. Bu fingerprint'i raporlayan Klink''in ifadesi ile örneğin Deutsche Bundestag CA (Alman Parlamentesuna ait bir CA) ara sertifikasını cacheleyen bir kullanıcı muhtemelen ya Almanya'da yaşıyordur, ya da Alman siyaseti ile ilgileniyordur.
Dahası var, zararlı yazılım yayan kişiler de, zararlı yazılımın bir sandbox içerisinde çalışıp çalışmadığını, sandbox ortamlarında yalnızca belirli sertifika otoritelerinin yüklü olduğu varsayımından hareketle algılayabilirler.
Ama en kötüsü, Firefox'un gizli ve public oturumlarında aynı sertifika cache'ini kullanması, public ve private tarayıcı oturumlarının ilişkilendirilmesine yol açabilir.
Araştırmanın detaylarına Fingerprinting Firefox users with cached intermediate CA certificates (#fiprinca) yazısından ulaşabilirsiniz.
Haftayı kapattığımız bu güvenlik haberlerine rağmen, güvenli bir hafta diliyoruz :)