5 Adımda WordPress Güvenliğini Sağlamak

Merhabalar, öncelikle bu yazıma başlarken şunu söylemek istiyorum; tam anlamıyla “hacklenemez” hiçbir sistem mevcut değildir.

Intranet’ de bulunmayan (internete açılmış) her cihaz hacklenme tehditi altındadır. Biz sağladığımız güvenlik önlemleriyle saldırganlara zorluk çıkartarak ihtimalleri azaltırız.

Bildiğiniz üzere WordPress, dünyanın en çok tercih edilen açık blog yazılımı. Dünya genelinde şu anda türkiye nüfusunun 1.5 katı kadar (yaklaşık 140 milyon civarı) wordpress site olduğu tahmin edilmektedir. (Canlı Kaynak)

Peki, bu 140 milyon sitelerin bir kısmı wordpress olmasına rağmen kolayca hacklenebilecek zaafiyetler içeriyor. Bu durum webmasterların aklında “WordPress alt yapısını kullanan sitemizin güvenliğini nasıl sağlamalıyız” sorusunu getiriyor.

Öncelikle şunun farkında olmalıyız;

WordPress sistemlerde LFI,RFI gibi ilkel düzey açıklar olmadığı için saldırganlar mecburen hijacking, bypass ve brute attack gibi internete bağlı tüm cihazları tehdit eden genel  saldırı tekniklerini kullanacaklardır. Bu nedenle az sonra inceleyeceğimiz 5 güvenlik maddesinden 4’ü de bu saldırı tiplerine karşı savunma tekniklerini içerecektir.

1-Wordpress Yönetici Girişi Sayfasının URL’sini değiştirmek

Bilindiği üzere bir değişiklik yapılmadıkça tüm WordPress sitelerin yönetim paneline giriş url’si /wp-admin’ dir.

yani sitenizin adı x.com olsun, x.com/wp-admin/ yazarak yönetim paneline açılan kullanıcı adı-şifre doğrulama sayfasına gidebilirsiniz.

Bildiğiniz üzere saniyede yüzlerce kullanıcı adı- şifre çifti yazarak tüm olasılıkları deneyen ve sonunda sisteme sızdığında size haber veren otomatik bot yazılımları mevcut. Bunlara Brute Forcer adı veriliyor.

Yalın WordPress sistemler, hiçbir fazlalık güvenlik önlemi içermez. Dolayısıyla Brute forcer’ın Login sayfanıza ulaşması bile saldırının başarılı olması için büyük bir adımdır.

Bunun için en iyi çözüm wp-admin sayfasının urlsini değiştirmek olacaktır. Böylece bruteforcer, deneme yanılma ile doğru kombinasyonu bulabileceği giriş paneline de ulaşamayacak veya ulaşmak için uzun süre zaman kaybedecektir.

Bunun için elbette .Htaccess dosyasını düzenleyeceğiz.

.Htaccess dosyamızın en başına şu aşağıdaki kodu düzenleyerek ekleyerek /wp-admin olan giriş sayfanızı /yeniadmingirispanelurl yapabilirsiniz.

RewriteRule ^yeniadmingirispanelurl$ http://siteadresi.com/wp-login.php [NC,L]

Elbette bu işi yapan bazı wordpress eklentileri de mevcuttur. Eğer ben elimin yazısıyla koda bulaşmam diyorsanız  Lockdown WP-Admin WordPress eklentisini sitenize kurarak da kolayca yönetim panelinizin giriş sayfasını değiştirebilirsiniz

1.1- Ve tabii ki giriş URL ‘ini şifrelemek

Hazır WordPress yönetim sayfanızın dizini değiştirmişken bir de http protokü üzerinden bu sayfaya şifre koymak, login sayfanızın üstüne adeta bir kat sur çekecektir ve brute force’u adeta imkansız hale getirecektir.

Http protokolü üzerinden konulan şifreyi elbette daha önce bir yerlerde görmüşsünüzdür. Şöyle gözükür;

Bunu yapmak için bu sefer mecburen .htaccess dosyasını kodlamalısınız.

234AuthType BasicAuthName “dizine erisene verilecek uyari”AuthUserFile “/home/kullaniciadi/public_html/sifrelenendizinadi/.htpasswd”require valid-user

Yukarıdaki gibi sunucunuz içerisinde AuthUserFile parametresi olarak şifrelenecek dizin yazmalısınız.

dizinin içine de .htpasswd adlı şifreyi içeren dosyayı oluşturmalısınız. Mevzubahis dizine ulaşmak için gerekli şifreyi bu dosyaya yazacağız.

Cyseclab:49lOEV/uT2dfY

Bu değer kullanıcı adı:şifre şeklindedir.
.htpasswd dosyanıza kullanıcı adı ve şifreyi http://goo.gl/2ZEI38 adresinden oluşturarak ekleyebilirsiniz. Bu adreste verilen değerleri .htpasswd dosyanıza yapıştırmanız yeterlidir.

2-Wordpress Yazarlar Kullanıcı Adlarınızı, Temanızı ve Eklentilerinizi Gizli Tutmak

