Root > Documents > Web Güvenlik Açıkları > Kapsamlı WordPress Güvenliği
Cyber-Warrior.Org \ Doküman \ Web Güvenlik Açıkları > Kapsamlı WordPress Güvenliği
Madde
  Yazar : BMNR
  Date : 18.10.2015 13:45:18
 
# Kapsamlı WordPress Güvenliği
 
1 – WP Panelinin sifrelenmesi (kimlik dogrulama)
2 – Güncelleme islemleri
3 – Database bilgileri 
4 – Yönetici kullanici adi ve parola seçimi
5 – Tablo ön ekinin degistirilmesi 
6 – Wordpress güvenlik anahtarlari
7 – Gereksiz dosyalarin kaldirilmasi
8 – Dosya izinlerinin düzenlenmesi
9 – Dizinlerin listelenmesini engellemek
10 – Hotlink korumasi
11 – Config.php dosyasina erisimi engellemek
12 – Giris sayfasindaki bildirimleri devre disi birakmak
13 - Sunucu sürüm imzalarini kaldirmak
14 - WP sürümünü gizlemek
15 - Zararli sorgulari engellemek
16 – Robots.txt

1 - WP panelinin sifrelenmesi


En etkili yöntemlerden birisi olan panelin sifrelenmesini görelim . 

Ise baslamadan önce bir besmeleden sonra yedeklerimizi almayi unutmayalim…

Öncelikle sunucunuzda apache destegi olmalidir, host ne kadar wp uyumlu olsa da hostçunuza danismayi unutmayin.

Ilk olarak ftp de .htpasswd isminde bir dosya olusturuyoruz, bu dosyayi kullanarak panele koyacagimiz bilgileri saklayacagiz. 

http://www.e2.u-net.com/htaccess/make.htm adresine girip kullanici adi ve sifre olusturacagiz. 

Olusturulan kodu .htpasswd dosyasinin içine yapistirip kaydedin.

Simdi sira .htaccess dosyamizi düzenleyecegiz, dosyayi açip su kodlari ekliyoruz ; 

ErrorDocument 401 default 
AuthUserFile /home/.htpasswd
AuthName “Site”
AuthType Basic
<Files”wp-login.php”>
Require valid-user
</Files>

dosyamizi kaydediyoruz, diger kodlari silmeyin.

Bu islemi yaptiktan sonra panelimiz sifrelenmis olacaktir.


2 - Güncelleme islemleri

Wordpress sürekli güncellenen bir sistem oldugu için , gerekli güncellemeleri kaçirmayin, takdirde bir önceki sürüm güncellendiyse mutlaka bir açik bulunmus veya yeni bir özellikler eklenmistir.

Bu güncellemeleri aksattiginiz takdirde sizi izleyen birileri varsa bu onlarin ekmegine yag sürecektir, o yüzden güncellemeleri takip edin ve panelinizden otomatik güncellemeyi yapin.

Dip not : panelden otomatik güncellemeyi anlatmistim WP kategorisinde bulabilirsiniz, yine hatirlatayim panelden güncelleme yapacaksaniz yedeginizi alin ve ftp de gerekli yazma izinleri verdiginizden emin olun…

3 – Database bilgileri

WP kurulumu sirasinda bizden istenen veritabani bilgilerini güvenli seçmekte fayda var . sunu unutmayin veritabani bilgilerini kurulum asamasinda kullanacagimiz için ezberlemeye hiç gerek yok. O nedenle veritabaninin hem isminin, hem kullanici adinin hem de parolasinin kolay kolay tahmin edileyecek veya kirilamayacak bir sekilde olusturmaya özen gösterin. 

Basit bir kullanici adi veya 123456 seklindeki bilgilerden kesinlikle uzak durun…

4 – Yönetici kullanici adi ve parola seçimi

WP de 3.0 sürümünden itibaren kurulum esnasinda istedigimiz kullanici adi ve parolayi belirleyebilirsiniz. Önceki sürümlerde kurulum sonrasinda sabit kullanici adi genellikle admin oluyordu. Bu yüzden güvenlik zafiyeti ortaya çikiyordu. 

3.0 sürümünden sonra dilediginiz kullanici adini koyabilirsiniz . 

Kesinlikle “admin” “yönetici” gibi kullanici adlarini seçmeyin ve parolanizi kirilamayacak sekilde olusturun. “Kolay olsun yaa unutmayayim, kim ugrasir benimle” düsüncesinden uzak durun.. Parolaniz çok uzun olacaksa gerekirse bir kagida yazip kitabinizin arasina sikistirin …


5 – Tablo Ön Ekinin degistirilmesi

Kurulum asamasinda site üzerinden kurulum yaptiysaniz ve wp ön ekini görmüsünüzdür..

Bir database üzerinde birden çok wp kullanmayacaksaniz bunun ne oldugunun önemi yok.

