#20220274 Sunucudaki Uygulamaların Güvenlik Açıklarının Tespiti





PROJE KODU20220274
PROJE SAHİBİLaser Ayyıldız
PROJE SAHİBİ LINKEDIN https://www.linkedin.com/in/laser-ayyildiz/
PROJE MALİYETİ
PROJE ÜNİVERSİTESİEge Üniversitesi
PROJE KATEGORİSİAkademik ve Diğer Bilişim Uygulamaları 
PROJE DANIŞMANIEmine Sezer



Tezin temel hedefi, sunucuların ve bu sunucular üzerinde hizmet sunulan uygulamalara ait verilerin korunabilmesi ve oluşabilecek dış müdahale ataklarından korunabilmek için sunucu güvenliğini desteklemektir.

Günümüzde yazılımcılar, bilişim uzmanları ve bilgisayar dünyasındaki insanlar ürettikleri ürünlerde farklı uygulama, donanım veya işletim sistemlerinden yararlanırlar fakat bu kullanımın getirdiği zafiyetler bulunur. Bu konudaki en önemli zafiyet kullanılan dış kaynaklı ürünün güvenlik açıklarına sahip olmasıdır.

Literatür taramalarında, güvenlik zafiyet bildirimleri konusunda yazılan tezlerin, genel olarak zafiyet tespit yöntemlerini geliştirmek için kurgulanmış veya bu tez çalışması kapsamından farklı alanlara yönelmiş çalışmalar olduğu fark edilmiştir. Bu tez çalışmasının diğer çalışmalardan temel farkları, kapsamlı ve günlük taramalar ile sunucu yönetimini güvenli hale getirmesi, e-mail ve JIRA bildirimleri ile kullanıcıları daima aktif tutması, kullanımı kolay ve basit arayüzü ile aksiyon almaya elverişli olması, şirket içi kullanımı, kullanıcı yönetimi, kişi bazlı sunucu ve uygulama atamaları ile ekip çalışmasını kolaylaştırması gösterilebilir.

Uygulama bir domain adresi ve sanal sunucu kiralanarak daimi şekilde bir tarayıcıda çalıştırılabilir olacak şekilde tasarlanmıştır.

Tezin kapsamında, sunucularının güvenliğini sağlamak isteyen bütün sunucu sahipleri ve servis sağlayıcıları bulunmaktadır. Bu durum göz önüne alındığında internet erişimine sahip uygulamalar, günümüzün en çok tercih edilen uygulama geliştirme türüdür dolayısıyla tez çalışmasının önemi bilişim sektörü için ciddi seviyelerdedir.