Yukarıda Brute Force’dan bahsetmiştik. Brute Force Kullanıcı adı ve şifre kombinasyonunun deneme yanılma ile bulunmasını sağlayan yöntemdi. Normal WordPress sistemlerde yazarların kullanıcı adı, sitenin bir çok yerinde görülebilir (Örneğin makalenin üstünde, … tarafından yazıldı gibi) bu da saldırgana ihtiyaç duyduğu kullanıcı adını vermekte ve sadece şifre üzerine deneme yapmasını sağlayarak resmen saldırganın yolun %50 sini geçmesini sağlamaktadır.

Bunun için tabii ki yazarların adlarını gizleyen bir wordpress eklentisi kullanmalıyız. Bahsettiğim Show Hide Author  eklentisine yazıya tıklayarak gidebilirsiniz. Bu eklenti ile yazarların adını tamamen gizleyebilir ya da kullanıcı adı olmayan ad-soyad ikilisinin gözükmesini sağlayabilirsiniz.

Örneğin kullanıcı adı umtaksyl ise bunu gizleyip “Ümit Aksoylu” gözükmesi gibi.

Ek olarak, wordpress’inizde kullandığınız temalar ve eklentiler kolayca tespit edilebilir.

whatwpthemeisthat.com gibi wordpress sitelerin hangi tema ve eklentileri kullandığını tespit edebilecek bir çok araç bulunmaktadır. Saldırganın kullandığınız tema ve eklentileri bilmesi, eğer varsa bu bileşenlere ait 0Day açıklarından faydalanmasına ve böylece sunucunuzun penetration‘a maruz kalmasına sebep olabilir.

Bunun da önüne geçmek için de WP Hide & Security Enhancer eklentisini kullanmanızı tavsiye ediyorum. Sitenizdeki tema ve eklentileri gizlemek, hatta öyle ki sitenizin wordpress olduğunu bile gizlemek bu eklenti sayesinde adeta çocuk oyuncağı olacaktır.

Görüldüğü üzere bizim websitesinde gözükmüyor.Normalde gözükmesi gerekiyordu.

3-IP Adresi Bazlı Güvenlik Eklentisi Kullanmak

Temel olarak sunucuya gönderilen istek sayısı / dakika oranı ile bir kullanıcının agresif trafiğe sebep olup olmadığı anlaşılabilir. IP bazlı WordPress güvenlik eklentileri ise bu oranı aşan kullanıcılara, bot olmadıklarını ispatlaması için bir captcha kodu sorar. Eğer kod başarıyla girilirse kullanıcı devam edebilir. Eğer girilmez ise kullanıcının IP adresi otomatik olarak sunucuda yasaklanır.

Bu işi yapmak için çok fazla wordpress eklentisi mevcut. Ancak benhem login sayfası hemde genel sitede dolanım trafiğini koruması için Blackhole for Bad Bots eklentisini öneriyorum.

Bu eklenti hem agresif trafiği sitenizden uzak tutacak hem de önemli sayfalarınızdaki Brute Force girişimlerini bertaraf edecektir.

4-Ofansif  Firewall Çözümü Edinmek

Geliştirilmiş tüm sistemler veri tabanı, Çerezler, Cross Side gibi bir çok ayrı parametre üzerinden tehdit edilebilir durumdadır. Güçlü bir önlem olarak web sitenizi PHP bazlı başka bir firewall ile korumak, sizi DDOS, XSS, SQL, Spam Bot, Kötü Bot, IP Crawlers, Çerez vb, CSRF ve benzeri bir çok atağa karşı koruyacaktır.

Ayrıca akıllı Firewall’lar, yapay zeka tabanlı mekanizmaları sayesinde sitenize gelen ziyaretçilerin mause hareketleri vs. aktivitelerini algılayarak kötü amaçlı bot olup olmadıklarını anlayabilir. Böylece sitenizi yaşan ve öğrenen bir güvenlik kalkanı koruma altına almış olur.

5- WordPress ve Tema sürümünüzü Her Zaman Güncel Tutmak

Elbette 0Day olarak bilinen ciddi ve her gün sayısı artan açık türleri var. Bu tarz bir 0Day açığını içinde barındıran bir tema ya da eklentiler (veya wordpress’in kendisi) genelde böyle sorunlara siren sesleri çalarak ivedilikle yaklaşmakta ve adeta zamanla yarışarak saatler içerisinde problemleri çözen güncellemeler yayınlamaktadır.

WordPress’ inizi, temalarınızı ve eklentilerinizi güncel tutarak her zaman 0 Day açıklarına karşı sunucunuzu resmen “aşıladığınızı” unutmayın. O yüzden lütfen yukarıdaki resimdeki gibi bir güncelleme uyarısı gördüğünüzde dikkate alın ve WordPress yazılımınızı en kısa zaman içerisinde güncelleyin.Daha Fazla Kişiye Ulaşması İçin Bu İçeriği Paylaşabilirsiniz.

Yazıyı yazdığı için değerli arkadaşım Ümit Aksoylu’ya teşekkür ederim.Buradan websitesine giderek kendisi ve yazıları hakkında bilgi alabilir, geri dönüşler yapabilirsiniz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir