Zoom’da bir güvenlik açığı ve hackerlar ile geliştiriciler arasındaki savaş

DEF CON 30 çıkarımları: macOS için Zoom’da güvenlik açığı

Mart 2020’de bütün dünya uzaktan çalışmayla ilgilenmeye başladığı sırada dünyanın en önde gelen uzaktan iletişim araçlarından biri olan Zoom’un yükleyicisinde Apple bilgisayarlarda rastgele kod yürütmeyi mümkün kılan bir güvenlik açığı keşfedildi. Zoom güvenlik açığını onardı, en azından kısmen. Ağustos 2022’ye geldiğimizde (hem konum hem de kötüye kullanımın sonuçları açısından) benzer bir açık daha bulundu. Bu yazı, bu son güvenlik meselesini inceliyor ve yazılımlardaki açıkların neden bazen tekrar tekrar aynı noktada çıktığını açıklamayı amaçlıyor. Yazının sonunda konuyla ilgili neler yapılabileceğine dair tavsiyeler yer alıyor.

Bu son güvenlik açığı nedir?

Zoom video konferans istemcisindeki yeni sorun, bu yıl Ağustos ayının başında tanınmış araştırmacı Patrick Wardle tarafından DEF CON 30’da vurgulandı. Kısaca anlatmak gerekirse Apple Zoom istemcisinin otomatik güncelleme sistemi içerisinde birkaç hata bulundu. Bu hatalar teoride potansiyel bir saldırganın ana bilgisayarda ne isterse yapmasını sağlayan süper kullanıcı hakları edinmesini mümkün kılıyordu. Ne var ki güvenlik açığını kötüye kullanabilmek için saldırganın özel hakları olmasa bile halihazırda bilgisayara fiziksel erişimi olması gerekiyordu. Bu tamamen gerçek dışı bir senaryo değil; örneğin, kullanıcı öğle yemeğine çıkarken bilgisayarını kilitlemeyi unutabilir. Teorik olarak bu güvenlik açığı normalde kullanıcıya ciddi zararlar veremeyecek kötü amaçlı yazılımlar tarafından da kötüye kullanılabiliyordu.

Daha fazla ayrıntı

Güncellemelerin zamanında gelmesi ve kolay yüklenmesi, tüm modern yazılımlar için önemli birer gereklilik. İdeal olarak hata düzeltmeler kullanıcının haberi bile bile olmadan yüklenmeli, ancak bu her zaman mümkün olmuyor. Bir güncellemeyi tamamlamak için çoğunlukla programı yeniden başlatmak, yeniden oturum açmak, hatta bilgisayarı yeniden başlatmak gerekiyor. Hepimiz bir programı, işletim sistemini, akıllı telefonu ya da tablet ürün yazılımını güncellememizi hatırlatmak için çıkıp duran mesajlara sinir oluyoruz. Fakat bu güncellemeleri yapmak hayati önem taşıyor. Güncellemeler, size karşı kullanılabilecek güvenlik açıklarını kapatıyor. Daha ciddi bazı durumlarda, güvenlik açığı bulunan yazılımları aktif siber saldırılara karşı derhal koruma altına almak gerekiyor. Bir günlük bir gecikme verilerinize mal olabiliyor.

Bir macOS uygulamasını güncellemenin standart yolu ilk kez yüklemekten farklı değil: Yeni sürümü indirip dosyayı çalıştırıyor ve kullanıcı parolasını giriyorsunuz. Zoom bu prosedürü basitleştirmeye çalıştı: İstemci sunucuya erişiyor, yeni sürümü indiriyor ve kullanıcının parola girmesine gerek kalmadan her şeyi kendi kendine yüklüyor. Ne yazık ki sunucuyla iletişim kurma, ardından güncellemeyi indirme ve yükleme süreci her zaman doğru şekilde uygulanmıyor. Bundan on yıl önce, veri şifreleme olmadan sunuculara erişmek yaygın olan uygulamaydı. Bu da potansiyel bir saldırganın güncelleme dosyasını kötü amaçlı bir yazılımla değiştirebilmesine olanak sağlıyordu. Şifreleme uygulanması bu durumu daha karmaşık hale getirse de indirme işleminin ardından dosyanın diskte kayıtlı olduğu ama henüz yüklenmediği bir sırada dosyayı değiştirmek hala mümkün.