Ancak wp ön ekini degistirmeniz size güvenlikte + kazandiracaktir..

Bu ön eki YfmC_ seklinde degistirmek sizi birçok saldiri girisiminden önleyecektir. Ön eki belirlemek tamamen size kalmis.


6 - Wordpress güvenlik anahtarlari

Güvenlik anahtarlari sitenizi ziyaret eden kullanicilarin bilgisayarinda depolanan cookieleri
Sifrelemeye yarar. Ne kadar güçlü güvenlik anahtarlariniz olursa o kadar güçlü korunursunuz.
Bu islem veritabanina sifreleriniz saklanirken de geçerlidir. Böylece sitenize zarar vermek isteyenlerin yoluna bir tas daha koyarsiniz.

Güvenlik anahtarlarini wp-config.php dosyasini düzenleyerek kullanabilirsiniz.

Api.wordpress.org/secret-key/1.1/salt adresinden essiz dogrulama anahtarlari üretebilirsiniz..

7 - Gereksiz dosyalarin kaldirilmasi

Wordpress kurulumunu gerçeklestirdikten sonra artik bazi dosyalara ihtiyacimiz kalmayacak.
Biz de fazladan dosyalara ihtiyacimiz olmadigi için bu dosyalari silebiliriz. 
Böylelikle bazi girisimleri de engellemis oluruz..

Kurulumdan sonra wp-admin/install.php ve wp-config-sample.php yi silebilirsiniz..

8 - Dosya izinlerinin düzenlenmesi

Bu konuda oldukça önemli bir konudur. Web sitelerimize yapilan saldiri girisimlerinde ve disaridan erisimlerde güvenlik problemlerini engellemek için yazma izinlerini düzenlemeniz
mutlaka gereklidir.

Kurulum sonrasi klasörlere 755 dosyalara ise 644 yazma izni vermelisiniz.

777 yaptiginizda yazma izinlerinin açik olacagini unutmayin. Uploads klasörü 777 olmalidir
Onun disinda 777 yapacaginiz pek bir dosya veya klasör yok.

9 - Hotlink korumasi

Web siteniz taniniyorsa özgün olarak ürettiginiz makale,resim vb’ler bazi insanlar tarafindan
kendi sitelerine kopyalanabiliyor. Saatlerce olusturudugunuz bu emekler dakikalar içerisinde
baska sitelerde yayimlanabilir. Bu sitenize zarar vermekte birlikte sitenizin trafik akisinida olumsuz etkiler.

Bu tür emek hirsizlari ile mücadele etmek için .htaccess dosyaniza su kodlari ekleyin.

RewriteEngine On
#?site\\\\\\\\\\\\.com/Web site adresi
RewriteCond %{HTTP_REFERER}!^http://(.+\\\\\\\\\\\\.)?site\\\\\\\\\\\\.com [NC]
RewriteCond %{HTTP_REFERER}!^$
#/images/kopyalama.jpg – Resim adresiniz
RetriteRule.*\\\\\\\\\\\\(jpeg|gif|bmp|png)4$ /images/kopyalama.jpg[L]

Bu islemi yaptiktan sonra sizin sunucunuzda bulunan resimler yalnizca kendi sitenizde görüntülenecektir. Websiteniz üzerinden alinan resimlere karsilik yasakladiginiz kopyalama.jpg isimli resim dosyasi gözükecektir…

11- Config.php’ye erisimi engelleme

Wordpress kurulumu sirasinda veritabani bilgilerinin bulundugu wp-config.php dosyasina erisimi engellemeniz size + güvenlik kazandiracaktir. 644 yetkisi normalde yeterlidir. 
Fakat sunucu üzerinde yer alan diger sitelerden shell vs yollarla dosyalariniza erisilebilinir.

.HTACCESS kullanarak bu erisimi tamamen ortadan kaldiracagiz.

# wpconfig.php dosyasina erisimi engelle
<files wp-config.php>
order allow,deny
deny from all
</files>

Bu kodu .htacces dosyaniza eklediginizde erisimi engellemis olacaksiniz.

Sadece statik ip kullaniyorsaniz ve siz girmek istiyorsaniz da su kodu eklemeniz yeterlidir ;

#WP-Config.php dosyasina sabit IPden erismek
<files wp-config.php>
Order Deny,Allow
Deny from all
Allow from ipadresiniz

</files>

12 – Giris sayfasindaki bildirimleri devre disi birakma

Wp gelistiricilerinin kullanicilara sundugu bazi imkanlar bazen aleyhimize kullanilabiliyor. Bunlardan biride wp paneli giris ekranindaki hata.

“HATA: geçersiz kullanici adi. Parolanizi mi unuttunuz” uyarisi..

