Infografik: Açık Kaynak Kodlu 104 Web Uygulamasını Taradık
2016 yılında toplam 104 uygulama taradık ve bunların 31’inde 129 güvenlik açığı tespit ettik. Bu da uygulamaların %29.8’inin bir ya da daha fazla web uygulama zafiyeti barındırdığı anlamına geliyor.
Her yıl, Netsparker web uygulaması güvenlik tarayıcısının açık kaynak kodlu uygulamalarda otomatik olarak tespit ettiği zafiyetlerle ilgili bir dizi istatistik yayımlamaktayız. Netsparker, heuristic (keşifsel) bir web uygulaması güvenlik tarayıcısı olduğundan, tüm bu güvenlik zafiyetleri keşifsel bir şekilde tespit edilmiştir. Yani tespit işlemi, zafiyetlerin imza bilgilerine (signature) bakılarak yapılmamıştır. Yaptığımız tarama ve araştırmaların sayısını yazının ilerleyen bölümlerinde bulabilirsiniz.
Test için Neden Açık Kaynak Kodlu Uygulamaları Kullanıyoruz?
Tam isabet seviyesinde web tarama teknolojimizi test etmek için açık kaynak kodlu uygulamaları kullanıyoruz; çünkü uygulamaların çeşitlilik arz etmesini istiyoruz. Forum, blog, alışveriş sitesi, sosyal ağ vb. hayal edebileceğiniz bütün türlerde web uygulamasını bu çeşitliliğin içerisinde bulabilirsiniz. Ayrıca dil olarak, PHP, Java, Ruby on Rails, ASP.NET vb. tüm dillerde yazılmış uygulamalara rastlamanız mümkün. Hatta 2016 yılıyla birlikte test laboratuvarımızdaki çeşitliliği artıran NodeJS, Python ve buna benzer framework’lerle yazılan uygulamaları dahi görebilirsiniz.
Testlerimizde açık kaynak kodlu uygulamalar kullanmamızın bir diğer sebebi ise toplum yararına dair bir şeyler yapma isteğimizden kaynaklanıyor. Bu uygulamaları tarayarak ve bulduğumuz 0day güvenlik açıklarını geliştiricilere bildirerek, açık kaynak kod geliştiricilerinin daha güvenli uygulamalar üretmesine yardım ediyoruz.
Hatta kendimizi, açık kaynak kod geliştiricilerine destek olma işine o kadar adadık ki tüm açık kaynak kod geliştiricilerine, Invicti Enterprise ürününü ücretsiz olarak veriyoruz.
Açık Kaynak Kodlu Web Uygulamaları, Bulunan Zafiyetler ve 2016’ya Dair Rakamlar
Kaç Uygulama Tarandı ve Ne Kadar Açık Bulundu?
2016 yılında toplam 104 uygulama taradık ve bunların 31’inde 129 güvenlik açığı tespit ettik. Bu da uygulamaların %29.8’inin bir ya da daha fazla web uygulama zafiyeti barındırdığı anlamına geliyor.
Netsparker, Kaç Tane 0day Zafiyet Tespit Etti?
2016 yılı boyunca yaptığımız test taramalarında 31 0day zafiyet tespit ederken, 27 advisory yayımladık. Kalan 6’sını 2017’de yayımlayabildik. Her zaman advisory yayımlamamız mümkün olmayabiliyor. Ne yazık ki bazen bu bilgileri yayımlamamızı engelleyen pek çok durumla karşılaşabiliyoruz.
Peki ya Diğer Zafiyetler?
Netsparker tarafından bulunan diğer 98 zafiyet, tespit edildiği sıralarda zaten bilinen zafiyetlerdi. Bununla birlikte henüz fix’lenmemişlerdi. Bu açıkların da kaydını tutmamızın iki sebebi var:
- Otomatize tarayıcımızın verimliliğini ölçmek. Mesela bilinen zafiyetler olduğu halde Netsparker bunları tespit edemiyorsa bu, hiç de iyi bir iş çıkaramıyoruz demektir. Bereket ki Netsparker sadece bu bilinen zafiyetleri değil ek olarak 31 0day açığını da ortaya çıkararak, testleri alnının akıyla bitirebilmeyi başardı.
- Bu zafiyetler her ne kadar bilinen zafiyetler olsalar da söz konusu uygulamanın test ettiğimiz son sürümlerinde henüz fix’lenmemişlerdi. Yani bu uygulamaları yükleyen biri, istismara açık bir uygulama yüklemiş olacaktı.
Taradıklarımız Arasında Güvenli Uygulamalar Daha Mı Fazlaydı?
2015 ve 2016 yılları boyunca, 2014’te yayımladıklarımızdan daha az advisory yayımladık. Peki, bu durum daha fazla, güvenli uygulamayla karşılaştığımız anlamına mı geliyor? Cevap, hem evet hem hayır.
Evet, çünkü bazı web uygulama projeleri yıllardır devam eden projeler olduğundan daha güvenli hale geldiler. Bu uygulamaların geliştiricileri daha fazla tecrübe edindiler ve daha çok şey öğrendiler. Bunlara en iyi örnek Wordpress olacaktır. Hatta Wordpress’in çekirdeğinin (core) çok güvenli olduğunu söyleyebiliriz.
Diğer yandan, her gün yeni bir açık kaynak kodlu uygulamanın duyurusu yapılıyor. Tabi ki yeni geliştirilmiş bir uygulamanın bir zafiyet barındırma ihtimalinin çok yüksek olacağını unutmamak gerekir. Yani oralarda bir yerlerde mutlaka istismara açık uygulamalar olacaktır.
Ufak not: Taranan 26 uygulama birer Wordpress eklentisiydi ve bunların 8’inde güvenlik açığı mevcuttu.
2016’da Açık Kaynak Kodlu Uygulamalarda Tespit Edilen En Yaygın Güvenlik Açıkları
Tespit edilen en yaygın güvenlik açıkları neler? İşte sayılar:
- XSS / Cross-site Scripting (reflected, stored, DOM, Blind): 103
- SQL Injection: 17
- Frame Injection: 3
- Open Redirection: 3
- HTTP Header Injection: 1
- Remote Code Execution: 1
- Cross-site Request Forgery / CSRF: 1
En yaygın açığın %81.9 oranla Cross-site Scripting olduğunu görüyoruz. Sonrasında ise SQL Injection geliyor. Bu durumun olağan dışı bir şey olmadığını söyleyebiliriz. Zira geçen seneki sonuçlarda 180 XSS, 55 SQL Injection zafiyeti bulunuyordu.
Kilit Unsur: Web Güvenliğinde Otomasyon
Yukarıdaki veriler ışığında, istismara açık bir web uygulamasının ortalama olarak 6.6 adedinde zafiyet barındırdığını söyleyebiliyoruz. Kötü niyetli hacker’ların, emirlerine amade bunca zafiyeti gördüklerinde çok mutlu olduklarından eminiz.
Şöyle veya böyle, ortalama bir web uygulamasının binlerce olmasa da yüzlerce muhtemel saldırı yüzeyini (attack surface) barındırması beklendik bir durum. Web uygulamaları her geçen gün daha da karmaşık hale geliyor. Güvenliği otomatize etmediğiniz takdirde güvenli bir uygulama geliştirmenin önünü kapatmış oluyorsunuz. Bazıları bu fikre katılmayabilir. O zaman şu soruyu sorarız: bir web uygulaması geliştiricisi olarak, uygulamanızda bulunan tüm saldırı yüzeylerinin bütünüyle güvenli olduğunu, yüzlerce farklı zafiyet varyasyonunu elle deneyerek nasıl kontrol edeceksiniz?
Elbette bunu başarmak imkansız. Burada yardımımıza yetişen şey otomasyon olacaktır. Netsparker olarak odaklandığımız nokta da budur. Biz, sadece bir tarayıcı geliştirmiyoruz. Biz, tam isabet seviyesinde tarama sonucu üreten bir web uygulaması güvenlik çözümü geliştiriyoruz. Yani yaptığımız iş neticesinde, bulguları elle doğrulamak için vakit kaybetmenize gerek kalmıyor.
Açık Kaynak Kod Projeleri İçin Ücretsiz Web Uygulaması Güvenlik Tarayıcısı
Daha güvenli uygulamalar geliştirmek için teklifimizi mutlaka değerlendirin. Eğer bir açık kaynak kod geliştiricisiyseniz, ücretsiz bir Invicti Enterprise hesabı alabilir ve uygulamalarınız üzerinde otomatikleştirilmiş taramalar yapabilirsiniz. Bu arada incelemek isterseniz; hali hazırda, OpenCart gibi, bazı açık kaynak kod projelerinden ürünümüzü ücretsiz bir şekilde kullanan uygulamalar mevcut.