Kötü kod, iyi kod
Ticari veya açık kaynak kodlu olsun tüm antivirüs yazılımlarının imza tabanlı virüs yakalama yöntemlerine ek olarak kullandığı heuristic analiz, Türkçe’si buluşa dayalı ya da buluşsal diyebileceğimiz yöntem, bu tip yazılımların daha etkili olmasında önemli bir rol oynar. Her ne kadar fikir harika olsa da uygulanmasının neden zor olduğunu bir benzetme ile açıklamakta fayda var.
Bir kod kümesinin niyetinin bozukluğu ya da düzgünlüğünü analiz etmek, gerçek hayatta kişiler için aynı analizi yapmaktan çok da farklı değildir. Bilgisayarların en önemli avantajı olan tekrarlanması gereken işlemlerin hızlı biçimde bitirilmesi, bilgisayar sistemlerine bulaşan ve bunlar üzerinde yayılan virüslerin zararlı etkilerini çok daha hızlı şekilde genişlemesine sebep olur. Gerçek hayatta mümkün olmayan kötü adamın kendini klonlaması, virüslerin sürekli olarak yapageldiği ve verdikleri zararın üssel artmasına izin veren yegâne olgudur.
Gerçek hayatta polislere, “sokağa çıkın, size şüpheli görünen ne kadar şahıs varsa toplayın getirin” demek ne kadar zararlı ise ve kurunun yanında ne kadar yaş yanar ise, bilişim sistemlerinde de benzer bir etkiye sebep olmak işten bile değildir. Heuristic analizin kurallara ve sanal makine kullanımına bağlı uyguladığı yöntemler, çoğu zaman false positive, yani virüs olmadığı halde virüs olarak tanımlanan ve kritik dosyaların kullanılamaz hale getirilmesi, sistemden kaldırılmaları ile sonuçlanır. Hiçbir güvenlik sistemi, bu yüzden, uzmanlar tarafından takip edilmediği sürece tam değildir ve niyet belirlemesi topyekûn koda bırakılamaz.
Antivirüsün, “elimdeki listeye bakar, listedekileri siler, gerisine izin veririm” yönündeki yaklaşımı hiçbir sistemi tam güvenli kılamaz. Benim öngördüğüm iki çözüm var: 1. Kapalı platformlar, 2. Işlemcide gömülü olan managed frameworkler. Birinci çözüm bugün tüm kapalı platform olarak tanımlanabilecek telefon, tablet ve benzeri SOC tasarımını kullanan donanım ve bilişim platformları ve benzerleri. Kodun çalışmadan önce insan ve makine kontrollerinden geçip, sertifikasyona tabi tutulması sonrasında imzalanması ve izin alması; bu yöntem, white-listing diye telefon-tablet öncesi masaüstü işletim sistemlerinde varolan kavram ile aynı. İkinci çözüm ise uygulanması biraz daha zor olan ve fakat masaüstü işletim sistemleri hayatlarına devam edecek mutlaka bir gün uygulanması gereken bir çözüm. Bytecode olarak sınıflandırılan, kodun çalıştığı yazılımsal yorumlayıcı ve çalışma zamanı kontrol edicinin işlemcide çalıştığı ve çalışan kodun tüm yaşamı boyunca takip edildiği bugün bir sistem olsa, virüslere, kötü niyetli, art niyetli yazılımlara karşı savaşta sanırım önemli bir adım atılmış olur. Bu konuda hardware assisted security kavramını araştırmanızı tavsiye ederim.