Zoom’un son sürümünde (geçen yıl itibarıyla, Patrick araştırmasına başladığı sırada) her şey yolunda görünüyordu. İstemci güvenli bir kanaldan özel bir güncelleme sunucusuna erişiyor, dosyayı indiriyor, orijinalliğini kontrol ediyor (sağlayıcının sertifikasıyla imzalanıp imzalanmadığını kontrol ediyor) ve yüklüyordu. SW indirme için sistemden süper kullanıcı hakları istiyor ama bunu kullanıcının parola girmesine gerek kalmayacak şekilde yapıyordu.

Patrick Wardle’ın sunumundan güncellemeleri imzalamanın faydalarını gösteren bir alıntı. Kaynak.

 

Dijital imza önemli. Ne de olsa program, internetin bir yerlerinden kullanıcının bilgisayarına indiriliyor ve maksimum ayrıcalıkla çalışıyor. Dolayısıyla bunun doğru program olduğundan emin olmalısınız. Yalnızca indirilen dosya üstünde sahtekarlık yapmak da işe yaramıyor. Yukarıda Patrick’in sunumundaki slaytta da görüldüğü gibi, dosya değiştirildiğinde hata mesajı çıkıyor; sahte güncellemenin dijital imzası yok ve dijital imzanın sahtesini yapmak çok zor.

Ancak ne yazık kı dijital imza doğrulama sürecinin kendisi kusurluydu. Bir sistem yardımcı programıyla çalışıyordu. Bu program, indirilen güncellemenin dijital imza parametrelerini gösteriyordu. Bu parametreler arasında sertifikayı hangi şirketin aldığını belirten bir satır da vardı:

Zoom Video Communications, Inc. Developer ID Certification Authority Apple Root CA

Yardımcı programın çıktısı işleniyor ve bu satır mevcutsa yükleme başlıyordu. Problem, dosya adının da çıktıda görünmesiydi. Yani, teorik olarak bir saldırgan, standart “ZoomUpdate.pkg” yerine “Zoom Video Communications, Inc. Developer ID Certification Authority Apple Root CA.pkg” diye adlandırdığı kötü amaçlı bir güncelleme oluşturabilirdi. Bu da doğrulama prosedürünü kandırmak için yeterli olurdu. Ne de olsa gerekli satır mevcut olacaktı, dolayısıyla yardımcı programa göre dosya meşru olmalıydı, dosya yanlış olsa ve sihirli sözcükler yanlış yerde bulunsa bile!

Bu tür bir saldırı şöyle görünecekti: Güncelleme doğrulama prosedürü başlatılacak (bunu yapmak zor değil), ardından resmi güncelleme indirilecek, kötü amaçlı yazılımla değiştirilecek ve bozuk sertifika doğrulama sürecini kandıracak şekilde yeniden adlandırılacaktı. Kötü amaçlı dosya sistem ayrıcalıklarıyla yürütülecek ve bilgisayar hacklenecekti!

Ancak 20 Aralık 2021’de bu saldırı vektörünü durduran bir Zoom güncellemesi yayınlandı. Değişiklik basitti: İndirmenin ardından dosya zorla yeniden adlandırılıyordu. Fakat Patrick Wardle saldırıyı modifiye etmeyi başardı: Zoom 5.9.0 sürümünden itibaren güvenliyse istemciyi daha eski bir sürüme “güncellersek” ne olacaktı? Bu yaklaşım işe yaradı; eski güncelleme geçerli bir dijital sertifikaya sahipti ve yükleme sırasında sürüm kontrol edilmedi.

Bu kadar büyük olan mesele ne?

Patrick Wardle’ın araştırması, güncelleme dağıtma ve yükleme güvenliğinin ne kadar önemli olduğunu ortaya koydu. Dahası, bu hatanın hikayesi, yazılım geliştiricilerin nasıl çoğunlukla bir problemi ayrıntılarıyla anlamadan basit değişikliklerle çözmeye çalıştığını net bir şekilde gösterdi. İlk başta (henüz Wardle problemi Zoom’a bildirmeden önce), Aralık 2021’de, saldırının en basit versiyonunu dosyayı değiştirip sertifika doğrulama kısmını pas geçerek yenmişlerdi. Güvenlik açığı bildirildikten sonra, Nisan 2022’de, standart güncelleme dağıtım mekanizmalarıyla eski sürüme güncelleme, yani Zoom’un daha eski ve güvenlik açığı bulunan sürümlerini yükleme opsiyonunu kapattılar. Ancak dijital sertifika doğrulama mekanizmasını onarmaları, Wardle’ın bildiriminden altı ay sonrasını, Haziran 2022’yi buldu.

