GenelKategori

WordPress güvenlik taraması nasıl yapılır?

Okuma süresi: 17 dk
Johnathen Chilcher

Bir web tasarımcısı veya geliştirici olarak, WordPress güvenlik taraması yapmayı neden önemsemelisiniz?

Kullanılabilirliği gittikçe artan ve kişiye özel çözümler sunan WordPress artık internetin yüzde 39’unu oluşturuyor. Ancak, en çok kullanılan açık kaynaklı içerik yönetim sistemi (CMS) olan WordPress, güvenlik saldırıları için de bir hedef.

GoDaddy ve Sucuri güvenlik ekiplerinin 25.000’den fazla virüslü web sitesi ve 4,4 milyon temizlenmiş dosya üzerinde yaptığı analizlere dayanarak, Sucuri’nin 2019 Web Sitesi Hack Trend Raporu, WordPress bulaşmalarının 2018’de %90 olup 2019’da %94’e yükseldiğini gösteriyor. Ancak raporun yazarları, WordPress dahil olmak üzere açık kaynaklı platformlardaki ihlallerin yaygınlığının, bu platformların diğerlerinden daha fazla veya az güvenli olduğu anlamına gelmediğini belirtiyor. Bu veriler, ortamımızda görülen en yaygın platformları temsil ediyor ve bu içerik yönetim sitelerinin genel popülerliğini yansıtıyor.

Neyse ki, düzenli olarak WordPress güvenlik taramasına yatırım yapmak müşterilerinizi felaketten kurtarabilir ve kendi hizmet tekliflerinize ek olarak fazladan iş sağlayabilir.

güvenlik taraması çalışma masası

WordPress güvenlik taraması neden bu kadar önemlidir?

WordPress açık kaynaklı bir CMS olduğu için, tasarımını oluşturan her bir kod satırı incelemeye ve kullanıma açıktır. WordPress’in yayınladığı tüm güncellemelere tekrar bakacak olursanız, neredeyse her birinin bir güvenlik yaması içerdiğini görürsünüz. Buradan yöneticilerin, geliştiricilerin ve işletme sahiplerinin anlaması gereken şey, bu sitelerin güvenli ve en önemlisi çevrimiçi kalabilmeleri için düzenli bakıma ihtiyaç duyduklarıdır.

WordPress sitenizi ihmal ederseniz, işletmenizi de kaçınılamaz bir şekilde riske atmış olursunuz.

Bununla birlikte, düzenli şekilde yapılan bir WordPress güvenlik taraması, bir web sitesini hasar aldıktan sonra onarmaya çalışmaktan daha az zahmetlidir.

Aslında, sitenizin güvenliğinin ihlal edildiğini fark ettiyseniz, çoğu zaman siteyi sıfırdan tekrar oluşturmak, hangi yedeğin (varsa) kötü amaçlı yazılım içerip içermediğini belirlemek için sunucunun tamamını denetlemekten daha kolaydır.

Neyse ki, bu süreci daha kolay ve daha hızlı hale getirebilecek ve hatta hizmet tekliflerinize dahil edilebilecek araçlar ve prosedürler var.

Bir WordPress güvenlik taraması, hizmet tekliflerinize nasıl uyabilir?

Mesleki deneyimime göre, müşteriler için site oluşturan çoğu geliştirici, web sitesini korumayı veya güvenliğini sağlamayı teklif etmiyor.

İşletme sahipleri, WordPress site güvenliğini düzenli olarak kontrol etmeleri gerektiği hakkında bilgilendirilmedikleri için, sitelerinin sağlığı konusunda genellikle karanlıkta kalırlar. Bunun sonucunda web sitesi ihmal edilir ve yapılan o kadar yatırım zarar görebilir.

Bakım hizmetleri sunmak, müşterilerinizin işletmelerinin uzun ömürlülüğünü ve değerini artırarak kendi işletmenize düzenli bir gelir akışı sağlar.

