Yazılım güvenlik açıklarının makine öğrenmesi yöntemleri ile tespiti
Detection of software security vulnerables by deep neural networks methods
- Tez No: 791242
- Danışmanlar: DR. ÖĞR. ÜYESİ İRFAN KÖSESOY
- Tez Türü: Yüksek Lisans
- Konular: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol, Computer Engineering and Computer Science and Control
- Anahtar Kelimeler: Belirtilmemiş.
- Yıl: 2023
- Dil: Türkçe
- Üniversite: Kocaeli Üniversitesi
- Enstitü: Fen Bilimleri Enstitüsü
- Ana Bilim Dalı: Bilgisayar Mühendisliği Ana Bilim Dalı
- Bilim Dalı: Belirtilmemiş.
- Sayfa Sayısı: 69
Özet
Yazılım ve bilişim sistemleri gün geçtikçe yaygınlaşmakta ve kullanımı her geçen gün artmaktadır. Bu sistemlerde yaşanan değişimler beraberinde güvenlik açıklarını da getirmektedir. Yazılım güvenlik açığı, bir tehdit kaynağı tarafından istismar edilebilecek bilgi sistemindeki, sistem güvenlik prosedürlerindeki, iç kontrollerdeki veya uygulamadaki zayıflık olarak tanımlanmaktadır. Mevcut sistemlerde var olan güvenlik açıkları konunun uzmanları tarafından belirlenmiştir. Belirlenen açıklara sürekli olarak yenileri de eklenmektedir. Güvenlik açıklarını, yazılım geliştirme sürecinin başlarında tespit edip önlemek, ilerleyen süreçlere kıyasla zaman ve maliyet açısından daha tasarrufludur. Yazılım geliştirme aşamasında oluşan güvenlik açıkları sonraki süreçlere aktarıldığında çözümü zorlaşmakta ve çözüm maliyeti artmaktadır. Bu nedenle kodlardaki güvenlik açığının kodlama aşamasında tespit edilmesi önemlidir. Son yıllarda özellikle görüntü işleme, doğal dil işleme gibi alanlardaki problemlere başarıyla uygulanan makine öğrenmesi algoritmaları kodlardaki güvenlik açıklarının tespit edilmesinde de kullanılmıştır. Bu alanda yapılan çalışmalar,“bilinen türdeki güvenlik açıklarını tespit etmek”veya“yeni güvenlik açıklarını keşfetmek”olmak üzere iki kısma ayrılmaktadır. Tez çalışması kapsamında bilinen türdeki güvenlik açıklarından yola çıkarak kodlarda zafiyet olup olmadığı tespit edilmeye çalışılmıştır. Bu amaçla denetimli öğrenmede yaygın olarak kullanılan Bayes ağları, Naif Bayes, rastgele orman, k en yakın komşu ve destek vektör makinesi tahmin yöntemleri ile kaynak kodu sınıflandırması yapılmıştır. Tahmin modelleri, bu alanda yapılan çalışmalarda sıklıkla kullanılan veri setleri ile eğitilmiş ve test edilmiştir. Modellerin tahmin doğruluğunu arttırmak amacıyla çıkarılan öznitelik vektörlerine öznitelik seçim yöntemleri uygulanmıştır.
Özet (Çeviri)
Software and information systems are becoming more widespread and their use is increasing day by day. The changes in these systems also bring security vulnerabilities. Software security vulnerability is defined as a weakness in information systems, system security procedures, internal controls, or applications that can be exploited by a threat source. Security vulnerabilities in existing systems have been identified by experts in the field, and new ones are constantly being added. Detecting and preventing security vulnerabilities at the beginning of the software development process is more cost-effective in terms of time and money compared to later stages. When security vulnerabilities in code are transferred to later stages, the solution becomes more difficult and the cost of solution increases. Therefore, it is important to detect security vulnerabilities in code during the coding stage. In recent years, machine learning algorithms, successfully applied in areas such as image processing and natural language processing, have also been used to detect security vulnerabilities in code. Studies in this field are divided into two parts:“detecting known types of security vulnerabilities”or“discovering new security vulnerabilities”. In this thesis, it is attempted to determine whether there are vulnerabilities in the code based on known types of security vulnerabilities. For this purpose, source code classification was performed using Bayesian networks, Naive Bayes, Random Forest, K-Nearest Neighbor, and Support Vector Machine prediction methods, commonly used in supervised learning. The prediction models were trained and tested with data sets frequently used in this field. Feature selection methods were applied to feature vectors to increase the accuracy of prediction models.
Benzer Tezler
- Makine öğrenmesi yöntemleri ile zararlı yazılım tespiti
Malware detection with machine learning methods
ŞEYMA GÜLEŞ
Yüksek Lisans
Türkçe
2020
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolKonya Teknik ÜniversitesiBilgisayar Mühendisliği Ana Bilim Dalı
DOÇ. DR. BARIŞ KOÇER
- Yazılım kaynak kodunda güvenlik açıklarının derin öğrenme ve makine öğrenmesi ile otomatik tespiti
Automatic detection of software vulnerabilities in source code using deep learning and machine learning
DİLEK MANDAL
Yüksek Lisans
Türkçe
2024
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolKocaeli ÜniversitesiBilgisayar Mühendisliği Ana Bilim Dalı
DR. ÖĞR. ÜYESİ İRFAN KÖSESOY
- Predicting software vulnerabilities using topic modeling with issues
Konu modelleme yöntemi ile yazılım güvenlik açıklarını tahmin etme
FATMA GÜL BULUT
Yüksek Lisans
İngilizce
2019
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİstanbul Teknik Üniversitesiİletişim Sistemleri Ana Bilim Dalı
DR. ÖĞR. ÜYESİ AYŞE TOSUN
- Profiling developers to predict vulnerable code changes
Güvenlik açığı kod değişikliklerini öngörmek için geliştiricilerin profilini oluşturma
TUĞÇE COŞKUN
Yüksek Lisans
İngilizce
2023
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİstanbul Teknik ÜniversitesiBilgisayar Mühendisliği Ana Bilim Dalı
DOÇ. DR. AYŞE TOSUN KÜHN
- Yazılım güvenlik açıklarının skorlanması ve kategorisinin belirlenmesinde yeni bir yöntem
A new method to determine scoring and category of software vulnerabilities
HAKAN KEKÜL
Doktora
Türkçe
2022
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolFırat ÜniversitesiBilgisayar Mühendisliği Ana Bilim Dalı
PROF. DR. BURHAN ERGEN