Fakat bu da sorunu tamamen çözmeye yetmedi. Evet, güncelleme dosyasını kötü amaçlı yazılımla değiştirme ve güvenlik açığı bulunan eski sürüme güncelleme gibi iki basit saldırı yöntemi hackerların elinden alınmıştı. Ancak başka bir sorun daha vardı: Süper kullanıcı ayrıcalıklarıyla yürütülen bir güncelleme dosyası, bilgisayara erişimi olan herkes tarafından modifiye edilebiliyordu! Saldırganın ihtiyacı olan tek şey, doğru anda, yani dijital imza doğrulandıktan sonra ama yükleme başlamadan önce, kötü amaçlı dosyayı Zoom yükleyicisine eklemenin bir yolunu bulmaktı. Bu da gerçekten işe yaradı. Sonuç olarak, Patrick Wardle bu bulguları Ağustos 2022’de DEF CON 30’da sunduğu sırada (Zoom’a problemi bildirdikten sekiz ay sonra) güvenlik açığı hala tam olarak yamalanmamıştı! Geliştiriciler ancak 17 Ağustos’ta, Patrick’in raporundan beş gün sonra, sorunu yamaladı. Ne var ki bunun da bağımsız olarak doğrulanması gerekiyor.

Hackerlar ve geliştiriciler hakkında

Patrick Wardle’ın raporunu okurken insan işlerin neden bu şekilde yapıldığını sorgulamadan edemiyor. Yazılımların kritik kısımlarında nasıl bu kadar çocukça güvenlik hataları ortaya çıkabilir ve böyle bir sorun nasıl bildirildikten sekiz ay sonra, ancak üçüncü denemede giderilebilir? Geliştiricileri yetersizlikle suçlamak istemiyoruz. Her programda hatalar ortaya çıkabilir. Tüm programlayıcılar hata yapıyorsa hepsine sayıp sövmek sorunu çözmeyecektir; dünyada başka geliştirici yok.

Belki de bu durumun sebebi, (bulgularını sağlayıcılara bildiren) beyaz şapkalı hackerların ve (kullanıcılara saldırmak ve kar elde etmek için açıkları kötüye kullanan) siber suçluların yazılım geliştiricilere kıyasla farklı önceliklere sahip olmasıdır. Bir program geliştirirken, programın yüzlerce farklı görevi doğru şekilde yerine getirmesi hayati önem taşır. Önceliğiniz kullanıcıları konfor alanında tutmaktır. Bu da Zoom örneğinde iyi iletişim kalitesi ve farklı işletim sistemlerine sahip binlerce eski ve yeni cihazla uyumluluk anlamına geliyor. Öte yandan hackerın tek ihtiyacı, kirli işlerine alet edebileceği tek bir hata bulmak. Şimdi birinin size bir güvenlik açığı bildirdiğini düşünün. Evet, yamalamanız gerekiyor, ancak bunu istemci-sunucu yazılımının hassas sistemini bozmadan yapmanız gerekiyor. Yüzlerce farklı konfigürasyonla test etmeniz gerekiyor. Doğal olarak, geliştirici sorunu en az modifikasyonla çözmek ister. Bu da çoğunlukla yeterli gelmez.

Programlar her ufak yamayla giderek daha güvenli hale gelir. Olası tüm problemleri çözüp ideal uygulamayı şıp diye yaratmazsınız. Ya da sadece sıfırdan başlayarak yaratabilirsiniz. Fakat bazı kritik öğelerin mümkün olan en iyi şekilde tutulması gerekir. Güncelleme dağıtım sistemi de kesinlikle bunlardan biri. Biz kullanıcılar, bilgisayarlarımıza yüklediğimiz programlara güvenebilmeliyiz. Bu açıdan Zoom güvenlik açıklarının hikayesi, bağımsız bir araştırmacıyla bir geliştiricinin problemi çözmek üzere birlikte çalışmasına dair olumlu bir örnek. Geliştiricinin sorumluluk sahibi yaklaşımını net bir şekilde gösteriyor.

Bu hikayeyi önemli bir hatırlatmayla bitiyoruz: Kötü amaçlı yazılımlar bilgisayara çoğunlukla yazılımın ilk yüklendiği sırada girer. Bu yüzden yardımcı programların resmi kaynaklardan indirilip indirilmediğini kontrol etmek, mümkünse uygulama mağazalarını kullanmak ve hiçbir koşul altında şüpheli web sitelerinden program indirmemek büyük önem taşır. Aksi takdirde verileriniz, resmi yazılımlardaki karmaşık güvenlik açıklarını kötüye kullanmaya hiç gerek kalmadan, çok basit hackleme yöntemleriyle çalınabilir.

İpuçları