İçindekiler
Ele geçirilmiş WordPress sitelerini temizlerken hep aynı tabloyla karşılaşıyorum. Çoğunda bir güvenlik eklentisi kurulu. Ama giriş noktası ya iki yıldır güncellenmemiş bir eklenti, ya admin / 123456 gibi bir şifre, ya da aynı sunucudaki başka bir sitenin ele geçirilmesi.
Bu yüzden listeyi gerçek etkisine göre sıraladım.
Temel: Bunlar olmadan diğerleri işe yaramaz
1. Her şeyi güncel tutun. Çekirdek, eklentiler ve temalar. WordPress güvenlik açıklarının büyük çoğunluğu eklentilerde bulunur ve yamalar çoğunlukla açık duyurulmadan önce yayınlanır. Güncellemeyi geciktirmek, kapıyı açık bırakmaktır. Küçük sürüm güncellemelerini otomatik yapın, büyük sürümleri bir test kopyasında deneyin.
2. Kullanmadığınız eklenti ve temaları silin. Devre dışı bırakmak yetmez. Pasif bir eklentinin dosyaları sunucuda durur ve doğrudan çağrılabilir. Varsayılan temalardan yalnızca birini yedek olarak tutun.
3. Güvenilir kaynaktan kurun. "Nulled" yani lisansı kırılmış ücretli temalar ve eklentiler, ele geçirilmiş sitelerin en klasik sebeplerinden biridir. Bu dosyalar genellikle içine arka kapı yerleştirilmiş olarak dağıtılır.
4. Güçlü şifre ve iki adımlı doğrulama. Yönetici hesapları için şart. Uzun ve benzersiz şifreler kullanın, iki adımlı doğrulama için de güvendiğiniz küçük bir eklenti kullanın. Listedeki tek eklenti istisnası budur.
Erişim ve izinler
5. Yönetici sayısını azaltın. Yalnızca yazı ekleyen birinin "Yönetici" rolüne ihtiyacı yoktur; "Editör" ya da "Yazar" yeterlidir. Ayrılan çalışanların hesaplarını silin.
wp user list --role=administrator
6. Panelden kod düzenlemeyi kapatın. wp-config.php içine:
define( 'DISALLOW_FILE_EDIT', true );
7. Dosya izinlerini doğru ayarlayın. Klasörler 755, dosyalar 644, wp-config.php ise 600 ya da 640. Hiçbir şey 777 olmamalı. "Yükleme yapamıyorum" sorununu 777 ile çözmek, sorunun kendisinden daha büyük bir sorun yaratır. Asıl çözüm, dosya sahipliğini düzeltmektir.
Saldırı yüzeyini küçültün
8. Uploads klasöründe PHP çalışmasını engelleyin. Görsel yükleme alanına bir PHP dosyası sızdırmak, saldırganların klasik yöntemidir. wp-content/uploads/.htaccess dosyası:
<FilesMatch "\.(php|phtml|phar)$">
Require all denied
</FilesMatch>
Nginx kullanıyorsanız aynı işi sunucu yapılandırmasında yapın:
location ~* /wp-content/uploads/.*\.php$ { deny all; }
9. XML-RPC'yi kapatın (kullanmıyorsanız). xmlrpc.php, tek bir istekle yüzlerce şifre denemesine izin veren eski bir arayüzdür. Jetpack ya da eski mobil uygulamalar kullanmıyorsanız kapatın:
<Files "xmlrpc.php">
Require all denied
</Files>
10. Hassas dosyalara erişimi kapatın. wp-config.php, .env, .git, debug.log ve yedek dosyaları (.sql, .zip, .bak) web üzerinden indirilememelidir. En iyisi bunları web kök dizininde hiç bulundurmamaktır.
İzleme ve kurtarma
11. Giriş denemelerini sınırlayın. Sunucu seviyesinde fail2ban kullanabiliyorsanız, wp-login.php için bir kural eklemek eklentiden daha verimlidir. Paylaşımlı hostingdeyseniz hosting firmanızın sunduğu korumayı açın.
12. Yedek ve bütünlük kontrolü. Site dışında saklanan, geri yüklemesi denenmiş bir yedek her şeyden önemlidir. Arada bir de çekirdek dosyalarını doğrulayın:
wp core verify-checksums
wp plugin verify-checksums --all
Değiştirilmiş bir çekirdek dosyası ya da wp-includes altında tanımadığınız bir PHP dosyası, sitenin ele geçirildiğinin en net işaretidir.
Ya ele geçirildiyse?
Kısa yol tarifi: Siteyi bakım moduna alın; bütün şifreleri değiştirin (yönetici, FTP, veritabanı, hosting paneli); wp-config.php'deki güvenlik anahtarlarını yenileyin; çekirdek dosyalarını temiz bir kopyayla değiştirin; eklentileri resmî kaynaklardan yeniden kurun; uploads altında PHP dosyası arayın. Ve en önemlisi: giriş noktasını bulun. Bulamazsanız temizlediğiniz site birkaç gün içinde yeniden ele geçirilir.
Güvenlik bir eklenti değil, bir alışkanlıktır. Bu listedeki adımların çoğu bir kez yapılır ve yıllarca işe yarar.
Yorumlar
Henüz yorum yok. İlk yorumu siz yazın.