Markus Spiske on Unsplash /techxplore

Ar-Ge şirketi Draper ve Boston Üniversitesi‘nden bir araştırma ekibi; yazılım açıklarını daha hızlı ve daha etkin bir şekilde keşfetmeye yardımcı olabilecek, makine öğrenimi algoritmalarını kullanarak, yeni bir büyük ölçekli güvenlik açığı tespit sistemi geliştirdi.

Bilgisayar korsanları ve kötü niyetli kullanıcılar; genellikle yazılım güvenlik açıklarını kullanarak, BT sistemlerini ve uygulamalarını riske sokmanın yeni yollarını arıyor. Yazılım açıkları; özellikle açık kaynaklı yazılımlar aracılığıyla veya kod yeniden kullanımı ve uyarlama yoluyla hızla yayılabilecek bir sistem geliştiren programcılar tarafından yapılan küçük hatalardır.

Her yıl, bu güvenlik açıklarının çoğu genel olarak “Ortak Güvenlik Açıkları ve Etkilenen Veritabanları”na (CVE) bildirilirken; diğer birçok kişi de geliştiriciler tarafından dahili olarak işaretlenir ve yamalanır. Yeterli şekilde ele alınmadıklarında, bu açıklar saldırganlar tarafından; genellikle Heartbleed bug ve WannaCry ramsomware cryptoworm gibi birçok saldırılarda yıkıcı etkilere yol açabilir.
Genel olarak, programları analiz etmek için mevcut araçlar önceden tanımlanmış kurallara dayanan, sınırlı sayıda potansiyel hataları tespit edebilir. Bununla birlikte, açık kaynak kodlu depoların yaygın kullanımı; kod açığı kalıplarını ortaya çıkarabilecek tekniklerin geliştirilmesi için yeni olasılıklar açtı.
Draper ve Boston’daki araştırmacılar, C / C ++ kaynak kodundaki güvenlik açıklarının otomatik olarak algılanması için; makine öğrenimini kullanan yeni bir güvenlik açığı tespit aracı geliştirdi.

Ekip; milyonlarca açık kaynaklı işleve sahip büyük bir veri kümesi oluşturdu. Daha sonra potansiyel saldırıları tanımlamak için tasarlanan üç statik (çalışma öncesi) analiz aracı; yani Clang, Cppcheck ve Flawfinder kullanarak, onları etiketledi. Veri kümeleri; SATEIV Juliet Test Suite, Debian Linux dağıtımı ve GitHub üzerindeki ortak Git depolarından alınan C ve C ++ kodlarının milyonlarca işlev düzeyindeki örneklerini içeriyordu.

Araştırmacılar makalelerinde, “Bu veri setlerini kullanarak, lexer* kaynak kodunu doğrudan yorumlayan derin özellik sunumuna dayanan hızlı ve ölçeklenebilir bir güvenlik açığı tespit aracı geliştirdik” diyor.

* Sözcüksel analizi yapan bir program, bir tarayıcı olarak adlandırılabilir. Bir lexer genellikle programlama dilleri, web sayfaları ve benzerlerinin sözdizimini analiz eden bir ayrıştırıcı ile birleştirilir.

Programlama dilleri, bazı yönlerden insan dillerine benzediği için; araştırmacılar, bilgisayarların insan dilini anlamasına ve yorumlamasına olanak tanıyan, bir doğal strateji (NLP) kullanan, bir güvenlik açığı algılama tekniği tasarladı.
Araştırmacılar çalışmalarında; fonksiyonel sinir ağları (CNNs) ve tekrarlayan sinir ağları (RNNs) ile cümle duyarlılığı sınıflandırmalarında kullanılan özellik-çıkarma yaklaşımlarından yararlandıklarını belirtiyor.

NLP’yi random forest-rasgele ormanla (RM) birleştirdiler. Öğrenim; veri kümesinin rastgele seçilmiş alt kümelerinden karar ağaçları topluluğu oluşturan ve bunları birleştirerek, daha doğru tahminler elde eden güçlü bir algoritmaya dönüştü.

Araştırmacılar araçlarını hem gerçek yazılım paketlerinde hem de NIST STATE IV referans veri setinde test ettiler ve sonucu şu şekilde açıkladılar:

“Sonuçlarımız, kaynak kodunda derin özellik temsilinin öğrenilmesinin, otomatik yazılım savunmasızlığının tespiti için umut verici bir yaklaşım olduğunu gösteriyor. Doğal dil alanında sınıflama problemlerinden esinlenmiş çeşitli ML (makine öğrenme) tekniklerini uyguladık. Uygulamamız için ince ayar yaptık ve en iyi genel sonuçları elde ettik. Bu, evrimsel sinir ağı üzerinden öğrenilen özellikleri kullanarak, bir grup ağaç algoritmasıyla sınıflandırıldı.”

Şimdiye kadar, çalışmaları C / C ++ koduna odaklandı. Ancak yöntemleri başka bir programlama diline de uygulanabilir. Özellikle, özel bir C / C ++ lexer oluşturmayı tercih ettiler. Çünkü bu, makine öğrenimi eğitimi için ideal olan, basit ve genel bir fonksiyon kaynağı kod temsili üretecektir.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

You May Also Like

Mühendisler LEGO Benzeri Yapay Zeka Çipi İnşa Ediyor

Cep telefonlarının, akıllı saatlerin ve diğer giyilebilir cihazların daha yeni bir model…

Doğal Dili Programlama Koduna Çeviren Bir Yapay Zeka Sistemi: Codex

  Yapay zeka araştırma şirketi OpenAI, doğal dili programlama koduna çeviren bir…

AI; doktorların COVID-19 salgını sırasında yoğun bakım yataklarından en iyi şekilde yararlanmalarına yardımcı olabilir

Yeni teknoloji, yoğun bakım ünitesi (YBÜ) tedavisine ihtiyaç duyan hastaları belirleyerek COVID-19…

Bilgisayar bilimcileri, programlama dili Python’u önemli ölçüde hızlandırmak için açık kaynaklı bir araç geliştirdi

Massachusetts Amherst Üniversitesi’nde Emery Berger liderliğindeki bilgisayar bilimcilerinden oluşan bir…