Bu, size öngörülebilir bir iş sağlamanın yanı sıra, daha az iş yaparak daha fazla para kazanmanıza imkan veren, düzenli bir gelir akışı yaratır.

Ek olarak, bu taktik markanızı akıllarında taze tutarak ve onlara değerinizi hatırlatarak müşterilerle iş ilişkilerini güçlendirmeye yardımcı olabilir.

Freelance çalışma modelinde, yeni işleri genellikle ya mevcut müşterilerinizden ya da sizinle iyi deneyim yaşayan müşterilerinizin tavsiyelerinden kazanırsınız. Müşterilerinize başarılarına yatırım yaptığınızı göstermek, onları sizin başarınıza yatırım yapmaya teşvik edecektir.

WordPress güvenlik taraması nasıl yapılır: Kontrol listesi

Tamam, müşterinizi internette güvende tutmanın neden önemli olduğunu konuştuk. Ayrıca, bir felaket senaryosunun nasıl herkes için bir kazan-kazan durumuna dönüştürülebileceğini tartıştık. Ancak şimdi de bu yeni hizmetleri ürün hattınıza nasıl uygulayacağınızı merak ediyor olmalısınız. Kemerlerinizi bağlayın çünkü aşağı yukarı bir saatinizi harcayarak nasıl gelir elde edebileceğinize dair bir kontrol listesini incelemek üzeresiniz!

  1. Çekirdek dosyaları, eklentileri ve temaları güncelleyin.
  2. Kullanılmayan eklentileri ve temaları kaldırın.
  3. Bir SSL sertifikası yükleyin.
  4. Güçlü parolalar kullanın.
  5. Bir güvenlik eklentisi yükleyin.
  6. Formlarda CAPTCHA kullanın.
  7. Oturum açma girişimlerini sınırlayın
  8. Dosya düzenlemeyi kapatın.
  9. Güvenlik anahtarlarını değiştirin.
  10. Çekirdek dosyaları .htaccess ile güvende tutun.
  11. XML-RPC’yi devre dışı bırakın.
  12. Dosya izinlerini denetleyin.
  13. PHP hata raporlamasını devre dışı bırakın.
  14. Bir yedekleme planınız olsun.

Hizmetlerinize güvenlik taraması da eklemek için neler yapabileceğinizi öğrenmeye hazır mısınız? Hadi başlayalım!

1. Çekirdek dosyaları, eklentileri ve temaları güncelleyin

Daha önce WordPress güncellemelerinin neredeyse her zaman güvenlik yamaları içerdiğini söylemiştim. Bu, her zaman müşterilerinizin sitelerinin güvenliğini sağlamalarının ilk adımı olmalıdır ve bu adımlar çok basittir: wp-admin panosuna giriş yapın, fareyle kenar çubuğundaki gösterge tablosu düğmesinin üzerine gelin ve ardından açılır menüden Güncellemeler ögesine tıklayın. Güncellemek istediğiniz öğeleri her birini listeleyerek seçin. Aşağıdaki kod satırını wp-config.php dosyasına ekleyerek çekirdek dosyaları, eklentileri ve temaları otomatik olarak güncelleyebilir ve bu işlemi daha da kolaylaştırabilirsiniz:

// Enable automatic updates for all
define( 'WP_AUTO_UPDATE_CORE', true );
add_filter( 'auto_update_plugin', '__return_true' );
add_filter( 'auto_update_theme', '__return_true' );

Otomatik güncellemeler, bir temanın veya eklentinin çalışma şeklini büyük ölçüde değiştirebilir. Bazılarını ara sıra bozabilir ama bu, sitede güvenlik açıkları bırakmaktan daha avantajlıdır.

2. Kullanılmayan eklentileri ve temaları kaldırın

WordPress’in en büyük özelliklerinden biri, eklentileri indirme ve çalıştırma yeteneğidir, böylece web sitenizin işlevselliğini potansiyel olarak iyileştirir. Bununla birlikte, sitenize gereğinden fazla eklenti yüklemek sizi güvenlik açıklarına daha fazla maruz bırakabilir.

