Retire.js ile Javascript Kütüphanelerinizin Güvenliğini Kontrol Edin
Web, artık işin çoğunu istemci tarafına yıkmakta, buna istinaden de Javascript, box-to-box oynayan bir orta saha oyuncusu kıvamında web karmasının vazgeçilmez bir oyuncusu olmuş durumda. JavaScript dilinin önemi giderek artarken diğer taraftan web geliştiriciler artık doğrudan JS yazmak yerine, uygulamalarına popüler JS kütüphanelerini dahil etmeye başladı.
Open source rüzgarını arkasına alan, dokümantasyon noktasında nirvanaya ulaşan, devamlı geliştirilen ve kullanılan bu kütüphaneler haliyle bir çok şeyi daha önceden yapmış ya da sizin yapmanız için kendisi bir şeyler sunuyor hale geldi.
Web’i güzelleştiren bu kütüphanelerin yaygın olarak kullanımı, aynı zamanda bazı güvenlik problemlerini de beraberinde getiriyor. Biz de bu yazımızda bu kütüphanelerin güvenliğini nasıl kontrol edebileceğimizi göreceğiz.
Retire.js Projesi
Retire.js projesi, popüler JS kütüphanelerinin ve node.js paketlerinin versiyonlarını ve bu versiyonlarda bulunan güvenlik açıklarının neler olduğunu ilişkilendiren, bunları tespit edip raporlayan open source bir proje.
Github üzerinden erişebileceğiniz bu proje ile; angularjs, backbone.js, dojo, DOMPurify, DWR, easyXDM, ember, handlebars.js, jPlayer, jquery, jquery-migrate, jquery-mobile, jquery-ui-dialog, jquery-ui-tooltip, jquery.prettyPhoto, mustache.js, plupload, prototype.js, sessvars, swfobject, YUI isimli JS kütüphanelerinin ve bir dizi node.js paketinin bilinen güvenlik açıklarını kontrol edebilirsiniz.
Bu işlemi nasıl yaparım?
Retire.js’i komut satırından çalışan bir güvenlik tarayıcısı olarak kullanabileceğiniz gibi, Chrome ve Firefox extension’ı olarak da çalıştırmanız mümkün.
node.js’i bilgisayarınıza ya da web uygulamanızın bulunduğu sunucuya kurduktan sonra (npm install -g retire komutu yeterli), retire’i aşağıdaki şekilde çalıştırabilirsiniz;
retire -j --jspath c:\JSLibraries\
Bu komutun bendeki çıktısı şöyle oldu;
retire.js, belirttiğimiz dizindeki tüm .js uzantılı dosyaları taradı, jquery-1-6-3.js dosyasını buldu, versiyonunu tespit etti ve varsa (ki örneğimizde var) güvenlik açığını da bize raporladı.
Sonra?
Sonrası kolay. İlgili kütüphaneyi güncellemek ve retire.js’i güncel tutarak rutin olarak bu taramaları yapmak, sizi olası sorunlardan büyük ölçüde koruyacaktır. Uygulamanızdaki güvenlik açıkları sadece JS açıklarından ibaret değil elbetteki, hala web uygulamanızda çözülmesi gereken bir dizi güvenlik problemi olabilir.
Diğer güvenlik açıkları için ne yapmalı?
Yine devnot üzerinden daha önce duyurduğumuz Netsparker Cloud isimli ürün ile open-source web uygulamalarını ücretsiz taratabilirsiniz. Bu kapsama girmeyen bir web uygulamanız varsa da demo hesabı istemek için benimle onur[at]netsparker[dot]com adresinden benimle irtibata geçebilirsiniz.