Haftanın Hackleri: CloudBleed - Cloudflare, Firefox: Yeni Bir Fingerprint

Ziyahan Albeniz - 01 Mart 2017 -

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.

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.

Bunlardan en önemlisi şüphesiz 2005 yılından beri teorik olarak mümkünatı bilinen sha1 çakışmasının pratik olarak kanıtlanması.

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
md5 056785a447d8dd48c409904eac6ab6d8
sha1 5e6b4abb29aa9905975786f4d12577f705d78262
sha256 4211b30679eb39826eae252e2be392787e16c378d296f86e48698d08285af753
sha512 f301c07d4429f349ac6152ed8c86700da6ac78a8c0f3b184fd7bb5ddecd56dfce239b70a087b494d023e7e63aaeb4f50ab31401d61adc986731e7fe645c660c7

Görüldüğü üzere üretilen hashlerden en kısa olanı md5'e ait. Dolayısıyla, kırılması en kolay olan hash algoritması.

Nitekim 2012 yılında tespit edilen ve sızan NSA belgelerinin de doğruladığı şekliyle, İran'ın nükleer çalışmalarına ilişkin bilgileri elde etmek için hazırlanan FLAME virüsünün sisteme bulaşmasında, md5 yolu ile üretilen sertifika önemli bir rol oynadı.

Bugün shattered.io'da pratik olarak ilan edildiği gibi farklı içeriğe sahip iki PDF dosyasından aynı sha1 imzası üretilebiliyor

Hala pratik ve yakıcı bir tehdit olduğunu düşünmeyenler için ilk çakışma örneği WebKit svn repolarından geldi. Test amaçlı olarak WebKit svn reposuna yüklenen bu PDF'ler, kod reposunda hatalara sebep oldu. Aynı şekilde, dosya özetlerinde sha1 kullanan başka bir vcs sitemi olan Git de, yakın bir zamanda daha güçlü bir teknolojiye geçeceklerini duyurdu.

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.

Firefox: Yeni Bir Fingerprint -1

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:

Firefox: Yeni Bir Fingerprint -2

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 :)