Eklentilerin ve temaların kodlarının kalitesi farklılık gösterebilir çünkü bazıları işletmeler tarafından ve bazıları ise bu işin meraklıları tarafından oluşturulur ve ikisi de mükemmel değildir.

WordPress sitenize eklenen her eklenti ile her kurulumda yeni vektörler açıldığı için sitenin saldırıya uğrama olasılığı o kadar yükselir. Kullanmadığınız eklentileri devre dışı bırakmak yeterli değildir. Savunmasız kodu sunucudan kaldırmak için bunları gerçekten silmeniz gerekir.

Kullanılmayan öğeleri kaldırmak, performans için eşit derecede önemlidir ve herhangi bir WordPress güvenlik taramasının parçası olmalıdır. Daha az aktif eklentinizin olması, sitenizin daha güvenli ve daha hızlı çalışması anlamına gelir.

3. Bir SSL sertifikası yükleyin

Her web sitesinin bir SSL sertifikasına sahip olması gerektiği gerçeği şimdiye kadar yeterince açık olmalı.

Basitçe söylemek gerekirse hizmet tekliflerinize SSL kurulumları eklemek, istemcinizi güçlendirir, trafiğini güvence altına alır, kullanıcıları kimlik avı saldırılarına karşı korur ve Google sıralamalarını yükseltebilir.

Bu sertifikaları yüklemek inanılmaz derecede hızlı ve kolaydır. Platforma bağlı olarak adımlar değişiklik gösterebilir ama çoğunu GoDaddy Yardım Merkezi’nde bulabilirsiniz.

Kurulan sertifika ile Genel Ayarlar’a gidip protokolü HTTP’den HTTPS’ye değiştirerek Wordpress’teki Wordpress Adresini ve Site Adresini değiştirebilirsiniz. Değişiklikleri Kaydet’e tıkladıktan sonra kurulumu tamamlamış olursunuz.

4. Güçlü parolalar kullanın

güvenlik taraması giriş ekranı

2020’de kullanılan en yaygın şifreler 123456’dan "şifre"ye kadar uzanıyordu ki bunlar acı verici bir şekilde açık, güvensiz ve hesaba yetkisiz bir kullanıcı tarafından erişilebileceğini garanti ediyor. Web güvenlik şirketlerine göre, güçlü bir şifre en az sekiz rakam, noktalama ve büyük ile küçük harflerin bir karışımını içerir.

WordPress güvenlik taraması birkaç bariz şeyi kapsamalıdır. Aynı parolayı asla iki kez kullanmamalısınız. Özellikle adından da anlaşılacağı gibi sözlük saldırısına eğilimli olduklarından, şifrenizin bir sözlükte veya özel bir isimde bulunabilecek sözcükleri içermemesi de önemlidir.

İlgili yazı: Güçlü şifre oluşturmak ve şifreleri güvence altına almak için 10 yöntem 

5. Güvenlik taraması için bir güvenlik eklentisi yükleyin

Güvenlik eklentileri gri bir alana düşer ve sitenizin güvenliğini sağlamaya yardımcı olabildikleri gibi, sizi kolayca yıkıma götürebilirler. Hangi güvenlik eklentilerinin en iyi şekilde çalıştığını bilmek önemlidir.

Bunlar, halihazırda uygulanmış bir güvenlik duvarınız yoksa sitenizi sürekli yaşanan suçlardan koruyacak güvenlik duvarı özelliklerini de sunar. Ancak bu güvenlik eklentileri bazen web sitesi performansına mal olabilir.

Geliştirici olarak, eklenti özelliklerini sunucuda halihazırda çalışan sistemlerle karşılaştırarak ve ayrıca bellek veya işlem gücü gibi mevcut donanım kaynaklarına dikkat ederek bir güvenlik eklentisi kullanıp kullanmayacağınızı belirlemeniz önemlidir.

