Geri Dön

Makine öğrenmesi ile statik kaynak kod analizi

Static source code analysis via machine learning

  1. Tez No: 597438
  2. Yazar: EYÜP SERCAN AKGÜL
  3. Danışmanlar: DOÇ. DR. ALİ GÖKHAN YAVUZ
  4. Tez Türü: Yüksek Lisans
  5. Konular: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol, Computer Engineering and Computer Science and Control
  6. Anahtar Kelimeler: Belirtilmemiş.
  7. Yıl: 2019
  8. Dil: Türkçe
  9. Üniversite: Yıldız Teknik Üniversitesi
  10. Enstitü: Fen Bilimleri Enstitüsü
  11. Ana Bilim Dalı: Bilgisayar Mühendisliği Ana Bilim Dalı
  12. Bilim Dalı: Bilgisayar Mühendisliği Bilim Dalı
  13. 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

  1. 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

    İ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

  2. 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

    İngilizce

    2022

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİstanbul Teknik Üniversitesi

    Bilgisayar Mühendisliği Ana Bilim Dalı

    DR. ÖĞR. ÜYESİ AYŞE TOSUN KÜHN

  3. 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

    İngilizce

    2020

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİstanbul Teknik Üniversitesi

    Bilgisayar Mühendisliği Ana Bilim Dalı

    DOÇ. DR. HATİCE KÖSE

  4. 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

    Türkçe

    2019

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolBaşkent Üniversitesi

    Bilgisayar Mühendisliği Ana Bilim Dalı

    DR. ÖĞR. ÜYESİ TÜLİN ERÇELEBİ AYYILDIZ

  5. 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

    Türkçe

    2023

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolMarmara Üniversitesi

    Bilgisayar Mühendisliği Ana Bilim Dalı

    DOÇ. DR. BUKET DOĞAN

    PROF. DR. ÖZGÜR KORAY ŞAHİNGÖZ