Makine öğrenmesi ile statik kaynak kod analizi
Static source code analysis via machine learning
- Tez No: 597438
- Danışmanlar: DOÇ. DR. ALİ GÖKHAN YAVUZ
- 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: 2019
- Dil: Türkçe
- Üniversite: Yıldız Teknik Üniversitesi
- Enstitü: Fen Bilimleri Enstitüsü
- Ana Bilim Dalı: Bilgisayar Mühendisliği Ana Bilim Dalı
- Bilim Dalı: Bilgisayar Mühendisliği Bilim Dalı
- Sayfa Sayısı: 91
Özet
Bu tez çalışması, geliştirilmekte olan bir uygulamanın üretim ortamına alınmasından önce statik kaynak kod analizine alınarak muhtemel bilgi güvenliği tehditlerinin kod seviyesinde tespitini amaçlamaktadır. Çalışmanın ilk aşamasında çeşitli yazılım geliştirme dillerini içeren kural bazlı işlemler ile kod satıları üzerinde öğrenme vektörleri elde edilmektedir. Öğrenme vektörleri elde edilirken ham kaynak kod verisi üzerinden belirli karakter temizleme ve kural bazlı tespit edilen bilgi güvenliği zafiyetlerinin vektör bilgilerine dahil edilmesi işlemleri gerçekleştirilmiştir. Çalışmanın bir sonraki aşamasında bu öğrenme vektörleri kullanılarak bazı makine öğrenmesi algoritmaları kullanılmıştır. Kullanılan öğrenme vektörleri sınıf, sınıf seviyesi, kaynak kod satırı, bilgi güvenliği bulgusuna sebep olan ortak en uzun metin parçası, bulgu türü ve durum özellikleri olmak üzere 6 farklı sütun bileşeninden oluşmaktadır. Kullanılan makine öğrenmesiyle sınıflama algoritmaları BayesNet, KStar, J48, Random Forest ve Hoeffding Tree sınıflayıcıları olup, sonuçlar üzerinden yapılan karşılaştırmalar ile bazı algoritmaların kural bazlı değerlendirmeden daha hızlı sınıflandırma yaparak zafiyet tespitinde bulunduğu gözlemlenmiştir. Çalışma kapsamında 2 farklı kaynak kod veri seti kullanılmış ve seçilen makine öğrenmesi algoritmalarından KStar ve J48 için doğruluk oranları olanlar olarak görülmüştür. Bununla birlikte birinci kaynak kod kümesi için makine öğrenme sınıflama algoritmalarından KStar ve J48 toplamda 336 adet bulgu bileşeninin 134 tanesini test verisi olarak işleme almış ve 122 bulgu doğru sınıflandırılarak %91,04'lük bir başarım elde edilmiştir. Her iki algoritmaya sadece sınıf değeri“1”olan yani sadece bulguları içeren kayıtlar aynı şekilde %60 bileşen eğitim için ve %40'ı test için verildiğinde sonuçlar biraz daha başarımlı olmuştur. Toplamda 41 adet bulgu bileşeninin 16 tanesi test verisi olarak kullanılmış ve 15 adet bulgu doğru sınıflandırılarak %93,75'lik bir başarım elde edilmiştir.
Özet (Çeviri)
This thesis study aims to perform static source code analysis on application raw source codes in order to detect information security flaws / vulnerabilities before the developed application going to the production environment. Classical rule based detection mechanismsare being used at the first stage of the study to build learning vectors related to the source code lines separately on various application development languages. While building up the learning vectors, some word cleaning purification and adding the part of possible vulnerability information processes were being applied. At the following stage of the study, some sort of machine learning algorithms were chosen to detect security issues by using the learning vectors composed of 6 attributes. These attributes are class, severity, source code line, heat part of code, vulnerability class and status of code line. By using BayesNet, KStar, J48, Random Forest and Hoeffding Tree machine learning algorithms, it was observed that some of the classifying algoritms had been faster than the rule based classification on vulnerability detection at results stage. Throughout the study, mainly 2 different data sets were used and KStar and J48 algorithms are the best efficient algorithms among the others. However, for the first set of source code, KStar and J48, which are machine learning classification algorithms, processed 134 of the 336 finding components as test data, and 122 findings were correctly classified and achieved 91.04% performance. The results were slightly more successful when both the algorithms had only class values of“1”(vulnerable ones) , only records containing the findings were given for 60% component training and 40% for testing. In total, 16 of 41 finding components were used as test data and 15 findings were classified correctly and achieved a performance of 93.75%.
Benzer Tezler
- 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
- Software defect prediction with a personalization focus and challenges during deployment
Kişiselleştirme odaklı yazılım hata tahmini ve entegrasyon zorlukları
BEYZA EKEN
Doktora
İngilizce
2022
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİstanbul Teknik ÜniversitesiBilgisayar Mühendisliği Ana Bilim Dalı
DR. ÖĞR. ÜYESİ AYŞE TOSUN KÜHN
- Deep learning based dynamic turkish sign language recognition with leap motion
Derin öğrenme tabanlı leap motıon ile dinamik türk işaret dili tanıma
BURÇAK DEMİRCİOĞLU KAM
Yüksek Lisans
İngilizce
2020
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİstanbul Teknik ÜniversitesiBilgisayar Mühendisliği Ana Bilim Dalı
DOÇ. DR. HATİCE KÖSE
- Yazılımların bakım kolaylığı ölçümü için yazılım ölçütleri önerisi
Software metrics proposal to measure maintainability
ALPER KIRAL
Yüksek Lisans
Türkçe
2019
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolBaşkent ÜniversitesiBilgisayar Mühendisliği Ana Bilim Dalı
DR. ÖĞR. ÜYESİ TÜLİN ERÇELEBİ AYYILDIZ
- Android sistemlerde derin öğrenme tabanlı kötü amaçlı yazılım tespit sistemi
Deep learning based malware detection system on android systems
ESRA ÇALIK BAYAZIT
Doktora
Türkçe
2023
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolMarmara ÜniversitesiBilgisayar Mühendisliği Ana Bilim Dalı
DOÇ. DR. BUKET DOĞAN
PROF. DR. ÖZGÜR KORAY ŞAHİNGÖZ