6. Formlarda CAPTCHA kullanın

Bilgisayar korsanlarının, siteleri tahrif etmek ve kötü amaçlı yazılımları yaymak için giriş bilgilerinizi ele geçirmeleri illa gerekli değildir.

WordPress sitenizde captcha içermeyen bir iletişim formu varsa, eninde sonunda sunucunuzun kaldırabileceği kadar spam ve kötü amaçlı e-posta göndermek için kullanılacağından emin olabilirsiniz. Ek olarak, Captcha araçları yönetici hesaplarınızın kaba kuvvet saldırılarını da önler.

Ben Google’ın ReCAPTCHA’sını tercih ediyorum, bu yüzden Google Captcha by BestWebSoft kullanmaya karar verdim, ancak kendi yapacağınız WordPress güvenlik taraması için dilediğiniz eklentiyi kullanmakta serbestsiniz.

İlgili yazı: Brute force, kaba kuvvet saldırısı nedir? 

7. Oturum açma girişimlerini sınırlayın

Kaba kuvvet saldırısından bahsetmişken, size botlar ve bilgisayar korsanlarına karşı daha fazla koruma sunayım. Limit Login Attempts eklentisi, bir kullanıcıya sadece sınırlı sayıda başarısız giriş yapma hakkı vererek admin sayfanızı koruma altına alır. Bir kullanıcınızın şifresini unutmaya meyilli olması ihtimaline karşın bir beyaz liste de oluşturabilirsiniz.

GoDaddy WordPress Hosting gibi bazı hosting sağlayıcıları bunu, zaten yerleşik bir özellik olarak sunar, bu nedenle eklenti yüklemeden önce araştırma yapmanız iyi bir fikir olabilir.

8. Dosya düzenlemeyi kapatın

WordPress güvenlik taraması gerçekleştirirken, WordPress’in temanızı ve eklenti dosyalarınızı doğrudan yönetici panelinden düzenlemenize izin verdiğini fark edeceksiniz. Bu, istenmeyen sonuçlara sebep olabilecek hayati bir güvenlik açığını ortaya çıkarır.

Bilgisayar korsanlarının veya diğer kullanıcıların kasıtlı olarak ya da başka bir şekilde siteyi tahrif etmesini önlemek için en iyisi dosya düzenlemeyi kapatmaktır.

Neyse ki, çözüm wp-config.php dosyanızda başka bir değişikliği içeriyor. Aşağıdakini dosyada kendi satırına eklemeniz yeterli:

// Disable file editting
define('DISALLOW_FILE_EDIT', true);

9. Güvenlik anahtarlarını değiştirin

Wp-config.php dosyanızda saklanan güvenlik anahtarı, tanımlama bilgilerinizde depolanan oturum açma oturumunu şifreler. Bu anahtarların değiştirilmesi, tüm oturumları geçersiz kılar, tüm kullanıcıları kontrol panelinden çıkarır, ancak aynı zamanda bilgisayar korsanlarının açık oturumları ele geçirmesini engeller.

Bu anahtarları değiştirmek, kopyalayıp yapıştırmak kadar kolaydır.

Öncelikle, yeni gizli anahtarlarınızı almak için WordPress güvenlik anahtarı oluşturucusu API’sini kullanın ve ardından bunları kopyalayın. Kopyaladığınız yeni blokla değiştirebileceğiniz, benzer görünen bir kod bloğu bulacaksınız. Bu kod, aşağıdaki gibi görünecek:

