Açık Kaynak Kodlu Yazılım Güvensiz Mi?

Ülkemizde açık kaynak kodlu yazılıma (AKKY) ilişkin olarak diğer ülkelerde eşine az rastlanır bir ön yargı var. AKKY ile ilgili bazı haklı eleştiriler yapılmakla birlikte bu eleştirilerin bütün yazılım kategorileri için ve bütün yazılımlar için geçerli olduğunu düşünmüyorum. Genel çekinceleri ve ön yargıları bir başka yazıya havale edip bu yazımda AKKY’nin önündeki en büyük ön yargı olduğunu düşündüğüm “yazılım güvenliği” konusuna değinmek ve AKKY’nin aslında daha yüksek seviyeli güvenlik sağladığını açıklamak istiyorum.

Öncelikle şunu söylemeliyim; telif gerektiren yazılımların genellemesini yapmak nasıl doğru değilse, AKKY’nin de genellemesini yapmak doğru değil. Çünkü bilegeldiğimiz bütün AKKY’ler aynı derecede geniş bir geliştirici topluluğuna sahip değil ve aynı büyüklükte maddi destek bulamayabiliyor. Sözgelimi Apache Foundation tarafından aktif olarak desteklenen bir AKKY ile üniversiteden yeni mezun birkaç arkadaşın üzerinde çalıştığı bir AKKY hiçbir yönüyle bir tutulamaz. Aynı durum telif gerektiren yazılımlar için de geçerlidir. Bu tür yazılımlarda da geniş bir yelpazeden söz etmek mümkün. Bizim güvenlik açısından daha avantajlı olarak gördüğümüz AKKY’ler geniş bir geliştirici kitlesine ve belirli şeffaf katkı süreçlerine sahip olanlar.

İzninizle yazılım güvenliğine iki ayrı pencereden bakmak istiyorum. İlk pencere yazılım geliştirme sürecinde bilinçsiz bir şekilde var edilen güvenlik açıklıkları. Yazılım geliştirme karmaşık bir süreç olduğu için yazılan kod maalesef güvenlik açıklıklarından az veya çok mutlaka payını alacaktır. Özellikle yazılan kod miktarı arttıkça kodun hatasız olması imkânsıza yakın hale gelir. Kod geliştirme sürecinde en önemli hususlar, güvenlik açıklarını asgari seviyeye indirecek önlemleri almaktır. Bunlar doğru bir programlama dili seçimi, sık kullanılan yazılım parçalarının belirli fonksiyonlar haline getirilerek buraların güvenliğinin özel olarak incelenmesi, kodun harici kişilerce gözden geçirilmesi gibi hususlardır. Doğru programlama dilinin seçiminde telif gerektiren yazılım geliştiricisi firmalar AKKY grupları kadar esnek olamayabilir. Çünkü firmaların mevcut personelle süregelen ilişkileri ve hali hazırda geliştirilmiş olan yazılım kütüphaneleri onları belirli programlama dillerini ön plana çıkarmaya yönlendirecektir. Ancak gerekli güvenlik önlemlerini yine de alıyor olduklarını ve programlama dilinden kaynaklı zafiyetleri asgari seviyeye indiriyor olduklarını varsayalım. Telif gerektiren yazılımlarla AKKY’ler arasındaki en büyük farklılık harici kişiler tarafından kodun incelenmesi olacaktır. Yüzlerce kişinin eşzamanlı çalıştığı çok büyük çaplı telif gerektiren yazılımlarda belki ilave güvenlik uzmanı çalıştırmak mümkün olabilir. Ancak çoğu projede yazılım geliştiricisinin yazdığı koda ilişkin güvenlik önlemlerini aldığı varsayılır. Ancak halen çoğu üniversitede bilgisayar mühendisliği ya da yazılım mühendisliği bölümünden tek bir güvenlik dersi almadan mezun olabilmek mümkündür. Ayrıca, çoğu yazılım projesinde yazılan kodun harici kişilerce gözden geçirilmesi mümkün olmaz. Bunu yapacak az sayıda firma varsa da kamu ihalelerinde sözleşmeye özellikle yazılmadıysa ihalelerde fiyat kırabilmek için bu opsiyon hayata geçirilmez. Yazılan kodun güvenliği, yazılım geliştiricisinin güvenlik algısı seviyesinde olur. AKKY’de ise geliştirici topluluğu belirli bir seviyenin üstüne ulaşmışsa güvenlik maksadıyla kodu inceleyen kişiler mevcuttur. Ayrıca AKKY geliştirme süreçleri şeffaf niteliğe sahip olduğundan değiştirilmesi önerilen bir kod onaylama süreçlerinde birkaç göz tarafından incelenme imkânı bulur. Bu süreçte gözden kaçmış bir zafiyet varsa da kodun sürekli açık olması sebebiyle çok geçmeden biri tarafından fark edilip düzeltilmesi ihtimali görece daha fazladır. Ayrıca, AKKY projelerine katkı verecek seviyede teknik birikime sahip kişiler çoğunlukla mesleki açıdan daha birikimli kişiler olur. Bu sebeple bu tür projelerin daha az bilinçsiz zafiyetle hayata geçirildiğini söylemek yanlış olmaz. Güvenlik uzmanlığı çok zor edinilen bir uzmanlık olduğu için dünya genelinde sayıca azdır. İyi nitelikli güvenlik uzmanları çok yüksek ücretlerle çalışır. Bu yüksek ücretleri karşılayabilecek firma sayısı da oldukça kısıtlıdır. Bir firmanın AKKY ile eşdeğer güvenlik gözden geçirmelerini yapabilmesi için üst düzey niteliğe sahip çok sayıda güvenlik uzmanı çalıştırması gerekir. Bu bilgiler ışığında, bilinçsiz zafiyetlerin sayısı ve kritikliği açısından AKKY’nin genel anlamda daha avantajlı olduğu söylenebilir.

