Sitenizin adresini yazdınız ve karşınıza siteniz yerine kırmızı bir ekran geldi: "Yanıltıcı bir siteye girmek üzeresiniz." Aynı ekran Chrome'da, Firefox'ta ve Safari'de birden çıkar, çünkü üçü de aynı listeyi kullanır. Google'ın aldatıcı site uyarısı devreye girdiği andan itibaren ziyaretçilerin ezici çoğunluğu geri döner; e-ticaret siteniz varsa sipariş akışı saat içinde durur, kurumsal siteniz varsa müşterileriniz size "siteniz virüslü" diye yazmaya başlar.
Bu yazı, uyarının nereden geldiğini, hangi tür ihlalin işaretlendiğini nasıl öğreneceğinizi ve uyarıyı kaldırmak için izlemeniz gereken sırayı anlatıyor. En kritik nokta baştan söylenmeli: temizlik tamamlanmadan inceleme talebi göndermek, talebin reddedilmesine ve süreç sayacının baştan başlamasına yol açar. Arka kapı dosyası yerinde durduğu sürece uyarı kaldırılsa bile birkaç gün içinde geri gelir — bu yüzden aşağıdaki adımlarda temizlik ile talep arasındaki sıra pazarlık konusu değildir.
Bu Uyarı Tam Olarak Nedir ve Nereden Gelir#
Uyarı, Google'ın Safe Browsing listesinden gelir. Chrome, Firefox, Safari ve pek çok mobil tarayıcı bir adrese gitmeden önce bu listeyi kontrol eder; adresiniz listedeyse tarayıcı sayfayı yüklemeden araya girer ve kırmızı ekranı gösterir. Yani uyarıyı gösteren tarayıcı değil, listedir; tek bir tarayıcıda düzeltmek diye bir şey yoktur.
Listeye üç yoldan girilir:
- Otomatik tarama. Googlebot sayfalarınızı gezerken zararlı kod, gizlenmiş yönlendirme veya oltalama formu tespit eder.
- Kullanıcı bildirimi. Ziyaretçiler siteyi şikâyet eder ve inceleme sonucu doğrulanır.
- Barındırılan içerik. Siz saldırıya uğramamış olsanız bile, sitenizde barındırdığınız kullanıcı yüklemeleri ya da reklam ağı üzerinden gelen bir kaynak zararlı içerik sunuyordur.
Üçüncü madde, sahiplerin en çok şaşırdığı senaryodur: WordPress kurulumunuz tertemizdir ama wp-content/uploads altına yüklenen bir PDF, ya da bir eklentinin çağırdığı üçüncü taraf betiği işaretlenmiştir.
Uyarı Türleri ve Ne Anlama Gelirler#
Kırmızı ekrandaki metin, ihlalin türüne göre değişir ve bu metin size nereye bakacağınızı söyler.
| Ekranda gördüğünüz | Google'ın sınıflandırması | Genellikle kaynağı |
|---|---|---|
| "Yanıltıcı bir siteye girmek üzeresiniz" | Sosyal mühendislik / oltalama | Sitenize yüklenmiş sahte giriş/banka sayfası |
| "Bu sitede zararlı programlar var" | Kötü amaçlı yazılım | Enfekte PHP/JS dosyaları, zararlı indirme bağlantısı |
| "Bu site istenmeyen yazılım barındırıyor" | İstenmeyen yazılım | Aldatıcı indirme kutuları, sahte güncelleme uyarıları |
| "Aldatıcı içerik sizi yanıltmaya çalışabilir" | Aldatıcı gömülü kaynak | Reklam ağından veya iframe'den gelen içerik |
Bu ayrımı bilmek zaman kazandırır: oltalama işaretlenmişse dosya sisteminde tek bir klasör (genellikle rastgele isimli, bir bankanın ya da kargo firmasının arayüzünü taklit eden bir dizin) ararsınız. Kötü amaçlı yazılım işaretlenmişse aramanız tüm PHP ağacına yayılır.
Adım 1: Search Console'da Güvenlik Sorunları Raporunu Okuyun#
Uyarının hangi türde olduğunu ve hangi adreslerin işaretlendiğini kesin olarak öğrenebileceğiniz tek yer Search Console'daki Güvenlik ve Manuel İşlemler → Güvenlik Sorunları raporudur.
- Search Console'a girin ve mülkünüzü seçin. Siteniz doğrulanmış değilse önce doğrulayın; doğrulama olmadan hiçbir bilgiye ve inceleme talebi düğmesine erişemezsiniz.
- Sol menüden Güvenlik ve Manuel İşlemler → Güvenlik Sorunları raporunu açın.
- Sorun başlığının altındaki Ayrıntılar bağlantısına tıklayın. Burada Google, tespit ettiği sorun türünü ve örnek URL'leri listeler.
- Bu örnek URL listesini bir metin dosyasına kopyalayın. Temizlik sırasında en çok işinize yarayacak veri budur.
Örnek URL'ler tüm enfeksiyonun listesi değildir, yalnızca numunedir. Yani listedeki beş adresi temizleyip talep göndermek çoğu zaman yetmez; o beş adres size kalıbı gösterir, siz aynı kalıbı tüm sitede aramalısınız.
Search Console mülkünüz yoksa ve doğrulama yapmakta zorlanıyorsanız, DNS TXT kaydıyla doğrulama en hızlı yoldur; alan adı paneline tek bir TXT kaydı eklemek yeterlidir.
Adım 2: Enfeksiyonu Sunucuda Bulun#
Search Console size neyin işaretlendiğini söyler, nerede olduğunu söylemez. Bunu sunucuda bulacaksınız. SSH erişiminiz varsa aşağıdaki komutlar işin büyük kısmını halleder.
Son değişen dosyaları listeleyin. Saldırının tarihi belliyse (Search Console tespit tarihini gösterir) o tarih civarında değişen dosyalar en güçlü ipucudur:
find /home/kullanici/public_html -type f -name "*.php" -mtime -14 -printf "%TY-%Tm-%Td %TH:%TM %p\n" | sort
Şüpheli fonksiyon kalıplarını arayın. Enjekte edilen kod neredeyse her zaman gizlenmiş (obfuscated) olur:
grep -rlE "eval\(|base64_decode\(|gzinflate\(|str_rot13\(|assert\(|preg_replace\(.*/e" \
/home/kullanici/public_html --include="*.php"
Yükleme klasöründeki PHP dosyalarını bulun. uploads altında PHP dosyası olmaması gerekir; varsa neredeyse kesin olarak arka kapıdır:
find /home/kullanici/public_html/wp-content/uploads -name "*.php" -o -name "*.phtml"
Zamanlanmış görevleri kontrol edin. Saldırganlar temizlikten sonra kendini geri kuran bir cron bırakır:
crontab -l -u kullanici
Yönlendirme kodunu arayın. Ziyaretçiyi başka siteye atan kod genellikle .htaccess içinde ya da tema dosyalarının başında olur:
grep -rn "RewriteRule" /home/kullanici/public_html/.htaccess
grep -rn "window.location\|document.write" /home/kullanici/public_html --include="*.js" | head -40
Googlebot gibi isteyin. Bazı zararlı yazılımlar yalnızca arama motoru botlarına veya yalnızca arama sonucundan gelen ziyaretçilere farklı içerik gösterir. Normal tarayıcıda temiz görünen site, bot olarak isteyince zararlı içeriği ortaya döker:
curl -sA "Googlebot/2.1" https://siteniz.com/ | head -60
curl -sA "Mozilla/5.0" -e "https://www.google.com/" https://siteniz.com/ | head -60
İki çıktı birbirinden farklıysa cloaking (gizleme) var demektir ve bu, uyarının neden sizde görünmediğini de açıklar. Bu davranışın ayrıntılarını site başka siteye yönlendiriyor yazısında ele aldık.
Adım 3: Temizleyin ve Arka Kapıları Kapatın#
Temizliğin sırası, bulmanın sırasından farklıdır. Şu düzeni izleyin:
- Önce yedek alın. Enfekte hâliyle bile olsa dosya ve veritabanı yedeği alın; yanlış bir silme işleminden geri dönebilmelisiniz.
- Siteyi geçici olarak kapatın. Bakım moduna alın veya IP kısıtlaması koyun ki temizlik sırasında yeni ziyaretçi zarar görmesin.
- Çekirdek dosyaları değiştirin, temizlemeye çalışmayın. WordPress kullanıyorsanız
wp-adminvewp-includesklasörlerini silip resmi arşivden gelen temiz kopyalarıyla değiştirin. Tek tek satır ayıklamak, gözden kaçan bir dosya bırakma riskini büyütür. - Eklenti ve temaları yeniden kurun. Kullanmadığınız her eklentiyi ve temayı silin — pasif bir eklenti de sunucuda duruyorsa çalıştırılabilir.
- Kullanıcı dizinindeki yabancı dosyaları silin. Adım 2'de bulduğunuz
uploadsaltındaki PHP dosyaları, kök dizindeki rastgele isimli klasörler, tanımadığınız.icoveya.pnguzantılı PHP dosyaları. - Veritabanını tarayın. Özellikle
wp_optionsiçindekisiteurl/homedeğerleri ve gönderi içeriğine enjekte edilmiş<script>etiketleri. .htaccessdosyasını sıfırdan yazın. Temizlemek yerine varsayılan içerikle değiştirin ve kendi kurallarınızı tekrar ekleyin.
Adım adım temizlik ve kontrol listesi için hacklenmiş site kurtarma yazısına, WordPress'e özel dosya karşılaştırma yöntemleri için wordpress malware temizleme yazısına bakabilirsiniz.
Giriş yolunu loglardan bulun#
Dosyaları temizlemek yetmez; saldırganın hangi kapıdan girdiğini bulmazsanız aynı senaryo tekrarlanır. Arka kapı dosyasının oluşturulma tarihini not edin ve erişim loglarında o saate bakın:
grep " 200 " /var/log/nginx/access.log | grep -iE "\.php\?|POST" | awk '{print $1, $4, $7}' | tail -100
Aynı IP'den kısa aralıklarla gelen çok sayıda POST isteği, sonrasında daha önce hiç var olmamış bir dosyaya yapılan GET isteği — bu ikili, klasik yükleme + çalıştırma imzasıdır. Bulduğunuz istek yolu size hangi eklentinin ya da formun istismar edildiğini de söyler. Tarama araçlarıyla dosya tarafını sistematik olarak taramak için malware tarama ve temizleme yazısındaki yöntemleri kullanabilirsiniz.
Temizlik bittiğini nasıl anlarsınız#
Şu üç kontrolün üçünde de temiz sonuç almalısınız: (a) yukarıdaki grep kalıpları hiçbir dosya döndürmemeli, (b) Googlebot ve normal tarayıcı çıktıları aynı olmalı, (c) sunucu erişim loglarında saldırganın kullandığı yol artık 200 değil 404 dönmeli. Üçü sağlanmadan bir sonraki adıma geçmeyin.
Adım 4: Yeniden Bulaşmayı Engelleyin#
Uyarının geri gelmesinin bir numaralı sebebi, temizliğin yapılıp giriş yolunun açık bırakılmasıdır. Talep göndermeden önce şunları yapın:
- Tüm şifreleri değiştirin: hosting paneli, FTP/SFTP, SSH, veritabanı kullanıcısı, site yönetici hesapları ve alan adı paneli. Aynı şifreyi başka yerde kullandıysanız orada da değiştirin.
- Tanımadığınız yönetici hesaplarını silin. Saldırganlar sıklıkla ikinci bir admin hesabı bırakır.
- Oturum anahtarlarını yenileyin. WordPress'te
wp-config.phpiçindeki güvenlik anahtarlarını yenilemek, çalınmış tüm oturumları geçersiz kılar. - Yazılımları güncelleyin. Çekirdek, eklenti, tema ve PHP sürümü. Giriş yolu neredeyse her zaman güncellenmemiş bir bileşendir.
- Dosya izinlerini düzeltin. Dizinler
755, dosyalar644,wp-config.php600olmalı;777izinli hiçbir dizin kalmamalı. - İki adımlı doğrulamayı açın. Hem hosting paneli hem de site yönetim paneli için.
find /home/kullanici/public_html -type d -exec chmod 755 {} \;
find /home/kullanici/public_html -type f -exec chmod 644 {} \;
chmod 600 /home/kullanici/public_html/wp-config.php
Adım 5: İnceleme Talebini Gönderin#
Temizlik ve sertleştirme tamamlandıysa artık talebi gönderebilirsiniz.
- Search Console → Güvenlik ve Manuel İşlemler → Güvenlik Sorunları ekranına dönün.
- Raporun altındaki İnceleme İste düğmesine tıklayın.
- Açılan kutuya ne yaptığınızı somut yazın. İyi bir açıklama şu üç bilgiyi içerir: enfeksiyonun nasıl bulaştığı, hangi dosyaların temizlendiği/değiştirildiği ve tekrarını önlemek için alınan önlemler.
- Gönderin ve sonucu bekleyin.
Zayıf açıklama: "Siteyi temizledim, lütfen kontrol edin." Güçlü açıklama: "Güncel olmayan bir eklenti üzerinden yükleme yapılmış; uploads klasöründe 3 arka kapı dosyası ve .htaccess içinde bir yönlendirme kuralı bulundu. Çekirdek dosyalar resmi arşivden yeniden kuruldu, tüm eklentiler güncellendi, tüm şifreler ve WordPress güvenlik anahtarları yenilendi, dosya izinleri 644/755 olarak düzeltildi ve iki adımlı doğrulama etkinleştirildi."
Sosyal mühendislik (oltalama) uyarılarında inceleme genellikle en hızlı sonuçlananıdır ve çoğu durumda 24-72 saat içinde tamamlanır. Kötü amaçlı yazılım incelemeleri birkaç güne uzayabilir. Bu süre boyunca tekrar tekrar talep göndermeyin; her yeni talep sırayı yeniden başlatır ve süreci uzatır.
Talep Reddedilirse Ne Yapmalı#
Ret, "temizlik eksik" demektir; ceza değildir. Neredeyse her zaman şu dört nedenden biridir:
| Ret nedeni | Nasıl anlaşılır | Çözüm |
|---|---|---|
| Arka kapı hâlâ duruyor | Temizlikten sonra dosyalar yeniden değişiyor | Tüm PHP ağacını yeniden tarayın, cron ve sistem kullanıcılarını kontrol edin |
| Enfeksiyon alt alan adında | Ana site temiz, uyarı sürüyor | Tüm alt alan adlarını ve park edilmiş adları ayrı ayrı kontrol edin |
| Üçüncü taraf kaynak | Kendi dosyalarınız temiz | Reklam kodlarını, iframe'leri ve harici betikleri geçici olarak kaldırın |
| Önbellek/CDN eski içeriği sunuyor | Sunucuda temiz, dışarıdan kirli | CDN ve sayfa önbelleğini tamamen boşaltın |
Reddedilen bir talepten sonra hemen yeniden göndermeyin. Önce yukarıdaki tabloya göre eksiği bulun, düzeltin, kendi kontrollerinizi tekrarlayın; ancak ondan sonra yeni talep açın. İkinci ret, aynı gerekçeyle geldiğinde çözüm süresi ciddi biçimde uzar.
Uyarı Kalktıktan Sonra Trafik Geri Gelir mi#
Uyarı kaldırıldığında tarayıcı engeli genellikle birkaç saat içinde ortadan kalkar; Safe Browsing listesi güncellenir ve kırmızı ekran gitmiş olur. Ancak organik trafiğin eski seviyesine dönmesi daha uzun sürer, çünkü uyarı süresince siteniz arama sonuçlarında tıklanmamış, bazı sayfalar taranmamış ve sıralamalar gerilemiş olabilir.
Toparlanmayı hızlandırmak için:
- Search Console'dan URL Denetimi ile önemli sayfaların yeniden taranmasını isteyin.
- Site haritanızı yeniden gönderin.
- Sunucu loglarında Googlebot'un tekrar düzenli geldiğini doğrulayın.
- Uyarı sırasında oluşan 5xx hatalarını temizleyin; bakım moduna alırken 503 dönmüş olabilirsiniz, bu zaten doğru davranıştır.
Uyarı süresince müşterilerinize açıklama yapmak da işin bir parçasıdır. Kısa, dürüst bir duyuru ("teknik bir güvenlik sorunu tespit edildi, giderildi, kart bilgileri etkilenmedi/etkilendi") itibar kaybını sessiz kalmaktan çok daha iyi yönetir.
Sıkça Sorulan Sorular#
Google aldatıcı site uyarısı ne kadar sürede kalkar#
Temizlik tamamlandıktan ve inceleme talebi gönderildikten sonra uyarı genellikle 24-72 saat içinde kalkar. Oltalama (sosyal mühendislik) sınıfındaki incelemeler çoğunlukla bu aralığın alt sınırında sonuçlanır, kötü amaçlı yazılım incelemeleri birkaç güne uzayabilir. Süre, talebin sıraya girdiği andan itibaren işler; bu yüzden aynı sorun için art arda talep göndermek süreci hızlandırmaz, aksine sırayı sıfırlar. Onay geldikten sonra tarayıcılardaki kırmızı ekranın kaybolması birkaç saat daha alabilir.
Temizlik yapmadan inceleme talebi gönderirsem ne olur#
Talep reddedilir ve zaman kaybedersiniz. Google inceleme sırasında siteyi yeniden tarar; zararlı içerik ya da arka kapı hâlâ duruyorsa sonuç olumsuz döner ve yeni bir talep göndermeniz gerekir. Üstelik tekrarlanan başarısız talepler sonraki incelemelerin daha uzun sürmesine yol açabilir. Talep göndermeden önce dosya taramasını, Googlebot testini ve log kontrolünü mutlaka tamamlayın.
Uyarı kaldırıldı ama birkaç gün sonra geri geldi#
Bu neredeyse her zaman arka kapının silinmediği anlamına gelir. Saldırganlar genellikle asıl zararlı kodun yanı sıra, sitenin bambaşka bir yerine kendini yeniden kurabilen küçük bir yükleyici dosya bırakır; ayrıca bir cron görevi ya da veritabanı tetikleyicisi kullanılmış olabilir. Bu durumda tek tek dosya temizlemek yerine, temiz bir yedekten geri dönmek ve sonra içeriği tek tek eklemek daha güvenilirdir. Şifrelerin tamamının değiştirilmediği durumlar da aynı sonucu üretir.
Sitem temiz ama uyarı sürüyor neden#
Üç ihtimal var: enfeksiyon bir alt alan adında olabilir, üçüncü taraf bir kaynak (reklam ağı, harici betik, iframe) işaretlenmiş olabilir ya da ziyaretçiye sunulan içerik CDN önbelleğinden gelen eski kopyadır. Search Console'daki örnek URL'leri dikkatle okuyun; işaretlenen adres kendi ana alan adınız değilse sorun büyük olasılıkla bunlardan biridir. CDN ve sayfa önbelleğini tamamen boşaltıp Googlebot kullanıcı aracısıyla yeniden test edin.
Search Console hesabım yoksa uyarıyı kaldırabilir miyim#
Hayır, inceleme talebini yalnızca doğrulanmış bir Search Console mülkü üzerinden gönderebilirsiniz. Doğrulama ücretsizdir ve birkaç dakika sürer; DNS'e bir TXT kaydı eklemek, sunucuya bir HTML dosyası yüklemek veya sitenizin başlığına bir meta etiket koymak yeterlidir. Alan adı paneline erişiminiz varsa TXT kaydı en hızlı yöntemdir. Doğrulama tamamlandıktan sonra Güvenlik Sorunları raporu ve inceleme talebi düğmesi hemen erişilebilir hâle gelir.
Uyarı sırasında sitemi kapatmalı mıyım#
Temizlik süresince siteyi bakım moduna almak veya kendi IP'nizle sınırlamak doğru bir davranıştır. Böylece hem ziyaretçiler zarar görmez hem de siz temizlik yaparken zararlı kod çalışmaya devam etmez. Bakım modunda HTTP 503 dönmek arama motorlarına "geçici" sinyali verir ve sıralama kaybını sınırlar; kalıcı bir kapatma sinyali olan 404 veya 410 dönmeyin. Temizlik biter bitmez siteyi tekrar açın, çünkü inceleme sırasında Google'ın siteyi tarayabilmesi gerekir.
Hosting firmam hesabımı askıya aldı ne yapmalıyım#
Zararlı içerik tespit edildiğinde barındırma sağlayıcıları hesabı geçici olarak askıya alabilir; bu, sunucudaki diğer siteleri ve sunucu IP'sinin itibarını korumak içindir. Bu durumda destek talebi açıp temizlik yapabilmek için sınırlı erişim (SSH veya dosya yöneticisi) isteyin; çoğu sağlayıcı bu erişimi verir. Temizliği tamamladıktan sonra ne yaptığınızı yazılı olarak bildirin ve tarama sonucunu paylaşın. Askı kalktıktan sonra Google inceleme talebini göndermeniz gerekir, çünkü iki süreç birbirinden bağımsızdır.
Uyarıyı yalnızca Chrome'da mı görüyorum#
Hayır, aynı liste Firefox, Safari ve pek çok mobil tarayıcı tarafından da kullanılır; birinde görünen uyarı diğerlerinde de görünür. Kendi bilgisayarınızda uyarıyı görmemeniz siteniz temiz demek değildir — zararlı yazılım, belirli ülkelerden, belirli tarayıcılardan veya yalnızca arama sonucundan gelen ziyaretçilerden gelen isteklere farklı içerik gösteriyor olabilir. Bu yüzden testinizi mutlaka farklı kullanıcı aracıları ve farklı yönlendiren adreslerle tekrarlayın.
Kapanış#
Aldatıcı site uyarısı, teknik olarak çözülebilir bir sorundur ama sırayı bozduğunuzda günlerce sürebilir. Doğru akış şudur: Search Console'dan ihlal türünü ve örnek URL'leri öğrenin, sunucuda enfeksiyonu ve arka kapıları bulun, çekirdek dosyaları temizlemek yerine değiştirin, tüm şifreleri ve oturum anahtarlarını yenileyin, ancak bundan sonra inceleme talebi gönderin. Talebe yazacağınız açıklamanın somut olması, ilk denemede onay alma ihtimalinizi ciddi biçimde artırır. Uyarı kalktıktan sonra da işiniz bitmez; giriş yolunu kapatmadıysanız aynı kırmızı ekran birkaç gün içinde geri gelir.
Bu döngüyü bir daha yaşamamanın en pratik yolu, temizlikten sonra düzenli bakım ve izlemeyi kurmaktır. Güncellemeleri, malware taramasını ve yedek doğrulamasını dışarıya bırakmak istiyorsanız WordPress bakım hizmeti bunu üstlenir; saldırı denemelerini sunucuya ulaşmadan filtrelemek için web uygulama güvenlik duvarı, temiz bir noktaya geri dönebilmek için ise yedekleme çözümleri işinizi görür. Sunucu tarafındaki sertleştirmeyi ve izlemeyi tamamen devretmek isterseniz sunucu yönetimi hizmetine bakabilirsiniz.