Bazi lamerler bu uyariyi göz önünde bulundurararak yönetici ekrani girisinde kullanici adi ve parolalar üreterek giris yapmaya çalisiyor. Yapmaniz gereken temanizin functions.php dosyasina su kodlari eklemek ;

Add_filter(‘login_errors’,create_function(‘$a’,return null;”));
HTACCESS kullanarak spam botlari engellemek

Spam botlarindan kurtulmak için birçok eklenti mevcut , fakat biz sorunu kökten çözecegiz.

Sitemize zarar vermek isteyen ip adresini biliyorsak.

HTACCESS dosyamiza sunlari yaziyoruz..

<Limit GET POST PUT>
Order allow,deny
Allow from all
Deny from zararli ip adresi
</LIMIT>

Eger birden fazla ip adresi caninizi sikiyorsa su kodlari ekleyin.

<Limit GET POST PUT>
Order allow,deny
Allow from all
Deny from zararli ip adresi
Deny from zararli ip adresi2
Deny from zararli ip adresi3
Deny from zararli ip adresi4
</LIMIT>

13 – Sunucu sürüm imzalarini kaldirmak


Genellikle Linux hostinglerde Apache bir hata olustugunda ya da bazi komutlar girildiginde karsi tarafa Apache hata sayfasi olarak versiyon numaralarini içeren bilgilendirme sayfalari sunar. Bu herhangi bir açik degildir; fakat yazilim sistemlerini sürekli takip eden ve açiklardan haberdar olan hackerlar, eski versiyonlarda yer alan açiklari kullanarak sitenize erisebilir. 

Su ufak kodlari .htaccess dosyaniza ekleyin ve önleminizi alin..


#sunucu sürüm imzalarini kaldir

ServerSignature Off

14 – WP sürümünü gizlemek

Sitenizin sayfa kaynagindan wordpress sürümünüzü görebilirsiniz. Yeni sürüm çiktiktan sonra hemen güncelleme islemi yapmiyorsaniz eski sürüm hacklerler tarafindan fark edilip gerekli açiklari varsa sitenize zarar verilebilir.

Functions.php dosyasina su kodlari ekleyin ve kaydedin.

Remove_action(‘wp_head’,’wp_generator’);

Kaydettikten sonra sayfa kaynagina baktiginizda mevcut wp sürümünü göremeyeceksiniz..

15 – Zararli sorgulari engellemek

Block Bad Queries eklentisini hemen googleden bulup indirelim..

Wp-content/plugins klasörünüze girin ve eklentiyi buraya gönderin.
Panelinizden etkinlestirdiginizde artik web siteniz zararli sorgulardan korunacaktir.

16 – Robots.txt

Robots.txt dosyasi gerek sitemiz için gerekse arama motorlari için (SEO)
Oldukça önemlidir. Bu dosyayi kullanarak sitenizi ziyaret eden örümceklerin nereleri girip girmeyecegini belirleyebilirsiniz. Ideal bir robots.txt dosyasi olusturacagiz.

Ilk olarak site haritamizin baglanti adresini robots.txt dosyasina ekleyelim. Eklentiyi kurdugunuzda otomatik olarak bu islem gerçeklesebilecegi gibi kod ekleyerekte yapabilirsiniz.

#Site haritasi baslangiç
Sitemap:http://siteadi.com/sitemap.xml.gz
#Site haritasi sonu

Kodlarini ekleyerek site haritamizi ekledik, simdi de dizinleri indexleme ayarlarini belirleyelim..

User-agent:*
Disallow:/*.php$
Disallow:/*.js$
Disallow:/*.inc$
Disallow:/*.css$
Disallow:/*.wmv$
Disallow:/*.tar$
Disallow:/*.tgz$
Disallow:/*.cgi$
Disallow:/*.xhtml$
Disallow:/*.wp-admin/
Disallow:/*.wp-includes/

Burada birkaç hususa deginelim ;

User-agent: Sitenizi ziyaret eden örümcegin tanimlama ismi.

Disallow : Indexlemeyi engellemek istediginiz dizinleri belirtmek için kullaniyoruz.

Allow : Indexlemesine izin verdiginiz dizinleri belirtmek için kullaniyoruz.

Yukaridaki yer alan kodlara göz atacak olursak .php .css uzantili dosyalari tüm kullanicilarda engellemis bulunuyoruz. Birkaç tane daha kod ekleyelim ve sonlandiralim ;

User-agent: Googlebot-Image
Allow:/
User-agent: Mediapartners-Google
Allow:/
User-agent: Adsbot-Google
Allow:/
User-agent: Googlebot-mobile
Allow:/

Eklemis oldugumuz kodlar sayesinde özel tanimlanmis örümceklere de sitemizi tarama izni vermis olduk..


BMNR - Bug Researchers
   
   
Cyber-Warrior TIM All Legal and illegal Rights Reserved.\CWDoktoray 2001©