Yazılım güvenliğinin temel amacı, yazılımı kötü niyetli siber saldırılara karşı dayanıklı olacak şekilde tasarlamaktır. Yazılım güvenliği, yazılım yaşam döngüsünün her aşamasında ele alınmazsa, birçok işletme, kuruluş ve hatta hükümetler, yazılım sistemlerindeki güvenlik açıkları nedeniyle sömürülür. Güvenli yazılım sistemleri geliştirmede kaynak kodun analiz edilmesi önemli bir adımdır. Güvenli olmayan kaynak kodu bölümlerinin belirlenmesi, yazılımdaki güvenlik açıklarının azaltılmasına veya kaldırılmasına yardımcı olur. C programlama dili, en yaygın kullanılan programlama dillerinden biridir, ancak güvenli değildir ve kod yerleştirme saldırılarına karşı savunmasızdır. C programlama dilinin en yaygın güvenlik açıkları arabellek taşmaları, giriş doğrulamaları ve kaynak yönetimi hatalarıdır. Bu çalışmada, C programlama dilindeki güvensiz kaynak kodlarını tespit edebilen SecureC adlı bir yazılım aracı geliştirilmiştir. İlk olarak düzenli ifadeler kullanılarak yeni kod şablonları çıkarılmış, ardından bu yeni şablonlar kullanılarak veri setindeki kaynak kodlar işaretlenmiştir. Daha sonra yüzbinlerce satıra sahip kaynak koddan güvensiz kısımları tespit ederken işaretli veri kümesi ile işaretsiz veri kümesi arasında performans farkı olup olmadığına odaklanılmıştır. Sonuç olarak, işaretli bir veri kümesinin kullanılması hem ikili hem de çoklu sınıflandırmada performans artışı sağlamıştır.
Yazılım Güvenliği Yazılım Güvenlik Açığı Doğal Dil İşleme Makine Öğrenmesi Yapay Zeka
TÜBİTAK 2209-A Üniversite Öğrencileri Araştırma Projeleri Destekleme Programı
1919B012004582 Başvuru Numaralı Proje
The principal goal of software security is to design software to be resistant to malicious cyber-attacks. If software security is not handled at every stage of the life cycle of software, many businesses, organizations, and even governments are exploited due to security vulnerabilities in their software systems. Analyzing the source code in developing secure software systems is an important step. Identifying the insecure source code parts helps to reduce or remove vulnerabilities in software.
The C programming language is one of the most-commonly used programming languages, but it is insecure and vulnerable to code injection attacks. C programming language's most common security vulnerabilities are buffer overflows, input validations, and resource management errors. In this paper, a software tool called SecureC has been developed, which can detect insecure source codes in the C programming language. Firstly, the new source code templates using the Regular expressions (Regex) were extracted, then the source codes in the dataset by using these new templates were marked. Then, it has been focused on finding whether there is any performance difference between the marked dataset and the unmarked dataset while detecting insecure parts from the source code that has hundreds of thousands of lines. As a result, the usage of a marked dataset ensured the performance improvement in both binary and multiple classification.
Software Security Software Vulnerability Natural Language Processing Machine Learning Artificial Intelligence
1919B012004582 Başvuru Numaralı Proje
Birincil Dil | Türkçe |
---|---|
Konular | Bilgisayar Yazılımı |
Bölüm | Araştırma Makaleleri \ Research Articles |
Yazarlar | |
Proje Numarası | 1919B012004582 Başvuru Numaralı Proje |
Yayımlanma Tarihi | 30 Haziran 2022 |
Gönderilme Tarihi | 2 Aralık 2021 |
Kabul Tarihi | 17 Mart 2022 |
Yayımlandığı Sayı | Yıl 2022 |