Kaynak kod güvenliğinde statik analiz ölçütleri ile performans değerlendirmesi
Performance evaluation with static analysis methods in source code security
- Tez No: 538112
- Danışmanlar: DR. ÖĞR. ÜYESİ FARUK BULUT
- 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: Haliç Ü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ı: 73
Özet
Bilişim sektöründe aktif olarak çalışan yazılımcıların geliştirdiği yazılım ürünleri üzerinde hatalar bulunmasının yanı sıra güvenlik zafiyetleri de sıklıkla görülmektedir. Geliştirilen yazılımın ne seviyede güvenli olduğu herhangi bir standart çerçevesinde değerlendirilmemektedir. Yazılım kaynak kodlarında olası güvenlik açıklarını keşfetmek için Statik Kod Analiz araçları kullanılmaktadır. Fortify, Polyspace, SonarCloud (open), Checkmarx, AppScan ve AttackFlow gibi birçok ücretli ve ücretsiz test aracı mevcuttur ve bu araçlar yazılımların değerlendirmesini yapmaktadır. Araçlar kaynak kodları analiz ederken yanlış pozitif (False Positive), yanlış negatif (False Negative), doğru pozitif (True Positive) ve doğru negatif (True Negative) gibi değerlendirme sonuçları üretirler. Yanlış pozitif (False Positive), kaynak kodda gerçekte güvenlik sorunu olmayan ve statik analiz araçları tarafından yanlışlıkla var olduğu tespit edilen güvenlik açıklarını tanımlamaktadır. Yanlış negatif (False Negative) ise statik kod analiz araçları ile bulunamayan ve gerçekte mevcut olan güvenlik açığı şeklinde ifade edilmektedir. Güvenlik taraması sırasında, yanlış negatif (False Negative) ve yanlış pozitif (False Positive) lerden dolayı, taramayı yapan, taramayı yaptıran, ilgili değerlendirme aracını satın almak üzere olan ve aynı zamanda güvenlik taramasından geçirilmemiş programı canlı sistemlerinde barındırarak hizmet vermek zorunda olan aktörler mağduriyet yaşamaktadır. Bu çalışmanın temel amacı, farklı statik kod analiz araçlarının, güvenlik açıklarını tespit etme performanslarını analiz etmektir. Aynı zamanda doğruluğundan emin olunulmuş ve tekrarlanabilir bir yöntemi ortaya koyarak objektif değerlendirme sonuçları ile doğabilecek sorunların önüne geçmektir. Bu tez çalışması içerisinde yazılım sektöründe kullanılan Fortify, Polyspace, SonarCloud (open), Checkmarx, AppScan ve AttackFlow gibi test araçlarından sadece Polyspace ve Fortify incelenmiştir. Çalışma içerisinde kâr amacı barındıran ticari ürün Fortify ile akademik çalışmalarda kullanılan Polyspace ürünleri incelenerek performansları kıyaslanmıştır. Bu çalışmada ilk olarak seçilen JULIET test veri kümesi üzerinde yazılım test araçlarının başarımları incelenmiştir. Daha sonra ilgili test araçları farklı istatistiksel yöntemler kullanılarak analiz edilmiş ve kıyaslanmıştır. Aşamalara ait sürelerin kısaltılabilmesi için filtreleme ve otomatize etmek amacıyla çeşitli betikler oluşturulmuştur. Ayrıca başarımları hesaplayabilmek adına SCATPA adı verilen bir proje de geliştirilmiştir. Gerçekleştirilen çalışmada aynı zayıflık grubunu (Common Weakness Enumeration, CWE) test etmeyi amaçlayan yazılım araçları birbirleri ile karşılaştırılmış ve ilgili araçların farklılıkları (avantaj – dezavantajları) ortaya konmuştur. Bu tez çalışması alanında bir ilk olup, ilgili alanda çalışmak isteyen şahıs ve kuruluşlar için yol gösterici olması hedeflenmiştir.
Özet (Çeviri)
Software vulnerabilities developed by software developers working actively in the IT sector, as well as security vulnerabilities are frequently seen. The level of security of the developed software is not evaluated in any standard framework. Static Code Analysis tools are used to discover possible vulnerabilities in software source codes. There are many paid and free testing tools such as Fortify, Polyspace, SonarCloud (open), Checkmarx, AppScan and AttackFlow, and these tools evaluate the software. While analyzing source codes, these tools produce evaluation results such as false positive, false negative, true positive and true negative. A false positive identifies vulnerabilities in the source code that actually do not have security problems and are found to be inadvertently present by static analysis tools. A false negative is expressed as a security vulnerability that cannot be found with static code analysis tools. During the security scan, who is scanning, who is requesting to make this scan, companies that are going to buy a scanning tool and companies that have to serve by hosting a security-free program in their live systems can be a victim, because of false negative and false positives. The main objective of this study is to analyze the performance of different static code analysis tools and their detection vulnerabilities. At the same time to ensure that the accuracy of a reproducible method to reveal the results of the objective assessment can be avoided. Only Polyspace and Fortify were included in the test tools available on the market, such as Fortify, Polyspace, SonarCloud (open), Checkmarx, AppScan and AttackFlow. In the study, the product of the profit, Fortify, and Polyspace products which is used in academic studies were examined and their performances were compared. In this study, the performance of software testing tools on the JULIET test data set was investigated. Then, the related test tools were analyzed and compared using different statistical methods. In order to shorten the time of the stages, various scripts have been created for filtering and automating. In addition, a project called SCATPA was developed in order to calculate the performance. In the study, the software tools aimed at testing the same weakness group (Common Weakness Enumeration, CWE) were compared with each other and the differences of the related tools; advantages - disadvantages have been demonstrated. As the thesis study is a first in its field, it is aimed to be a guide to the individuals and organizations who want to work in this field.
Benzer Tezler
- Standalone static binary executable rewriting for software protection
Yazılım koruma için bağımsız statik ikili çalıstırılabilir dosya tekrar yazımı
ÖZGÜR SAYGIN BİCAN
Yüksek Lisans
İngilizce
2015
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolOrta Doğu Teknik ÜniversitesiBilgisayar Mühendisliği Ana Bilim Dalı
DR. ONUR TOLGA ŞEHİTOĞLU
- Kural tabanlı optimizasyon ile ağ saldırılarının tespiti
Detection of network attacks with rule-based optimization
OĞUZ ÖZGER
Yüksek Lisans
Türkçe
2023
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolSakarya Uygulamalı Bilimler ÜniversitesiElektrik-Elektronik Mühendisliği Ana Bilim Dalı
DOÇ. DR. HALİT ÖZTEKİN
- Obfuscated JavaScript detection using syntactically and lexically enhanced machine learning
Perdelenmiş JavaScript kodlarının sözdizimsel ve anlamsal yönden iyileştirilmiş makina öğrenmesi ile tespiti
EREN KILIÇ
Yüksek Lisans
İngilizce
2023
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİstanbul Teknik ÜniversitesiBilgisayar Mühendisliği Ana Bilim Dalı
DR. ÖĞR. ÜYESİ MEHMET TAHİR SANDIKKAYA
- Instruction set extension of RISC-V core with plantard modular reduction for number theoretic transform used in post-quantum cryptography
RISC-V çekirdeğinin talimat setinin post-kuantum kriptografide kullanılan sayısal teorik dönüşüm için plantard modüler indirgeme metodu ile genişletilmesi
ALİ ÜSTÜN
Yüksek Lisans
İngilizce
2024
Elektrik ve Elektronik Mühendisliğiİstanbul Teknik ÜniversitesiElektronik ve Haberleşme Mühendisliği Ana Bilim Dalı
PROF. DR. SIDDIKA BERNA ÖRS YALÇIN
- Yazılım güvenliğinde derin öğrenme tabanlı kaynak kod analizi ve yorum önerimi
Deep learning based source code analysis and review recommendations in software security
YUSUF KARTAL
Doktora
Türkçe
2023
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolEskişehir Osmangazi ÜniversitesiBilgisayar Mühendisliği Ana Bilim Dalı
PROF. DR. KEMAL ÖZKAN