WordPress Güvenliği
If you are looking for an English version of this article, please visit here.
Neredeyse 10 yıla yakın bir süredir siber güvenlik üzerine araştırmalar yapıp, öğrendiklerimi yazmaya, sizlerle paylaşmaya devam ediyorum. Sizlerden gelen geri bildirimlere baktığımda çoğunluğunuzun yazdıklarımdan faydalandığını görmek beni bir hayli mutlu ediyor. Kimi zaman özünde kötü niyet olmayıp sadece bana mesaj vermek için bloguma ufak çaplı siber saldırı (Örnek: DoS ile Mücadele yazısı) gerçekleştirenler, aşağıdaki gibi yönetici girişi yapmayı deneyenler olsa da bazen tam olarak sebebini ve niyetini anlayamadığım saldırılarla da karşılaşıyorum. Bundan yola çıkarak ben de bu yazımda, bu saldırılardan birini nasıl tespit ettiğime ve benim gibi WordPress CMS kullananların bloglarını nasıl güvenli hale getirebilecekleri ile ilgili ipuçları vermeye karar verdim.
Öncelikle WordPress ile ilgili istatistiki bilgilere yer vermek gerekirse, WordPress dünya genelinde en çok kullanılan içerik yönetim sistemidir ve CMS dünyasının ~%60‘ına hakimdir. Internet genelindeki web sitelerinin ~%33‘ünde yine WordPress kullanılmakta olup ~55.000‘den fazla yakın eklentisi bulunmaktadır. Yıllar içinde WordPress üzerinde tespit edilen zafiyet türleri değişiklik gösterse de bu zamana kadar en çok tespit edilen zafiyet türü Cross-Site Scripting (XSS)‘dir. WordPress zafiyet veritabanına baktığımızda ise WordPress’in kendi kodlarında (core) ve eklentilerinde bu zamana dek 15.000‘den fazla zafiyet tespit edildiğini görebiliyoruz.
WordPressler’in genel olarak nasıl hacklendiğine baktığımızda çoğunlukla güvensiz barındırma firmaları/hizmetleri, zayıf yönetici parolası, güncel olmayan sürüm, eklentiler, temalar ve arka kapı içeren korsan temalar (Örnek: Arka Kapı Avı yazısı) kaynaklı olduğunu görüyoruz.
Benim de zayıf yönetici parolalarını tespit etmek için denenen wp-admin sayfam her ne kadar internete açık olsa da uzun yıllardır Duo Two-Factor Authentication eklentisinden faydalanarak yönetici girişi için iki faktörlü doğrulama kullanıyorum. Ayrıca Wordfence Security eklentisinden de faydalanarak deneme yanılma saldırıları gerçekleştiren ip adreslerinin otomatik olarak engellenmesini, olası güvenlik zafiyetlerin tespit edilip raporlanmasını da sağlıyorum. Arka kapı içeren temalara karşı da ücretli tema kullanmayı tercih ediyorum. Güvensiz barındırma hizmetleri ile uğraşmamak adına da yine uzun yıllardan beri VPS kullanıyorum.
2018 yılının Temmuz ayında günlerden bir gün yine blogumun Wordfence eklentisinin güvenlik ekranını (dashboard) kontrol ederken, yönetici sayfama deneme yanılma saldırısı (brute-force) yapıp en çok bloklanan ip adreslerinin Türkiye’den olması dikkatimi çekti. IP adreslerinin whois bilgilerini kontrol ettiğimde, tamamına yakınının iDealhosting isimli barındırma servisi sağlayan bir firmaya ait olduğunu öğrendim ve güvenlik araştırması adına bu ip adreslerinden bloguma gerçekleştirilen saldırıları yakından izlemeye karar verdim.
Ekim ayında güvenlik ekranını tekrar kontrol ettiğimde ise deneme yanılma saldırılarının 22 ip adresinden aralıksız olarak devam ettiğini gördüm. Tabii bir güvenlik araştırmacısı olarak aklıma gelen sorulardan ilki bunun bloguma gerçekleştirilen hedeflenmiş bir saldırı girişimi olup, olmadığıydı. Bunu öğrenmenin en kolay yollarından biri deneme yanılma saldırılarında kullanılan parolaları öğrenmekti dolayısıyla vakit kaybetmeden işe koyuldum.
İlk olarak wp-login.php dosyasına yapılan hatalı giriş denemelerini parola ile birlikte diske kayıt eden bir PHP kodu hazırladım. Ardından bu kayıt edilen dosyadaki değişikliklerden de anlık olarak haberdar olabilmek için OSSEC HIDS üzerinde küçük bir tanım yaptım.
Ekim ayının sonu ve Kasım ayı boyunca kayıt altına alınan hatalı kullanıcı adı ve parola denemelerine baktığımda, denenen kullanıcı adı ve parolaların sözlükte yer alan sıradan kelimeler yerine blog yazılarımda geçen kelimelerden oluştuğunu öğrendim. Bu bilgi benim için hedeflenmiş bir saldırı girişimi olduğuna işaret ediyordu.
2019 yılının Şubat ayında denenen parolalara tekrar baktığımda ise bu defa 2009 yılında hacklenen Rockyou.com sitesinin veritabanından elde edilen parolaların denenmeye başladığını gördüm.
Araştırmamı tamamladıktan sonra daha önce gevşettiğim güvenlik kontrollerini sıkılaştırmak için öncelikle Google Captcha eklentisini yönetici sayfası için etkin hale getirdim. Ardından da Wordfence’in Firewall ayarları sayfasındaki Brute Force Protection bölümünde hatalı kullanıcı adı denemesi yapan ip adresinin otomatik olarak bloklanmasını sağladım.
Bu araştırma sonucunda aylardır blogumu hacklemek için birilerinin uğraştığını üzülerek öğrenmiş oldum. Benim gibi WordPress CMS kullananların ise Google Captcha, Duo Two-Factor Authentication ve Wordfence Security eklentilerini muhakkak kurup düzgün bir şekilde ayarlarını yapmalarını ve ayrıca OSSEC HIDS ile de şüpheli durumlara karşı sistemlerini yakından izlemelerini şiddetle tavsiye ederim.
Bir sonraki yazıda görüşmek dileğiyle herkese güvenli günler dilerim.