define('AUTH_KEY', 'HeW#zltmGurr@u{B97hDiOr;3@<1>-^bbtua-:bC&K4`]*r 6V<-s-GtTq?lLL|h');
define('SECURE_AUTH_KEY', 'B >t.QYHTKXRv/)ewR 5$iswZrLM}kAE#15?:2lu]zPd!KuB78?4fopw3QsHtx#4');
define('LOGGED_IN_KEY', 'gI:T2,v7|E[.Q&[yGK|$a+s1;&$8-[?|6dE+FX|9|Ex|N[EPiQ0YzoXas=.7`4;&');
define('NONCE_KEY', 'Z_-$xVrv0+VqtoVl#8|s/zeOlm^h# zHh(3me1X/S(l[(h;-+KI&cyDuLbm<!DR.');
define('AUTH_SALT', '-~i[ahut&xhfTLlnk+u^[GC2?:324X/Lo*<i{|K75j)6HI<y1<Vc$|(,-xZ+{ O]');
define('SECURE_AUTH_SALT', 'B|M9s9a*iwp44|ldOHJlG9.#-Hb$t?kY|st;D9 )]FALOWt[/fYrtanxrjoxfD(z');
define('LOGGED_IN_SALT', 'z_ Drd6Rip3upj:P*|2UsToIkVtaG|Nk3JKO yNq=xQZpVy7u!d@.TO8P:b5#s*H');
define('NONCE_SALT', '5/af{*Wq82Gzq56&$b)<]X=-3#NW3x++~ D|PD-oCs=(#_y-~Z=w[]W9#jBfgJ *');

10. Çekirdek dosyaları .htaccess ile güvende tutun

.htaccess dosyasını kullanmak, muhtemelen bir WordPress güvenlik taraması için en güçlü araçlardan biridir.

Çekirdek dosyalara tarayıcıdan erişimi engelleyerek başlayacağız çünkü bunlar meşru bir ziyaretçi için bir şey ifade etmez ve genellikle sadece güvenlik açıklarını bulup kullanmak için tarayıcıdan erişilirler. Apache Web Server ve .htaccess dosyasının nasıl çalıştığı ile ilgileniyorsanız htaccess-guide.com adresine bakmanızı öneririm.

Ancak hızlı bir çözüm olarak, aşağıdaki kod bloğunu BEGIN/END WordPress etiketlerinin önüne veya arkasına ekleyebilirsiniz:

# Block the include-only files.

RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]

11. XML-RPC’yi devre dışı bırakın

Çoğu kullanıcı, blog gönderileri oluşturmanıza ve bazı eklentilerle etkileşimde bulunmanıza olanak tanıyan XML-RPC’nin arkasındaki işlevselliği kullanmaz. Siteye yeni içerik gönderen otomatik bir yayınınız varsa bu tür bir işlevsellik iyidir, ancak son derece karmaşıktır ve nadiren kullanılır.

Çoğu durumda, bilgisayar korsanlarının kullanıcı parolalarını kaba kuvvet kullanarak bulmalarını engellemek için devre dışı bırakabilirsiniz. Devre dışı bırakmak için .htaccess dosyanıza başka bir kod bloğu eklemeniz gerekir:

#disable xmlrpc

order allow,deny
deny from all

12. Güvenlik taraması için dosya izinlerini denetleyin

WordPress’e göre, geliştiriciler ve yöneticiler her ne pahasına olursa olsun 777 dosya izninden kaçınmalıdır. Dosyaları bu tarz bir izinle tutmak, makinedeki herkesin 777 iznine sahip herhangi bir dosyayı okumasına, yazmasına ve çalıştırmasına olanak tanır.

Bunun yerine WordPress klasörler için 775 izni ve dosyalar için 644 izni kullanmanızı önerir.
WordPress dosyaları sürekli güncellediğinden, değiştirdiğinden ve yeni eklemeler yaptığından, güvenli bir ortam sağlamak için kötü izinleri arayarak, WordPress güvenlik taramanızın bir parçası olarak web sitesi dosyalarını düzenli olarak denetleyin.

Hızlı bir denetleme gerçekleştirmek istiyorsanız dosya izinleri için WordPress yönergelerine uymayan geçerli dosya dizinindeki tüm dosyaları görüntülemek için aşağıdaki komutu SSH’den çalıştırabilirsiniz:

find . -type f ! -perm 0644; find . -type d ! -perm 0755

