38C3: “Phuzz” çerçevesi PHP web uygulamalarındaki hataların tespit edilmesine yardımcı olur

celeron

Global Mod
Global Mod
PHP hala web'deki baskın programlama dilidir; Tüm web sitelerinin dörtte üçü betik dilini temel alıyor çünkü WordPress, Drupal veya Joomla gibi PHP tabanlı içerik yönetim sistemleri kullanıyorlar. Eklentilerdeki ve temalardaki güvenlik açıkları, saldırganların hassas verilere erişmesine neden olabilir. TU Berlin Telekomünikasyonda Güvenlik Kürsüsü'nde doktora öğrencisi olan Sebastian Neef, 38. Kaos İletişim Kongresi'nde (38C3) özellikle PHP web uygulamalarını hedefleyen kapsam kılavuzlu bulanıklaştırma çerçevesi olan “Phuzz”u sundu. Hem geliştiricilerin hem de güvenlik araştırmacılarının güvenlik açıklarını hızlı bir şekilde bulmasına ve düzeltmesine yardımcı olmayı amaçlamaktadır.


Reklamcılık



Güvenlik araştırmacıları, güvenlik açıklarını erken bir aşamada ortaya çıkarmak için “bulanıklaştırma” tekniğini kullanır: beklenmeyen davranışları ve dolayısıyla potansiyel güvenlik risklerini keşfetmek için programlar çok sayıda rastgele girdiyle otomatik olarak test edilir. İyi bilinen örnekler, Google tarafından açık kaynaklı yazılımları test etmek için geliştirilen OSS Fuzz'ın yanı sıra American Fuzzy Lop (AFL) ve onun yan ürünü AFL++'dır. Öncelikle ikili uygulamalara odaklanan bu araçların aksine Phuzz, modern web uygulamalarının ihtiyaçlarını karşılamak için özel olarak tasarlanmıştır.







“Phuzz” çerçevesinin mimarisine genel bakış


(Resim: Sebastian Neef ve diğerleri, TU Berlin)



“Kapsama kılavuzlu” yaklaşım, bulanıklaştırma sürecini optimize eder


Neef'e göre Phuzz'un özelliği “kapsam kılavuzlu” yaklaşımdır: Çerçeve, test girdilerinin hangi kod alanlarına ulaştığını analiz eder ve sonraki testleri buna göre uyarlar. Geliştiriciye göre webFuzz, CeFuzz, Witcher veya Atropos gibi diğer araçlarla karşılaştırıldığında test edilen uygulamanın kaynak kodunun değiştirilmesine gerek yok.

Phuzz, yedi farklı güvenlik açığı türünü tespit etmek için tasarlanmıştır: SQL Enjeksiyonu, Komut Enjeksiyonu, Harici Varlık Enjeksiyonu, Yol Geçişi, Güvenli Olmayan Seriden Çıkarma, Siteler Arası Komut Dosyası Çalıştırma ve Açık Yönlendirme. Çerçeve, enstrümantasyon için açık kaynak UOPZ, pcov ve Xdebug uzantılarını kullanır. Neef, Phuzz'un çok örnekli paralel fuzzing'i destekleyerek geleneksel “kara kutu fuzzer”lardan daha fazla sunucu tarafı güvenlik açığı bulduğunu söyledi.

PHP'de “kara kutu fuzzer”dan daha başarılı


Phuzz, 300.000'den fazla aktif kurulumla 183 popüler WordPress eklentisini test ederken 1.019 API uç noktası belirledi ve Popup Builder Eklentisindeki (CSRF Güvenlik Açığı) ve bir başka eklentideki (Yerel) onaylanmış iki “sıfır gün” güvenlik açığı dahil olmak üzere önceden bilinmeyen birkaç güvenlik açığı keşfetti. Dosya Ekleme).

Şu anda Phuzz yalnızca çok adımlı ve durum bilgisi olan eylemleri sınırlı bir ölçüde işleyebilir ve UOPZ ile PHP ifadelerine (örneğin, eval, include…). Performans ayrıca ikili bulanıklaştırmaya kıyasla optimize edilebilir. Neef, Phuzz çerçevesini GitHub'da yerleşik, modüler açık kaynaklı yazılım olarak sunuyor ve sizi katılmaya davet ediyor.

Nasıl çalıştığına dair daha fazla ayrıntıyı Açık Erişim altında yayınlanan araştırma makalesinde ve 38C3 dersinin kaydında bulabilirsiniz.


(vza)