WordPress Sızma Testine Giriş
Geçenlerde, 34SP.com'da WordPress platform lideri Tim Nash'in çalışmasına yardımcı olduğum yerel WordPress buluşmasında konuşmasını sağladım. Tim, buluşmada üçüncü kez konuşuyor ve geçmişte site güvenliği ve performansı hakkında konuştu, ancak bu sefer bir avuç bilgisayar korsanlığı vaka incelemesinden bahsetti; sitelerden nasıl yararlanıldığı ve güvenlik açığını azaltmak için neler yapılabileceği.
Tim'in konuşması aslında bir WordPress tadıyla penetrasyon testine (veya pentesting) korkunç ve yararlı bir girişti. Yönettiğim sitelerin ne kadar güvenli olduğunu düşünmemi sağladı ve belki de WordPress güvenliğinin temellerinden daha fazla site güvenliğine gerçekten bakmam gerekiyor.
Sızma Testi Nedir?
Site güvenliğine ne kadar derin girerseniz, o kadar karanlık olur. Sızma testi, istismar edilebilecek güvenlik açıklarını belirlemek için bir sisteme, ağa, uygulamaya veya web sitesine yapılan bir saldırıyı simüle etme uygulamasıdır.
Basit bir ifadeyle, sitenizi korumak için bilgisayar korsanı olursunuz. Ancak bu, yaptığınız herhangi bir testin site veya sistem sahibi tarafından yetkilendirilmesi gerektiği anlamına gelir (okuyun: patronunuzun veya müşterinizin onay vermesi gerekir) ve tutuklama ve cezai suçlamalardan kaçınmak (bir avukat olmadığımı unutmayın) , Bu tekniklerin hiçbirini uygulamaya koymanızı veya bu araçları hain amaçlarla kullanmanızı tavsiye etmem.
Bir web sitesine sızma testi yapıyorsanız, lütfen mümkünse yerel geliştirme ortamınızdaki üretimin tam bir kopyası üzerinde gerçekleştirin. Üretim sitesini gereksiz yük altına sokmaz ve hacker olarak yanılgıya düşmezsiniz! 👮
Sızma testi tipik olarak, mümkün olduğu kadar çok güvenlik açığının bulunmasına izin vermek için sistem hakkında tam bilgi sahibi olarak ("beyaz kutu") veya sistem hakkında herhangi bir bilgi sahibi olmadan gerçek bir saldırıyı simüle ederek ('kara kutu') gerçekleştirilir.
Neden yaptın
Öyleyse neden daha fazla test yapma zahmetine girelim? Kişisel blogunuzun istismar edilip edilmediğini pek umursamayabilirsiniz – sadece onu kaldırın ve boş zamanınızda temizleyin. Bununla birlikte, e-ticaret ve iş açısından kritik siteler, güvenliğin birincil endişe olmasını gerektirir.
Düzenli penetrasyon testinin bazı önemli faydaları vardır:
- Özellikle eklentiler ve temalar güncellendiğinde ve yenileri yüklendiğinde, güvenlik açıklarını önceden bulun
- Bu güvenlik açıklarını istismar edilmeden önce ele alarak, saldırılardan sonra siteleri düzeltmek ve geri yüklemek için maliyetli kesinti sürelerini önleyin
- Müşteri verilerini güvende tutarak yasal cezalardan ve itibar zararlarından kaçının
Önerilen Sızma Testi Araçları
WordPress site güvenliği için en iyi tavsiye, WordPress çekirdeği, temalar ve eklentiler dahil her şeyi güncel tutmaktır. Tim'in belirttiği gibi –
Saldırıya uğramış bir sitenin düzeltilmesindense, tema veya eklenti güncellemelerinden kaynaklanan sorunları düzeltmek daha iyidir
Bunun alternatifi, yamalı görülen güvenlik açıklarını içerebilecek güncel olmayan kodu çalıştırmaya devam etmektir.
Bu da bizi test cephaneliğimizdeki ilk araca getiriyor.
WPScan
WPScan, hangi eklentileri yüklediğinizi görmek için sitenizi sorgulayan, sürümü kontrol eden ve WPScan Güvenlik Açığı Veritabanından alınan verileri kullanarak bu eklentilerin bilinen bir güvenlik açığı olup olmadığını bildiren ücretsiz, kara kutu WordPress güvenlik açığı tarayıcısıdır.
WPScan, bir siteyi yeni devraldıysanız ve eklentilerin veya temaların bilinen herhangi bir sorunu olup olmadığını kontrol etmek istiyorsanız kullanmak için harika bir araçtır. DigitalOcean, WPScan'ı kullanmak için iyi bir öğreticiye sahiptir.
Bir zamanlar popüler olan, eklentileri temalarla birlikte paketlemenin kötü uygulaması nedeniyle, temalar özellikle güvenlik açıklarına karşı hassas olabilir. Kötü çünkü böyle bir tema kullanırsanız, tema geliştiricisi temalarındaki eklentileri düzenli olarak güncellemedikçe ve tema sürümü güncellemeleri yayınlamadıkça, güvenlik açığı bulunan eklentilerin yamalı sürümlerinin sitenize ulaşması pek olası değildir. (Devrim Kaydırıcısı kimse var mı?)