13. PHP hata raporlamasını devre dışı bırakın

PHP hata raporlamasını devre dışı bırakmak, bilgisayar korsanlarının web siteniz ve üzerinde bulunduğu ortam hakkında önemli bilgiler edinmesini engeller.

Bilgisayar korsanlığında yaygın olan bir teknik, işletim sistemini, sunucudaki web sitesi yolunu ve hatta hangi uygulamaların çalıştığını belirlemek için bir dosyayı görüntülemektir.

Örnek olarak, web sitesinde bu hatayı gösteren bir dosyaya eriştiğinizi varsayalım:

Warning: Cannot modify header information – headers already sent by (output started at /home/jchilcher/public_html/wp-content/plugins/twitter-profile-field/twitter-profile-field.php:28) in /home/jchilcher/public_html/wp-includes/option.php on line 571.

Bu hata bana direkt olarak sunucunun cPanel ile Linux kullandığını ve bu cPanel hesabının ana domain olduğunu ve web sitesinin twitter-profile-field eklentisini kullandığını söylüyor. Artık güvenlik açıklarını nerede aramaya başlayacağımı ve bunları nerede bulabileceğimi biliyorum.

Bu sorunun çözümü de oldukça kolaydır. Site için bir php.ini oluşturun veya değiştirin ve display_errors yönergesinin kapalı olduğundan emin olun. Bunu aşağıdaki satırı ekleyerek yapabilirsiniz:

display_errors = Off

Ayarlarınız yürürlüğe girdikten sonra, normalde bir sayfada görüntülenecek herhangi bir hata giderilecektir.

14. Bir yedekleme planınız olsun

Son olarak, WordPress güvenlik taraması ile ilgili en önemli ancak ihmal edilen görev olduğunu düşündüğüm bir şey var. Yedekleme planı derken ciddiyim. En kötü senaryo gerçeğe dönüşürse ve web siteniz kötü amaçlı yazılımlara maruz kalırsa web sitenizi nasıl geri getireceğinize dair bir planınız olmalıdır.

Çoğu durumda, sitelerini düzenli olarak yedeklemeyi reddeden müşterilerim pişmanlık duyuyor. Temiz bir yedeklemeniz olmazsa, saldırıya uğramış siteniz her şeyi baştan yapmak zorunda kalmadan bir daha asla temizlenemeyebilir.

İlgili yazı: Yedekleme ve geri yükleme, GoDaddy Web Sitesi Yedekleme ile çok kolay! 

GoDaddy Web Sitesi Güvenliği

Kötü amaçlı yazılım engelleyicilere henüz aşina değilseniz onlar hakkında daha fazla bilgi edinmelisiniz.

Esasen, GoDaddy’nin Web Sitesi Güvenliği, seçiminize bağlı olarak her 12 veya 24 saatte bir kötü amaçlı yazılım ve çalışma süresi taraması gerçekleştirir. Web Sitesi Güvenliği, kötü amaçlı yazılımın sunucuya bile ulaşmadan önlenmesi için bir Web Uygulaması Güvenlik Duvarı (WAF) da içerir.

Kurulumu oldukça kolaydır ve işin zor kısmının çoğunu sizin için halleder, bu nedenle güvenlik taraması için müşterilerinizin planına eklenmesi çok faydalı olabilir.

WordPress güvenlik taraması hakkında son sözler

Bu yazıda bahsettiğim ipuçları hiçbir şekilde kapsamlı bir güvenlik araçları ve yöntemleri listesi değildir ve web sitenizi kurşungeçirmez yapmaz.

Teknolojide güvenlik sürekli büyüyen bir alandır ve sürekli olarak yeni koruma yöntemleri geliştirilir.

Düzenli bir WordPress güvenlik taraması ile saldırı yollarını azaltarak ve dosyaları denetleyerek, web sitenizin güvenliğini ciddiye alabilir ve bir saldırı ihtimaline karşı kolay lokma olmayacağınızdan emin olabilirsiniz.