Yazılım güvenliğine bakarken kullanacağımız ikinci pencere ise bilinçli zafiyet eklenmesi durumu. Yani “arka kapı” denilen, yazılım geliştirenin farkında olduğu fakat kullanıcının bihaber olduğu zafiyetler. Bu tür zafiyetler çeşitli amaçlarla kullanılabilir. En bilineni bir ülkede geliştirilen yazılımın başka ülkelerde kullanılan sürümlerinden bilgi sızdırma amacıyla yazılıma eklediği arka kapılar. Son dönemlerde basına oldukça yoğun şekilde örnekleri sızan bir vaka bu. Hatta bir adım ötesine geçerek bazı ülkelerdeki istihbarat kuruluşlarının kanun güvencesiyle o ülkede üretilen yazılımlara arka kapı yerleştirebildiğini rahatlıkla söyleyebiliriz. Ülkelerin bunu yapmasına şaşırmamak lazım, hatta istihbarat dünyasını az buçuk bilen birisi böylesi bir imkâna sahip olan bir devletin bunu kendi avantajına kullanmamasının tam anlamıyla saflık olacağını iyi bilir. Özellikle yurt dışı menşeli, yaygınlıkla kullanılan yazılımlarda söz konusu olan bu güvenlik riski AKKY’de de söz konusu mudur? Böyle bir risk mevcut olmakla birlikte ihtimalin çok daha düşük olduğunu rahatlıkla söyleyebiliriz. AKKY’nin şeffaf geliştirme süreçleri, yazılıma arka kapı yerleştirilmesi ve bunun uzun süre gizli kalmasını büyük oranda engeller. Bu risk tamamen sıfıra iner demiyorum, ama telif gerektiren yazılımda kodu inceleme lüksü bile yokken AKKY’nin sunduğu bu şeffaflık ve çok sayıda gözden geçirme imkânı AKKY’yi açık ara öne çıkarmaya yetecektir. Nitekim dünyanın önde gelen istihbaratına sahip ülkeleri olan İngiltere, Almanya, Rusya, Çin ve Fransa’da telif gerektiren işletim sistemi kullanımı kamuda ya yasak ya da çok tanımlı bazı şartlar altında kullanımına izin veriliyor. Bu ülkelerdeki kamu kurumları AKKY tabanlı işletim sistemi kullanıyor.

AKKY’de çekirdek yazılımın sağladığı üst düzey güvenliği azaltmamak için dikkat etmemiz gereken iki husus var. Birincisi eklentiler. Bilindiği üzere bu tür yazılımlar üzerine eklenti geliştirilebilecek şekilde tasarlanıyor. Çoğu zaman eklentilerin kolayca kurulabileceği bir sistem tasarımı var. Ancak eklentiler çekirdek yazılım kadar güvenli geliştirilmiyor. Çoğu eklentinin geliştirici kitlesi birkaç kişiyi geçmiyor. Bu yüzden herhangi bir eklenti güvenliğinden tam olarak emin olunmadan eklenmemeli. İkinci önemli husus da yazılımın yeni sürümleri çıktıkça gerekli güncellemelerin yapılması. AKKY’nin şeffaf geliştirme süreçleri, ortaya çıkan bir güvenlik açığının kısa sürede geniş bir kitle tarafından bilinmesi sonucunu doğuruyor. Ancak belirli bir geliştirici kitlesine sahip yazılımlarda ortaya çıkan zafiyetler çok kısa sürede kapatılıp yazılımın yeni sürümleri yayınlanıyor. Güncellemeler takip edilir ve vakitlice sisteme yansıtılırsa herhangi bir risk durumu ortaya çıkmayacaktır. Benzer bir risk dünyaca bilinen telif gerektiren yazılımlarda da aynen mevcuttur. Bu yazılımlarda ortaya çıkan zafiyetler de kısa sürede tüm dünya tarafından bilinir hale geliyor. Bununla ilgili okuduğum istatistiklere göre, AKKY’de bu açıklıkların kapatılma süresi göreceli olarak daha kısa.

Bu yazıda AKKY’nin lisans tasarrufu, sürdürülebilirlik, açık standartları desteklemesi gibi avantajlarına değinmedim, yaygın bir yanlış kanaat olan AKKY’nin güvensiz olduğu düşüncesine karşı argümanları açıklamaya çalıştım. Umarım konuyla ilgilenen kişilere faydası olmuştur.

Güvenli bir gelecek dileklerimle.

Yorumlar
  • Volkan
    Cevapla

    Elinize Sağlık,

Yorum Yapın