ODGen aracı bu yılki Usenix Güvenlik Sempozyumu’nda sunuldu
Johns Hopkins Üniversitesi’ndeki araştırmacılar, JavaScript programlarındaki çok çeşitli güvenlik açıklarını tespit edebilen grafik tabanlı bir kod analiz aracı geliştirdiler.
ODGen adlı araç, bu yılki Usenix Güvenlik Sempozyumu’nda sunuldu ve JavaScript programlarının analizinde grafik tabanlı güvenlik araçlarının kullanımını sınırlayan bazı zorlukları ele alıyor.
Araştırmacılar, 180 sıfır gün güvenlik açığı keşfettiği ve 70 CVE aldığı binlerce Node.js kitaplığına uygulayarak ODGen’in etkinliğini kanıtladı.
Grafik tabanlı yöntemler
Grafik tabanlı tarayıcılar, bir uygulamanın farklı özelliklerini ve yürütme dallarını temsil eden bir grafik yapısı oluşturmak için kaynak kod dosyalarını ayrıştırır. Bu grafik daha sonra kaynak koddaki güvenlik açıklarını modellemek ve bulmak için kullanılabilir.
Grafik sorgu tabanlı yaklaşımların, bazı programlama dillerindeki güvenlik açıklarını tespit etmede çok etkili olduğu kanıtlanmıştır. Özellikle bir teknik olan Code Property Graph (CPG), C/C++ ve PHP kodunun güvenliğini sağlamada başarılı olduğunu kanıtlamıştır.
ÖNERİLEN Bitbucket Server ve Data Center’da kritik komut ekleme güvenlik açığı keşfedildi
Johns Hopkins Üniversitesi’ndeki araştırmacılar, grafik yöntemlerinin – özellikle CPG’nin – başarısından ilham alarak bunları JavaScript’e uygulamaya çalıştı. JavaScript kodunda belirli güvenlik açıklarını bulmak için farklı araçlar olsa da, grafik tabanlı araçlar her türlü güvenlik açığını tespit etmek için genel bir çerçeve sağlamayı vaat ediyor.
Makalenin ortak yazarı ve Johns Hopkins Üniversitesi’nde bilgisayar bilimi yardımcı doçent olan Yinzhi Cao, “JavaScript, özellikle Node.js, bugünlerde milyonlarca paketle hayati bir topluluk haline geliyor” dedi. Günlük Swig.
“Aynı zamanda, bu NPM paketlerinin çoğu daha az korunuyor ve NPM ekosisteminde güvenlik açıkları yaygın. Bu nedenle ekosistemi daha güvenli bir ortam haline getirmek için çalışmayı gerçekleştirmeye karar verdik.”
Ancak, ilk bulguları, CPG’nin JavaScript’te dilin dinamik yapısı nedeniyle çok etkili olmadığını gösterdi, bu da yürütmeden önce nesne ilişkilerini ve program dallarını ayrıştırmayı ve analiz etmeyi çok daha zor hale getiriyor.
“CPG, (i) prototip zincirleri ve (ii) nesne düzeyinde veri akışları dahil olmak üzere ayrıntılı nesne ilişkilerini modellemez. Bu nedenle, Prototip Kirliliği ve Dahili Özellik Kurcalama gibi JavaScript’e özgü güvenlik açıklarını tespit etmek için CPG uygulamak zordur. Ve CPG’de ince taneli nesne düzeyinde veri akışlarını modellemek zor, ”dedi Cao.
Nesne Bağımlılığı Grafiği
Araştırmacılar makalelerinde, JavaScript kodundan grafikler oluşturmak için yeni bir yöntem olarak Nesne Bağımlılığı Grafiği’ni (ODG) öneriyorlar. ODG, Soyut Sözdizimi Ağaçları (AST) gibi CPG’nin bazı bileşenlerini kullanır ve nesneler arasında ayrıntılı veri bağımlılığı dahil olmak üzere JavaScript’e özgü özellikler ekler. Buna göre, araştırmacılar ODG’leri oluşturmak ve sorgulamak için bir araç olan ODGen’i yarattılar.
Cao, “Önerdiğimiz ODGen, JavaScript kodunu soyut olarak yorumlar ve nesne ilişkileri de dahil olmak üzere bu tür dinamik özellikleri yakalamak için sözde bir Nesne Bağımlılık Grafiği oluşturur, böylece grafik sorgu tabanlı bir yaklaşım bu tür bilgileri kolayca elde edebilir ve güvenlik açıklarını tespit edebilir” dedi.
En son bilgi güvenliği araştırma haberlerinin devamını okuyun
Araştırmacılar, uygulama ve paket düzeylerinde güvenlik açıklarını tespit etmek için ODGen’i tasarladı. Aracı, siteler arası komut dosyası çalıştırma (XSS), sunucu ve istemci tarafı istek sahtekarlığı (SSRF/CSRF), SQL enjeksiyonu, prototip kirliliği ve komut enjeksiyonu dahil olmak üzere 16 kategoriye yayılan 330 belgelenmiş güvenlik açığı üzerinde test ettiler.
Araç, 330 hatanın 302’sini keşfederek 13 tür güvenlik açığını çok yüksek doğrulukla tespit edebildi.
300.000 NPM paketini tarayarak ve sorguları algılamak için grafik sorgularıyla ODGen uygulayarak testlerini genişlettiler. ODGen, yaklaşık 3.000 güvenlik hatası bildirdi ve bu hatalardan araştırmacılar, haftalık 1.000’den fazla indirmeye sahip kütüphanelere ait 264’ü doğruladı. Birçoğu web uygulamalarında yaygın olarak kullanılan kitaplıklarda bulunan 180 güvenlik hatasını doğrulayıp rapor edebildiler. Keşfedilen güvenlik açıklarından 70’ine CVE atanmıştır.
ODGen, açık kaynaklı JavaScript ekosisteminin güvenliğini sağlamak için daha ne kadar yapılması gerektiğini ve mevcut araçların uyarlanmasının Node.js kitaplıklarının güvenliğini sağlamaya yönelik bütünsel yaklaşımlar geliştirmeye nasıl yardımcı olabileceğini gösteriyor.
Cao, gelecekte ekibin ODGen’i PHP ve Java dahil olmak üzere web uygulamalarında kullanılan diğer programlama dillerine genişletebileceğini söyledi.
BEĞENEBİLİRSİN Ethereum Vakfı, hisse kanıtı geçiş çarpanı ile 1 milyon dolarlık hata ödülü ödemeleri sunuyor