Ulusal yazılım açıklık veri tabanı oluşturulması kapsamında android açıklıklarının modellenmesi ve analiz edilmesi
Establishment of national software vulnerability's database
Yazar: KEREM GENCER
Danışman: PROF. DR. FATİH BAŞÇİFTÇİ
Selçuk Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı
Derece: Doktora, 2021
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control

Özet:
Günümüzde özel sektör ve kamu kurumları kaynak kodu bakımıdan çok büyük yazılımlar kullanmaktadırlar. Bu yazılımlar oluşturulurken yapılan hatalar veya ihmaller sonucu yazılım güvenlik açıklıkları ortaya çıkmaktadır. Bu açıklıklara ilişkin bilgilerin toplanması ve uygun bir biçimde veri tabanında saklanması güvenlik uzmanlarının işini kolaylaştırmakta, saldırganların işini ise zorlaştırmaktadır. Ulusal çapta açıklık veri tabanına sahip olunması ise hem yanlış ve yanıltıcı bilgi aktarımı hem de bu veri tabanlarını oluşturan ülkelerle yaşanması olası sıkıntıların meydana gelmesi durumunda bilgi aktarımının direkt olarak kesilmesi gibi olasılıkları ortadan kaldıracaktır.
Bu tez çalışmasında, ilk olarak Türkiye'nin mevcut ulusal yazılım açıklık veri tabanı durum tespiti yapılarak, ülkemize uygun bir model önerisi sunulmuştur. Model önerisi sonrasında açıklık verilerinin anlık olarak tarafımızla paylaşılmayacağı öngörüsünden yola çıkarak, mevcut bilgilere dayalı gelecekteki dönemlerdeki açıklıkların tahminlerine yönelik modeller oluşturulmuştur. Diğer çalışmalardan farklı olarak bu çalışmada doğrudan zamana bağlı olarak Android açıklıkları üzerine çalışılmıştır. Çalışmada zaman serileri ve Uzun Kısa Dönemli Hafıza (Long Short Term Memory - LSTM) yöntemlerine dayalı tahmin modelleri oluşturulmuş ve ARIMA (4,1,4) ile en uygun biçimde modellendiği görülmüştür. LSTM tarafında ise LSTM kullanılarak elde edilen modelin, zaman serileri kullanılarak elde edilen model ile hemen hemen aynı hata oranlarını sağladığı tespit edilmiştir. Ayrıca, bazı simetrik ve asimetrik dağılımlar yardımıyla Android güvenlik açıklıkları incelenmiştir. Aylık açıklık sayılarını en iyi modelleyen dağılımın Nakagami dağılımı olduğu ardından Weibull dağılımı ve sırasıyla Gamma, Lojistik ve Log-Lojistik dağılımının olduğu görülmüştür. Yaygın Açıklık Puanlandırma Sistemi (Common Vulnerability Scoring System - CVSS)'nin hesaplanması için yeni bir yaklaşım ortaya konulmuştur. Bu araştırma yazılım güvenlik açıklıklarının dilsel tanımlar kullanılarak nasıl hesaplanacağını göstermektedir. Başarı olasılıklarına dayanarak CVSS'ye ilişkin Bulanık CVSS adında bulanık bir model önerilmiştir. Son olarak oluşturulan ulusal yazılım açıklık veri tabanı ve açıklık öngörü modellerine destek olması için Android zararlılarının tespitinde kullanılmak üzere hibrit bir özellik seçme yöntemi önerilmiştir. Kullanımda olan yazılımları etkileyen Android zararlılarını derin öğrenme metodları ile bulurken diğer özellik seçme yöntemlerine göre daha başarılı sonuçlar elde edilen bu yöntem Bagging MARS temelli olarak oluşturulmuştur. Uygulamada 990 kötü amaçlı yazılım ve 2000 iyi huylu örnekten oluşan 2990 elemanlı veri setini kullanarak seçilen toplam 34 izin ve API Calls ile farklı sınıflandırma yöntemleri uygulanmış, MLP %90,2676 en iyi doğruluk sonucunu vermiştir.

Abstract:
Nowadays, the private sector and public institutions use very large software in terms of source code. Software security vulnerabilities arise as a result of errors or omissions while creating this software. The collection of information regarding these vulnerabilities and storing them properly in the database makes the job of security experts easier and makes it difficult for attackers. Having a national vulnerability database will eliminate the possibility of both the transfer of false and misleading information and the direct interruption of information transfer in the event of possible problems with the countries that create these databases. In this thesis, first vulnerability Turkey's current national software database upon the identification of cases, the recommendation was presented a suitable model for our country. After the model proposal, based on the prediction that the national vulnerability data will not be shared with us instantaneously, models were created for the estimation of future gaps based on existing information. 
Unlike other studies, in this study, Android openings were studied directly depending on the time. In the study, prediction models based on time series and Long Short Term Memory (LSTM) methods were created and it was seen that they were modeled optimally with ARIMA (4,1,4). On the LSTM side, it has been determined that the model obtained using LSTM provides almost the same error rates as the model obtained using time series. Also, Android security vulnerabilities have been investigated with the help of some symmetric and asymmetric distributions. It was seen that the distribution that best models the number of national vulnerabilities per month was the Nakagami distribution, followed by the Weibull distribution and the Gamma, Logistics, and Log-Logistics distribution, respectively. A new approach has been introduced for the calculation of the Common Vulnerability Scoring System (CVSS). This research shows how to calculate software vulnerabilities using linguistic definitions. Based on success probabilities, a fuzzy model for CVSS named Fuzzy CVSS is proposed. Finally, a hybrid feature selection method has been proposed to be used in the detection of Android malware to support the national software vulnerability database and vulnerability prediction, models. While finding Android pests that affect the software in use with deep learning methods, this method, which provides more successful results compared to other feature selection methods, was created based on Bagging MARS. In practice, using a data set of 2990 elements consisting of 990 malware and 2000 benign samples, a total of 34 permissions and different classification methods were applied with API Calls, and MLP yielded the best accuracy of 90.2676%.