Literatür taramalarında, güvenlik zafiyet bildirimleri konusunda yazılan tezlerin, genel olarak zafiyet tespit yöntemlerini geliştirmek için kurgulanmış veya bu tez çalışması kapsamından farklı alanlara yönelmiş çalışmalar olduğu fark edilmiştir. Temel olarak güvenlik zafiyetleri konularına değinen literatür çalışmaları, uygulamaları ve içerikleri aşağıda listelenmiştir. Bu tez çalışmasının aşağıda listelenen çalışmalardan temel farkları, kapsamlı ve günlük taramalar ile sunucu yönetimini güvenli hale getirmesi, e-mail ve JIRA bildirimleri ile kullanıcıları daima aktif tutması, kullanımı kolay ve basit ara yüzü ile aksiyon almaya elverişli olması, şirket içi kullanımı, kullanıcı yönetimi, kişi bazlı sunucu ve uygulama atamaları ile ekip çalışmasını kolaylaştırması gösterilebilir. 1. Predicting Vulnerability Type in Common Vulnerabilities and Exposures (CVE) Database with Machine Learning Classifiers [1] Sofya Teknik Üniversitesi akademisyenleri tarafından hazırlanan bu çalışmada CVE sınıflandırmalarının manuel olarak yapılmasının zorluğundan yola çıkılarak, sınıflandırma işini makine öğrenimi teknikleriyle yapmak konusu tartışılmış ve uygulanmıştır. Bunun için Linear Support Vector Classification, Naive Bayes ve Random Forest Classifier algoritmaları kullanılarak makine öğrenmesi test edilmiş ve yöntemler kendi aralarında karşılaştırılmıştır. Çalışmalarının sonucunda uygulanan tekniklerin doğruluğu test edilmiş ve CVE sınıflandırmasında makine öğreniminin kullanılabilir olduğu kanıtlanmıştır. 2. Common Vulnerabilities and Exposures: Analyzing the Development of Computer Security Threats [2] Helsinki Üniversitesinde yapılan bu araştırma, 1999’dan itibaren bildirilen bütün CVE’ler makine öğrenimi yöntemleriyle taranarak, 2018 yılına kadar nasıl bir kümelenme ve gelişim gerçekleştirdiği anlaşılmaya çalışılmıştır. Bilişim sektöründeki güvenlik zafiyeti konusunun gelişimi konusuna ışık tutulmaya çalışılmıştır. Çalışma sonucunda benzer uygulamalarda ortaya konan aynı güvenlik açıklarının benzerliği ve kümelenmeleri ortaya konulmuştur. 3. Mining Security Requirements from Common Vulnerabilities and Exposures for Agile Projects [3] Bu çalışmada, araştırmacılar çevik yazılım geliştirme tekniği ile geliştirilen uygulamaların güvenlik zafiyetlerini daha çok maruz kaldığını gözlemleyerek bunu kanıtlamak istemişler ve çözüm önerilerinde bulunmak istemişlerdir. Bu çalışma için, daha önceden yayınlanan CVE’ler incelenmiş, kategorize edilmiş ve savların geçerliliği ortaya konmuş, daha sonrasında da çözüm önerileri geliştirilmiştir. 4. Imperva Uygulaması [4] Imperva uygulaması, sunucularda karşılaşabilecek bütün güvenlik zafiyetleri konularında kullanıcılarını korumayı amaçlamaktadır. Veri tabanlarını koruma, DDoS ataklarını savunma, API isteklerini ve cevaplarını optimize etme, raporlama işlevleri, güncel tehditlere karşı uyarılar oluşturma gibi çok kapsamlı bir güvenlik operasyonu gerçekleştirmektedir. 5. RetireJS Uygulaması [5] RetireJS Uygulaması, JavaScript dilinde ve NodeJS çalışma alanında yayınlanan bütün kütüphane ve frameworklerin CVE’lerini kayıtlayarak, uygulamaların bağımlılıklarının zafiyet analizlerini gerçekleştirir. Konsol uygulaması olarak veya tarayıcı uygulaması olarak kullanılabilir, açık kaynak bir uygulamadır. 6. OWASP Dependency-Check [6] Bu uygulama, projenizin kullanılan bütün bağımlılıkları CPE notasyonuna göre tarar ve eğer varsa NVD veri tabanında bulunan CVE raporlarını ortaya koyar. Düzenli bir tarama sağlamasa da kuvvetli bir raporlama imkanı sunar. Uygulamalar yayına çıkarılmadan önce kullanılabilecek bir konsol uygulamasıdır. 7. Tenable.sc Uygulaması [7] Tenable şirketine ait güvenlik uygulaması bir sunucu güvenlik analizi uygulamasından beklenecek en temel gereksinimleri profesyonel bir şekilde karşılamaktadır. Uygulamanın sunduğu özellikler şu şekilde sıralanmıştır: Risk analizine dayanan güvenlik açığı yönetimi Web ağını izleyerek gelen ve giden istekleri tarama Bulunan risklerin yönetimi konusunda karar vermeye yardımcı öneriler Risk derecelendirmelerine göre önem tabloları ve veri görselleştirme araçları sunma [1] Veneta Yosifova, Antoniya Tasheva, Roumen Trifonov, “Predicting Vulnerability Type in Common Vulnerabilities and Exposures (CVE) Database with Machine Learning Classifiers”, IEEE, ISBN:978-1-6654-4061-5 [2] Andrew Kronser, “Common Vulnerabilities and Exposures: Analyzing the Development of Computer Security Threats”, Faculty of Science University of Helsinki, 18 Mayıs 2020 [3] Wentao Wang, Arushi Gupta, Nan Niu, “Mining Security Requirements from Common Vulnerabilities and Exposures for Agile Projects”, IEEE, ISBN:978-1-5386-8412-2 [4] Imperva Inc, https://www.imperva.com, (Son Erişim: 24 Şubat 2022) [5] Ståle Pettersen, https://retirejs.github.io/retire.js, (Son Erişim: 24 Şubat 2022) [6] Jeremy Long, https://owasp.org/www-project-dependency-check, (Son Erişim: 24 Şubat 2022) [7] Tenable Inc., https://www.tenable.com/products/tenable-sc (Son Erişim: 24 Şubat 2022)