← kayıt defterine dön
vim blue-php-dosyasinin-pesine-dusunce.md

blue.php Dosyasının Peşine Düşünce..

Yıllar önce yüksek lisans yaparken hocamın sahibi olduğu bir WordPress haber sitesini temizlerken ilginç bir enfeksiyonla karşılaşmıştım.

İnceleme sırasında dikkatimi çeken ilk şey, WordPress çekirdeğindeki index.php dosyasına sonradan eklenmiş, okunması zorlaştırılmış (obfuscated) PHP kodlarıydı. Bir süre sonra JavaScript dosyalarının da değiştirilmiş olduğunu fark ettim. Asıl dikkat çekici nokta ise tema dizinindeki css/colors/ klasöründe bulunan blue.php dosyasıydı.

Track.violetlovelines neydi?

2022'nin sonlarında ortaya çıkan bu kampanya, ele geçirilmiş WordPress sitelerini ziyaretçilere zararlı JavaScript dağıtmak için kullanıyordu. Yapılan analizlerde binlerce WordPress sitesinin aynı altyapıya bağlandığı görülmüş. Amaç doğrudan siteyi kullanılmaz hale getirmek değil, ziyaretçilerin tarayıcısında saldırganın istediği JavaScript'i çalıştırabilmekti.

Bu tarz saldırılarda PHP kodu genellikle index.php gibi sık çalışan dosyalara enjekte ediliyor. Böylece her istek sırasında zararlı kodun çalışması garanti altına alınıyor

NDSW ve blue.php

Benim karşılaştığım vakada ilginç olan kısım buydu.

Tema içerisindeki css/colors/blue.php dosyası, saldırganın sisteme yeniden erişebilmesini sağlayan bir backdoor olarak bırakılmıştı.

NDSW kampanyalarında wp-admin/css/colors/blue/blue.php benzeri yolların komuta noktası olarak kullanıldığı uzun zamandır biliniyor. Ayrıca bu kampanya, JavaScript dosyalarının içerisine if(ndsw===undefined) satırıyla başlayan obfuscated kodlar enjekte etmesiyle tanınıyor. Bu imza, NDSW enfeksiyonlarının en belirgin göstergelerinden biri kabul ediliyor.

Temizlik süreci

Temizliğe başlamadan önce değiştirilmiş dosyaları tespit etmeye çalıştım.

İşlem sırasında;

- index.php içerisine enjekte edilen PHP kodlarını kaldırdım.
- JavaScript dosyalarındaki zararlı kodları temizledim.
- css/colors/blue.php dosyasını sildim.
- Şüpheli dosyaları tek tek kontrol ederek sistemden çıkardım.
- WordPress çekirdek dosyalarını orijinal sürümleriyle karşılaştırarak bütünlük kontrolü yaptım.

Temizlik tamamlandıktan sonra site tekrar sorunsuz şekilde yayın yapmaya başladı.

WordPress'e bulaşan zararlı kodların büyük kısmı tek bir dosyadan ibaret olmuyor.

Çoğu zaman bir dosya zararlı kodu çalıştırırken, başka bir dosya saldırganın sisteme tekrar erişebilmesi için bırakılıyor. Siz yalnızca görünen kodu temizlediğinizi düşünürken, arka kapı yerinde kaldığı için aynı enfeksiyon kısa süre içinde tekrar oluşabiliyor.

Bu yüzden bir WordPress sitesini temizlemek, sadece dosya silmek değildir. Değiştirilen dosyaların tespit edilmesi, çekirdek dosyaların doğrulanması ve olası backdoor'ların tek tek bulunması gerekir.

Karşımdaki site sıradan bir kişisel blog değildi. Ülkede yayın yapan, lisanslı bir haber sitesiydi. Buna rağmen sunucu tarafında ve WordPress yönetiminde temel güvenlik uygulamalarının bile ihmal edildiği belliydi.

Güncellenmeyen bileşenler, uzun süre fark edilmeyen dosya değişiklikleri ve sistemde bırakılmış bir backdoor, bunun en açık göstergesiydi.

Aslında bu durum hâlâ çok değişmiş değil. Birçok WordPress sitesi yıllarca aynı tema ve eklentilerle çalıştırılıyor. Güncelleme yapılmadığında veya düzenli kontrol edilmediğinde ise bu tür enfeksiyonların ortaya çıkması şaşırtıcı olmuyor.

WordPress tek başına güvensiz bir sistem değil. Ama güncel tutulmadığında, özellikle eski tema ve eklentilerde bulunan güvenlik açıkları saldırganlar için kolay bir giriş noktası oluşturabiliyor. Düzenli güncelleme yapmak, kullanılmayan eklentileri kaldırmak ve dosya bütünlüğünü ara ara kontrol etmek, bu tür sorunların büyük kısmını daha ortaya çıkmadan engelleyebiliyor.