Now listen up WordPress blog owners. According to a recent USA Today report, hackers are hammering websites with up to 450,000 SQL Injection attacks a day. A day! They do it to infect sites, which in turn infect their visitors to turn their computers into attack bots or virus drones. It’s getting nasty out there.
WordPress is the number one blog software around and therefore the number one target for these and other types of attack. No-one is immune, regular Ferret readers will remember we got zapped last summer, and very sordid and painful it was too. So here, in the cause of better security for all, is our list of 16 Essential WordPress Plugins To Protect Your Blog From Hackers. Please pass this info around to fellow WP bloggers, so we can fight this nastiness together!
First things first – go read this article on WordPress.org about hardening your WP installation. Don’t put it off, do it today. Then you’ll have a better idea about the issues you need to deal with. Of course the number one form of protection you can have is to keep your WordPress installation updated to the most recent version. We learned this the hard way last year! Once you’ve done that you can use some of these cool plugins to provide added protection. Good luck, and remember peeps, it’s a war out there.
Maximum Security for WordPress. Strangely we’re going to begin by recommending a product which isn’t actually out yet. It is in private beta, but from the looks of the feature list, once it launches this will be the WordPress security plugin to beat. Bookmark or sign up for the alerts.
WordPress Guard Plugin. Yet another cool free plugin from Angsuman. This one adds an extra layer of password protection to your wp-admin directory, panel and login.
WordPress Firewall. Detects, intercepts and blocks suspicious looking attempts to upload code to your WordPress installation or server. Comprehensive cover.
Login Lockdown. Logs all failed attempts to log in to your blog. Too many tries result in the offending IP being blocked for a customisable amount of time (default 1 hour).
Secure WP. Masks your blog’s directories, removes version info and plugin information to make it hard for hackers to identify what’s installed.
AskApache Password Protect. Brutally efficient password protection for all areas of your blog installation. Be careful, potent plugin.
WordPress Security Plugin. Block rogue script attempts, blacklists IPs. More hands-on than some of the other plugins, but worth keeping in mind.
WP Prefix Table Changer. Secure your database by changing the table prefixes (e..g. wp_) to make them more obscure.
BlogSecurify. Plugin allows you to remotely check your blog for security vulnerabilities on demand. A little fiddly.
WordPress Exploit Scanner. Scan your WordPress install for signs of suspicious activity. Searches through both files and the database. Be wary of the server load if you have a heavy traffic blog.
WP Security Scan. Scanner plugin looks for vulnerabilities in your install and recommends action to cure the possible danger/s.
WP-Scanner. Measures your WordPress security level with a remote scan. May not work with some themes.
Secure Form Mailer. Implement a secure form on your WordPress blog with capcha and protection against malicious attacks (e.g. email header injection etc).
SABRE. Anti-Bot registration plugin. Includes capchas and maths test. Ultimately the safest form of registration for your blog is to switch it off completely, but if you must have user reg, then do it securely.
Block Long Query. Tiny plugin stops potential XSS exploits using long URL queries. A little obscure but could still be a useful tool.
Our top 3 tips:
Keep your WordPress install updated to the latest version.
Disable user registrations.
Mask your blog directories and protect your wp-admin folder.
Google kısa bir süre önce reCAPTCHA‘yı güncellediğini ve yeni bir özellik getirdiğini duyurdu. Karmaşık güvenlik kodları, karakterler ve zor görünen kodlardan bizi kurtarmak için “Ben Robot Değilim” özelliği getirdi.
Sistem teknik olarak nasıl çalışıyor bilmiyorum çok detaylı araştırmadım ama iyi görünüyor. Bir müşteriye kurduğum WordPress site giriş paneline sıkça giriş denemeleri oldu ve ben bu eklentiyi kurduktan sonra artık giriş denemeleri sona erdi. reCAPTCHA bazen onaylasada bazen güvenlik kodu sorabiliyor 🙂
Ama çok şık bir eklenti tavsiye ederim herkese. Ben güvenlik kodlarına “İnsalık Testi” yazdığımda müşteriler hep itiraz ediyordu böyle şeymi olur diye. Google “Ben robot değilim” yazdı bakalım önümüzdeki dönemlerde müşterilerden nasıl bir yorum alcaz. 🙂
Sistem nasıl çalışıyor? “Ben robot değilim” yazısının solundaki onay kutucuğuna tıklıyorsunuz ve robot değilseniz sistem size onay veriyor. Alttaki resimde bunu görebilirsiniz.
WordPress reCAPTCHA Eklentisi
Bu eklentiyi öncelikle WordPress sitemize kuruyoruz ve aktifleştiriyoruz.
Daha sonra reCAPTCHA sayfasına tıklıyoruz. Alttaki resimdeki gibi alanları dolduruyoruz. Alan adınızı ve bu alan adları topluluğuna bir başlık atıyoruz.
Daha sonra Google bize Site key ve Secret key veriyor.
Bu resimdeki kodları WordPress eklentisindeki boş alanlara giriyoruz.
Daha sonra kaydediyoruz ve eklentideki alttaki ayarları kontrol edip nerelerde bu sistemin çıkmasını istiyorsanız orayı aktif edip bırakıyorsunuz.
Son günlerde bu soru sıkça sorulduğu için bende detaylı bir temizliği nasıl gerçekleştirebiliriz bunu anlatmak istiyorum.
Diyelimki WordPress sitemize indirdiğiniz warez tema, eklenti veya bir açık yüzünden sistemimize erişildi (CryptoPHP yazımı mutlaka okumanızıda tavsiye ederim.). Burada saldırgan öncelikle FTP alanına daha rahat çalışabileceği yada diğer dille shell (c99,r57) atıp sistemde açık arayacaktır. Eğer sistemde açık bulamaz ise başka exploitler atıp sunucuyu hacklemeye çalışacaktır. Bu sürekli devam eder yapamasa bile denemek amaçlı sürekli girip birşeyler dener.
Bazı SEO’cular ise bu tip sitelere erişip açıkları kapatır ve WordPress dosyaları içerisine kendi dosyalarını barındırırlar. İleri bir tarihte tekrar girip istediği gibi at koşturabilmek için. Birde eski tarihli içeriklere link ekleyip backlink elde ederler.
WordPressi nasıl temizlerim? sorusuna internet üzerinde bir çok yazı mevcut ama hepsi zor kısımdan anlatıyorlar. Şöyle ki: WordPress sisteminizi tekrar update yapıp FTP alanından tekrar dosya tarihlerini kontrol ederek update ettiğiniz tarih yani o anki tarih ve saat olacağınızdan WordPress sistemi olmayan dosyalar eski tarihli kalacak ve siz onları sileceksiniz. Buda bir yöntem ama daha iyisi varken uğraşmayın!
Tüm bu işlemlere başlamadan önce sitenizin bir yedeğini almanızı tavsiye ederim. Bu işlemler esnasında bir problem çıkmayacaktır ancak yanlışlıkla yapabileceğiniz hatalar sonrası sistemi tekrar kurmak için yedek almanızı öneririm.
Öncelikle WordPress sistemde bu dosyaları siliyoruz çünkü sistem kurulduktan sonra tema ve eklentileri bu klasöre atmadığımız için bu klasör her zaman sabit kaliyor. Bu yüzden önceliğimiz bu dosyalar.
WordPress.org’dan son sürüm wp indiriyoruz. Son sürüm: indir
Daha sonra son sürüm içerisindeki wp-admin, wp-includes ve ana dizin dosyalarını .zip’liyoruz. Fotoğrafta nasıl zipleyeceğinizi anlattım.
Not: Eğer ziplemeyle uğraşmak istemiyorsanız FTP’ye bir klasör açın “yenisite” adında bu dosyas içerisine “wp-admin, wp-includes, ana dizin dosyalarını” yükleyin. Sildikten sonra ana dizine sürüklersiniz.
Daha sonra cPanel‘den “wp-admin, wp-includes, ana dizin dosyalarını” siliyoruz. Silme işlemi FTP’ye göre çok hızlı biteceği için hızlı bir şekilde wordpress.zip dosyamız üzerine gelip sağ tıklıyoruz. Extract diyip dosyalarımızı çıkartıyoruz.
Şu anda wp-admin, wp-includes ve ana dizin dosyalarını temizledik artık bunlardan bir korkumuz yok 🙂
2) Wp-content Temizliği
En çok uğraşacağımız klasör bu. Bu yüzden bunun üzerinde iyi inceleme yapmamız gerekiyor.
Öncelikle bu klasörü bilgisayarımıza indiriyoruz ve bilgisayarımızdaki anti virüs aracılığı ile tarama yaptırıyoruz. Anti virüs eğer shell dosyaları varsa zaten uyarı verecektir. Herhangi bir virüs bulamadıysa alttaki eklentiyi kullanarak devam ediyoruz.
a) Anti-Malware and Brute-Force Security – WP Plugins
Bu eklenti sistemdeki tüm dosyaları tarayıp aralarında zararlı olanlar varsa tespit ediyor ve size bu dosyaları listeliyor.
Bir çok eklenti test ettim ama aralarında en iyiyi bulan bu eklenti. Hatta şöyle bir test yaptım farklı 13 tane php shell indirdim bunların arasında social.png’de mevcut. Hepsini diğer WordPress güvenlik eklentileri ile taratıp test ettim hepsini bulan olmadı ama en çok bu eklenti buldu 🙂
Kullanımında dikkat etmeniz gereken bir durum var otomatik olarak alttaki uzantıları devre dışı bırakıyor bunlar haricindekilerini tarıyor. Ama bizim için hepsi çok önemli bu yüzden hepsini taratmak için alttaki tüm uzantıları kaldırıp taratıyoruz.
2 Farklı resim ekledim. 1.Resimde uzantıları kaldırdığım ve sadece temayı taratıcaksam seçeceğim alan var. Siz tamamını taratabilirsiniz bu sayede tüm sisteminizi temizlemiş olursunuz. 2.Resimde ise taranmış ve bulaşmış dosyayı görüyorsunuz öncelik olarak dosyayı inceleyin ve daha sonra silin.
b) Kullanılmayanlar
Eklentinin bulduklarını inceleyip sildik şimdi sırada kullanmadığımız tema ve eklentide. Genelde tema kuruyoruz ve WordPress’in standart temalarını kullanmıyoruz. Sistemin başka alanlarından içeri sızıp bu kullanmadığınız temalar içerisine shell atabilirler bu yüzden kullanmadığınız tema ve eklentileri mutlaka silin.
c) Eklentileri Tekrar Yükleyin
Kullandığınız eklentileri tespit edip WordPress.org Plugins sayfasından hepsini bilgisayarımıza indiriyoruz.
Daha sonra FTP alanından tüm eklentileri silip aynı isimlerde güncel indirdiklerimizi yüklüyoruz. Bu sayede eklentiler klasörümüzde artık güvenli hale gelmiş oluyor.
ç) Cache Temizliği
WP Super Cache veya W3 Total Cache gibi cache eklentileri kullanıyorsanız wp-content içerisinde cache klasörleriniz olacaktır. FTP’den cache klasörünü tamamiyle silip eklentinizle tekrardan oluşturabilirsiniz.
d) Upgrade Temizliği
WordPress bu klasörü güncelleştirme yaparken kullanır. Güncelleştirme yaparken öncelikle klasörü buraya indirir klasöre çıkartır ve nereye atması gerekiyorsa oraya gönderir. Bu yüzden bu klasör daima boştur eğer siz başka bir dosya görürseniz mutlaka silin.
e) Uploads
Öncelikle yukarıdaki söylediklerimi yaptıysanız uploads klasörünü bilgisayarınıza indirip taratmış olmanız gerekiyor. Burası resim, pdf, mp3 gibi dosyaları yükleme alanıdır. Yani bu alanda php, pl gibi dosyalara yer yoktur ve olmaması gerekiyor.
Upload klasörümüz içerisine FileZilla FTP Programı yardımı ile .htaccess adında bir dosya oluşturuyoruz ve içerisine alttaki kodu yerleştiriyoruz.
Yukarıdaki kod ile herhangi bir açık oluşsa bile uploads klasöründe yukarıdaki uzantıları sunucu artık çalıştırmayacaktır. Gerçi şu anda güvenlik almıyoruz temizlik yapıyoruz ama olsun 🙂
f) Languages
Bu klasör standart olduğu için bunuda silip son sürüm wordpress içerisindekini buraya atıyoruz.
g) Tema Klasörü
En sona bunu bıraktım çünkü bunda ne olduğunu bilmiyoruz. Temanın orjinalini indirebiliyorsak tekrar indirip atmanızı tavsiye ederim. Eğer temada bir güncelleme yaptıysanız bunuda kaydedin temayı yeniden ekledikten sonra güncellemenizi tekrar ekleyin.
Warez temaysa silip yeni tema arayışına geçin.
Ücretsiz tema ise kodları iyi inceleyin içerisinde crypto edilmiş kodlar varsa kullanmayın o temayı.
WordPress.org’dan tema indirin oradakiler güvenlidir.
Son çare kendiniz tema yazın.
3) Wp-config.php Temizliği
Tüm dosyaları neredeyse temizledik ama wp-config.php dosyasını hiç ellemedik. Bu yüzden bu dosyayıda iyi incelememiz gerekiyor belki bu php dosyasının içerisine kod eklediler ve uzaktan bağlanabiliyorlar. Eğer wp-config.php içerisinde ne olduğunu biliyorsanız bunu anlamanız 2-3 saniye gibi bir süre olacaktır. Ama eğer bu dosyada daha önceden ne olduğunu bilmiyorsanız alttaki söylediklerimi yapım.
wp-config.php dosyasını silin. FTP ana dizindeki “wp-config-sample.php” dosyasının adını wp-config.php olarak değiştirin.
Yeni wp-config içerisine veritabanı bilgilerinizi yazın. Birde config içerisinde 45.satırda “Eşsiz doğrulama anahtarı” yer alıyor. O alanada benzersiz kodlarımızı eklemek için alttaki siteye giriyoruz ve oradaki kodu alıp wp-config.php içerisine yerleştiriyoruz.
wp-config-sample.php içerisindeki boş geliyor genellikle. wp-config dosyasmızıda temizledik.
4) MySQL Kullanıcı Şifresi Değiştirme
MySQL veritabanınıza uzaktan erişim eğer kısıtlı değil ise wp-config bilgileri ile sürekli şifrelerinizi değiştirip yönetim panelinize girebilirler. Veritabanı ile alakalı herşeyi yapabilirler.
MySQL Uzaktan Erişim Programı ile bunu yapmak mümkün tabi biz bu programı zarar vermek için değil iş yapmak için kullanıyoruz.
cPanel‘e giriş yapıp “MySQL Veritabanları” kısmına tıklıyoruz.
En alt kısımda kullanıcılarımız var ve bunların hemen sağında “Şifreyi Ayarla” yazıyor.
Yeni şifreyi o alandan girebilirsiniz.
Son olarak wp-config.php dosyasına bağlanıp yeni şifremizi tanımlıyoruz ve bu güvenliğide almış oluyoruz.
5) Admin Şifresi Değiştirme
Yönetim panelinize girip şifrenizi değiştirin ve diğer tüm yöneticileride inceleyin sizden başka yönetici olmasın.
Birde “admin” kullanıcısını kullanıyorsanız onu silin yeniden farklı bir kullanıcı adı ve şifreyle yeni bir kullanıcı oluşturun.
Tüm yazım bu kadar WordPress’i temizleme işlemini tamamladık. WordPress güvenlik ile alakalı yazılarımıda inceleyin;