Daha önce de belirtildiği gibi, hiçbir şey her şeyi güncel tutmakla karşılaştırılamaz. WordPress siteniz için otomatik tema ve eklenti güncellemelerini etkinleştirmezseniz, sitelerde WPScan'ı otomatik olarak çalıştırmaya ve hatta WPScan Güvenlik Açığı Veritabanından ücretsiz e-posta uyarılarına kaydolmaya değer.
sqlmap
sqlmap, sitelerdeki SQL enjeksiyon güvenlik açıklarını algılama sürecini otomatikleştirir. Bir sitenin GET, POST veya Cookie parametreleri veya HTTP User-Agent istek başlığı aracılığıyla veri kabul ettiğini biliyorsanız, bu sitenin bir SQL enjeksiyon güvenlik açığından etkilenme olasılığı vardır.
Güvenlik açıklarını test etmenize olanak tanıyan çok çeşitli argümanlar ve değiştiriciler ile sitenize yönlendirdiğiniz bir komut satırı aracıdır. Örneğin, veritabanına erişip erişemeyeceğimizi görmek için sqlmap almak için, bir sorgu dizesini kabul eden bir URL'yi işaret eden dbs argümanını kullanırsınız:
sqlmap -u http://mysite.dev/products/?cat=15 --dbs
SQL enjeksiyonu konusunda neden endişelenmelisiniz? Diyelim ki, bir sorgu dizesi aracılığıyla verileri kabul eden ve veritabanını sorgulamak için kullanılmadan önce bu verileri uygun şekilde sterilize etmeyen bir eklentiniz olduğunu varsayalım, o zaman kötü niyetli bir kullanıcı SQL koşullarını sorgu dizesi değerine, hatta yığılmış SQL ifadelerine geçirebilir (düşün http://mysite.com/?id=1;DROP database 😬).
Formlar veya sorgu dizeleri aracılığıyla kullanıcı verilerini kabul eden bir eklenti veya kod geliştiriyorsanız, verileri arka uçta kullanmadan önce nasıl sterilize ettiğinizi ve kontrol ettiğinizi dikkatlice düşünün. Sağlamlığını test etmek için kendi WordPress kodunuzu denemek ve kesmek için sqlmap kullanın.
PHPStan
Tim, kodunuzdaki hataları ve hataları bulmanıza yardımcı olmak için kod tabanınıza işaret edebileceğiniz bir PHP statik analiz aracı olan PHPStan'dan da bahsetti. Gilbert'in son zamanlarda SpinupWP'nin Laravel kod tabanında çalıştırdığından ve bazı iyi sonuçlarla çalıştırdığından bahsettiğini görmüştüm, bu yüzden bazı WordPress sitelerine yönlendirmek istedim:
@github bütün gün kapalı olduğundan, en son Laravel projemizde @phpstan'ı kurmak için biraz zaman harcadım. Tabii ki, birkaç hata buldu. https://t.co/3ZsANRhIjN
– Gilbert Pellegrom (@gilbitron) 22 Ekim 2018
Ne yazık ki araç, WordPress'in olmadığı nesne yönelimli kod tabanlarına yöneliktir.
WordPress projeleri için kod analizi alternatifleri bulunmaktadır. PHP_CodeSniffer için, olası kod sorunlarını ortadan kaldırmaya yardımcı olmak için kodunuzun tanımlanmış standartları takip edip etmediğini kontrol eden WordPress kuralları vardır. Ayrıca Scrutinizer gibi hizmetler, sorunları, hataları bulmak ve kodlama stillerini zorlamak için kodunuzu sürekli olarak analiz eder. WordPress eklentisi ve tema kodu kalitesini iyileştirmeye yardımcı olacak Tide projesi de var.
Geliştirme sırasında kodunuzun kalitesini aktif olarak izlemek, savunmasız kodun üretime ulaşma olasılığını azaltacaktır.
Kali
Penetrasyon testi konusunda ciddiyseniz, Kali'ye bir göz atın. Kali, tüm araçları çalıştırabileceğiniz ve güvenlik açıklarını tespit etmek, kullanmak ve düzeltmek için tüm adımları gerçekleştirebileceğiniz (elbette güzel amaçlar için!) sanal bir makine olarak kurulmuş eksiksiz bir test platformudur.
WordFence, Kali platformunu kullanarak bir sızma testinin parçası olarak atılacak adımlar konusunda harika bir kılavuza sahiptir:
- Keşif
- Tarama
- sömürü
- Azaltma
OWASP ZAP, Metasploit ve BurpSuite gibi testlere yardımcı olacak bir sürü başka araç var. Ancak, seçtiğiniz araç ne olursa olsun, sızma testinin nihai amacı, azaltma kısmıdır. Güvenlik açıklarını bulup yeniden oluşturabilirseniz, bunları düzeltebilirsiniz.
Toplama
Umarım bu size gelişmiş penetrasyon testi uygulamasına ve WordPress sitenizin güvenliği için neden yatırım yapmaya değer olduğuna dair iyi bir giriş sağlamıştır.
WordPress sitelerinizde veya müşterileriniz için penetrasyon testi yapıyor musunuz? Yararlı bulduğunuz araçları kaçırdım mı? Aşağıdaki yorumlarda bize bildirin.
ev borcu WordPress sitesi