Sitem hacklendi, ne yapmalıyım? Temizlik sırası ve tekrarını önleme

Temizlik ikinci adımdır. Birinci adım kanıtı korumak ve girişi kapatmaktır; yoksa aynı açıktan tekrar girilir ve ikinci temizlik birincinin iki katı sürer. İzolasyon, kanıt kopyası, günlükler, erişim bilgilerinin değiştirilmesi, dosyaların temiz sürümle değiştirilmesi ve gizlenmiş kalıcılık yollarının temizlenmesi.

DigiWSS Ekibi denetim, güvenlik, hacklenme, web sitesi

Kısa cevap: Temizlik ikinci adımdır. Birinci adım kanıtı korumak ve girişi kapatmaktır. Sıra şöyledir: siteyi izole edin, bozuk hâlin bir kopyasını ayrı bir yere alın, günlükleri indirin, bütün erişim bilgilerini değiştirin, çekirdek dosyaları ve eklentileri temiz sürümlerle DEĞİŞTİRİN, sonra gizlenmiş kalıcılık yollarını temizleyin. Bu sırayı atlayıp doğrudan görünen zararı silmek, aynı açıktan tekrar girilmesine yol açar ve ikinci temizlik birincinin iki katı sürer.

Neden önce kanıt, sonra temizlik

Bir güvenlik olayında ilk refleks silmektir. Oysa sildiğiniz şey aynı zamanda tek kanıtınızdır. Hangi dosyanın ne zaman değiştiğini, hangi hesabın nereden giriş yaptığını ve saldırının hangi kapıdan geldiğini ancak olayın anlık fotoğrafı elinizde kalırsa bulabilirsiniz. Kapı bulunmazsa temizlik bir bakım işine dönüşür: belirti gider, sebep kalır.

İkinci sebep karşılaştırmadır. Temizlikten sonra “şimdi her şey yerinde mi” sorusunu cevaplamanın tek yolu, temiz hâli bozuk hâlle karşılaştırmaktır. Kopya yoksa karşılaştırma da yoktur; eksik kalan bir arka kapıyı fark etmeniz için sitenin yeniden bozulmasını beklemek gerekir.

Üçüncü sebep girişin kapanmasıdır. Siteyi temizleyip erişim bilgilerini değiştirmezseniz, saldırgan hâlâ içeridedir. Çalınmış bir yönetici parolası ya da açık kalmış bir oturum, temizlik bittikten yarım saat sonra her şeyi geri koyabilir. Bu yüzden parola değişikliği temizlikten SONRA değil, ÖNCE yapılır.

Kalıcılık yolları: saldırgan nereye saklanır

Kalıcılık (persistence), saldırganın bir kez girdikten sonra tekrar girebilmek için bıraktığı izdir. Görünen zarar bunun yalnızca üstüdür. Aşağıdaki tablo pratikte en sık karşılaşılan yerleri toplar.

Nereye saklanır Belirtisi Nasıl temizlenir
Yetkisiz yönetici hesaplarıKullanıcı listesinde tanımadığınız ad, tuhaf bir e-posta adresiHesabı silin, kalan yöneticilerin hepsinin parolasını değiştirin
Zamanlanmış görevler (cron)Temizlenen dosyaların bir süre sonra geri gelmesiGörev listesini tek tek okuyun, tanımadığınız kaydı kaldırın
Yapılandırma dosyasına eklenen yönlendirme kurallarıArama sonucundan gelen ziyaretçinin başka siteye düşmesiKuralları temiz bir sürümle değiştirin, gizli dosyaları da tarayın
Yükleme klasörüne bırakılmış çalıştırılabilir dosyalarGörsel klasöründe betik uzantılı dosyalar, tuhaf adlarSilin ve o klasörde betik çalıştırmayı sunucu düzeyinde kapatın
Tema ve eklenti dosyalarına gömülmüş uzaktan kod çağrılarıTek satırda biten, okunmaz hâle getirilmiş uzun kod bloklarıEklenti ve temayı kaynağından yeniden kurun, düzeltmeye çalışmayın
Veritabanındaki ayar ve içerik kayıtlarına eklenen betikDosyalar temiz olduğu hâlde sayfada beliren açılır pencereAyar tablolarını ve içerik alanlarını arayıp eklenen kodu çıkarın
Pasif edilmiş ama dosyası duran eklenti ve temalarBelirti yok; dosya doğrudan adresle çağrılabilir durumdadırPasif etmek yetmez; kullanılmayan her eklenti ve temayı SİLİN
Eski kurulum ve yedek dosyalarıWeb kökünde arşivler, kurulum betikleri, yedek adlı dizinlerWeb kökünden kaldırın; yedek web ile erişilebilir yerde durmaz

Tablonun en çok atlanan satırı sondan ikincisidir. Bir eklentiyi pasif etmek, dosyalarını sunucudan kaldırmaz; dosya duruyorsa doğrudan adresiyle çağrılabilir ve içindeki açık hâlâ kullanılabilir. Bu yüzden kullanılmayan eklenti ve temaların pasif edilmesi değil, silinmesi gerekir.

Adım adım: olaydan temiz siteye

  1. İzole edin. Siteyi bakım moduna alın ya da geçici olarak kapatın. Bu, hem ziyaretçinin zarar görmesini durdurur hem de temizlik sırasında sitenin üzerine yeni içerik eklenmesini engeller.
  2. Mevcut bozuk hâlin bir kopyasını ayrı bir yere alın. Dosyalar ve veritabanı. Bu kopya kanıt ve karşılaştırma içindir; temizlikten sonra neyin değiştiğini ancak bununla görebilirsiniz. Kopyayı çalışan sunucudan ayrı tutun ve üzerine yazılmasını engelleyin.
  3. Günlükleri indirin. Erişim ve hata günlükleri, dosya aktarım oturumları ve yönetici giriş kayıtları. Günlükler genelde belirli bir süre sonra döndürülüp silinir; bu yüzden indirmek beklenmez, hemen yapılır.
  4. Bütün erişim bilgilerini değiştirin ve açık oturumları kapatın. Yönetim paneli, veritabanı kullanıcısı, dosya aktarım hesapları, hosting paneli, alan adı paneli ve e-posta. Parola değiştirmek açık oturumları kendiliğinden düşürmez; oturumları ayrıca kapatmak gerekir.
  5. Çekirdek dosyaları ve eklentileri temiz sürümlerle DEĞİŞTİRİN. Bulaşmış dosyaları tek tek temizlemeye çalışmak yerine kaynağından yeniden kurun. Tek bir satırı kaçırmak bütün işi boşa çıkarır; değiştirmek ise tam sonuç verir.
  6. Kendi yazdığınız dosyaları ve veritabanını değişiklik tarihine göre tarayın. Özel kodun temiz bir karşılığı olmadığı için burada karşılaştırma yapmak gerekir: olay tarihinden sonra değişmiş dosyaları listeleyin ve eklenen kodu bulun.
  7. Gizlenmiş kalıcılık yollarını temizleyin. Yetkisiz yönetici hesapları, zamanlanmış görevler, yapılandırma dosyasına eklenen yönlendirme kuralları, yükleme klasörüne bırakılmış çalıştırılabilir dosyalar ve tema dosyalarına gömülmüş uzaktan kod çağrıları. Bu adım atlanırsa site bir hafta içinde geri bozulur.
  8. Siteyi yeniden açın ve inceleme talebi gönderin. Önleme önlemlerini aldıktan sonra bakım modunu kaldırın, sonra Search Console üzerinden güvenlik uyarısının kaldırılması için inceleme isteyin ve sonraki günlerde günlükleri izlemeye devam edin.

Search Console tarafı ve olay notu

Temizlik bittikten sonra arama tarafındaki uyarıyı kaldırmak için Search Console'daki Güvenlik Sorunları bölümünden inceleme talebi gönderilir. Kritik ayrıntı şudur: mülk doğrulanmış değilse bunu yapamazsınız. Yani mülkün olaydan ÖNCE kurulmuş olması gerekir; olay sırasında doğrulama yapmaya çalışmak, siteye dosya yükleyebilmeyi ya da DNS kaydı ekleyebilmeyi gerektirir ve o anda ikisi de zor olabilir. Search Console mülkünü kurmak bu yüzden bir güvenlik hazırlığıdır.

Olay sırasında tutulan not, hem incelemeye hem de sonraki değerlendirmeye temel olur. Aşağıdaki kalıpta köşeli parantez içindeki kısımlar sizin dolduracağınız YER TUTUCULARDIR.

OLAY NOTU / [site adi]
# ne zaman
  fark edildi    : [tarih ve saat]
  nasil fark edildi: [tarayici uyarisi / musteri bildirimi / arama sonucu]
  gunluklerdeki en eski suphe: [tarih ve saat]
# ne goruldu
  belirti        : [yonlendirme / eklenen sayfa / tahrif / spam e-posta]
  etkilenen yerler: [dosyalar / veritabani / posta kutulari]
# ne yapildi
  izolasyon      : [bakim modu / gecici kapatma], saat [...]
  kanit kopyasi  : [nerede duruyor]
  gunlukler      : [indirildi mi, nerede]
  degistirilen erisim bilgileri: [panel / veritabani / dosya aktarimi / hosting / alan adi / e-posta]
  temiz surumle degistirilenler: [cekirdek / eklentiler / tema]
  bulunan kalicilik yollari: [hesap / cron / yonlendirme kurali / yuklenen dosya]
# sonrasi
  onleme onlemleri: [guncelleme / silinen eklentiler / iki adimli dogrulama / yetki daraltma]
  inceleme talebi : [tarih]
  kisisel veri etkilenmis olabilir mi: [evet / hayir / belirsiz] - hukuk tarafina soruldu: [tarih]

Kişisel veri boyutu atlanacak bir ayrıntı değil

Müşteri verisi barındıran bir sitede yaşanan bir güvenlik olayı yalnızca teknik bir arıza değildir. Sipariş kayıtları, iletişim formu gönderimleri, üye bilgileri ya da posta kutuları etkilenmiş olabilir; bu durumda olayın kayıt altına alınması ve bir ihlal olup olmadığının değerlendirilmesi gerekir. Değerlendirme teknik ekibin tek başına vereceği bir karar değildir.

Burada kasıtlı olarak bir süre ya da yükümlülük yazmıyoruz: bildirim gerekip gerekmediği, kime ve hangi biçimde yapılacağı hukuk tarafının değerlendirmesine bağlıdır ve olayın niteliğine göre değişir. Teknik tarafın işi şudur: neyin etkilendiğini, hangi veri kategorilerinin söz konusu olduğunu ve zaman çizelgesini yazılı hâle getirmek, sonra bunu hukuk tarafıyla konuşmak. Yazılı bir not olmadan bu değerlendirme yapılamaz.

Önleme: ikinci olayı engellemek

  • Güncellemeleri geciktirmeyin. Yayınlanmış bir açık, yayınlandığı anda taranmaya başlar. Haftalarca bekleyen bir güncelleme, kapısı açık bırakılmış bir ev anlamına gelir.
  • Kullanılmayan eklenti ve temaları SİLİN. Pasif etmek yetmez; dosya sunucuda duruyorsa doğrudan çağrılabilir. Bu, en sık atlanan ve en kolay kapatılan açıktır.
  • Yönetim paneline iki adımlı doğrulama koyun. Çalınmış ya da tahmin edilmiş bir parola tek başına yeterli olmaz. Yönetici sayısı az olduğu için bu önlemin maliyeti de düşüktür.
  • Yükleme klasöründe betik çalıştırmayı kapatın. O klasöre yüklenen bir dosya en kötü hâlde bir dosya olarak kalır, çalışan bir program olarak değil. Tek bir sunucu ayarı, en yaygın giriş yolunu kapatır.
  • Her kullanıcıya en az yetki verin. İçerik yazan kişinin eklenti kurma yetkisi olmamalı. Yetki dağıtımı, bir hesabın ele geçmesi hâlinde zararın tavanını belirler.
  • Dosya değişikliği izlemeyi açın. Beklenmeyen bir dosya değiştiğinde haber alırsanız olayı günler değil dakikalar içinde fark edersiniz. Bu, temizlik maliyetini doğrudan düşürür.
  • Yedeğin sunucu dışında ve sürümlü olmasını sağlayın. Aynı sunucudaki yedek, bir olayda saldırganın da erişebildiği yedektir. Sürümlü saklama, bozulmanın fark edilmesinden önceki temiz bir noktaya dönme imkânı verir.

Yaygın hatalar

  • Kanıtı ve günlükleri korumadan temizliğe başlamak. Giriş yolu bulunamaz, temizlik belirtiyi alır sebebi bırakır. Günlükler bir süre sonra döndürülüp silindiğinde geri getirilemez.
  • Yalnızca görünen zararı silip arka kapıyı bırakmak. Tahrif edilen sayfa düzelir, site bir hafta sonra aynen bozulur. Bu döngü, kalıcılık yolları taranmadığı sürece sürer.
  • Şifreleri değiştirmeden siteyi açmak. Saldırgan hâlâ içeridedir ve temizliğinizi geri alır. Parola değişikliği temizlikten sonra değil, başında yapılır.
  • Yedekten geri dönüp aynı açığı da geri getirmek. Yedek, olaydan önceki hâli taşır – giriş yolunu da. Geri dönüşten sonra güncellemeleri ve önlemleri mutlaka uygulayın, yoksa aynı senaryo tekrarlanır.
  • Aynı sunucudaki diğer siteleri kontrol etmemek. Paylaşımlı sunucuda bulaşma yanal yayılır: bir sitedeki açık, aynı hesaptaki diğer siteleri de götürür. Temizlik hesabın tamamında yapılır.
  • “Google uyarısı kalktı” diye denetimi bırakmak. Uyarının kalkması temizliğin tam olduğunu kanıtlamaz; yalnızca o anda tarananlarda bulgu olmadığını gösterir. Sonraki haftalar boyunca günlükleri ve dosya değişikliklerini izlemeye devam edin.

Ne zaman uzmana bırakmalı

Tek bir eklentiden gelen basit bir bulaşma, yedeği ve günlükleri yerinde olan bir sitede tek oturumda temizlenir. Şu durumlarda işin niteliği değişir: sitede müşteri verisi varsa, aynı hesapta birden fazla site barınıyorsa, bulaşma posta kutularına ya da giden e-postaya yayılmışsa (alan adınız kara listeye düşebilir), olay birden fazla kez tekrarlamışsa ya da güvenilir bir yedek yoksa. Son durumda temizlik, karşılaştırılacak temiz bir referans olmadan yapılacağı için en pahalı senaryodur.

Mevcut durumun ölçülmüş bir fotoğrafını ve kapanmamış açıkların listesini istiyorsanız teknik denetim çalışmamız dosya bütünlüğünü, yetkileri, güncellemeleri ve kalıcılık yollarını tek tek kontrol ediyor. Sorularınızı iletişim sayfasından yazabilirsiniz.

Devamını okumak için

Bu yazının en çok ihtiyaç duyduğu hazırlık yedektir: site yedekleme ve kurtarma yazısı kopyanın nerede durması ve nasıl denenmesi gerektiğini anlatıyor. Temizlikten sonra şifresiz kaynaklar ve bozuk sertifika kalmasın diye SSL kurulumu ve karışık içerik yazısına bakın. Uyarı kalktığı hâlde sayfalar aramada görünmüyorsa sitem Google'da çıkmıyor yazısı sebepleri sırayla eliyor. Müşteri verisi tarafı için KVKK uyumlu müşteri verisi yazısı neyin nerede tutulduğunu ele alıyor. Tüm başlıklar blog sayfamızda, çalışma alanlarımız ana sayfamızda.

Bu yazıyla ilgili sık sorulan sorular

Sitem hacklendi, ilk ne yapmalıyım?

Temizliğe değil, izolasyona başlayın. Siteyi bakım moduna alın ya da geçici olarak kapatın, mevcut bozuk hâlin bir kopyasını ayrı bir yere alın ve günlükleri indirin. Bu üç adım kanıtı korur; kanıt olmadan girişin hangi kapıdan yapıldığı bulunamaz ve temizlik belirtiyi alıp sebebi bırakır.

Parolaları ne zaman değiştirmeliyim?

Temizlikten önce. Yönetim paneli, veritabanı kullanıcısı, dosya aktarım hesapları, hosting paneli, alan adı paneli ve e-posta bilgilerinin hepsi değiştirilir ve açık oturumlar ayrıca kapatılır; parola değiştirmek oturumları kendiliğinden düşürmez. Erişim bilgileri değişmeden site açılırsa saldırgan temizliği geri alır.

Bulaşmış dosyaları temizlemek mi, değiştirmek mi daha doğru?

Değiştirmek. Çekirdek dosyaları, eklentileri ve temayı kaynağından yeniden kurun. Tek tek temizlemeye çalışmak tek bir satırın kaçmasına ve bütün işin boşa gitmesine yol açar. Yalnızca kendi yazdığınız kodda karşılaştırma yapılır: olay tarihinden sonra değişmiş dosyalar listelenip eklenen kod bulunur.

Google güvenlik uyarısı nasıl kaldırılır?

Temizlik bittikten sonra Search Console içindeki Güvenlik Sorunları bölümünden inceleme talebi gönderilir. Mülk doğrulanmış değilse bunu yapamazsınız, bu yüzden mülkün olaydan önce kurulmuş olması gerekir. Uyarının kalkması temizliğin tam olduğunu kanıtlamaz; günlükleri izlemeye devam edin.

Aynı olayın tekrarını nasıl önlerim?

Güncellemeleri geciktirmeyin, kullanılmayan eklenti ve temaları pasif etmekle yetinmeyip silin, yönetim paneline iki adımlı doğrulama koyun, yükleme klasöründe betik çalıştırmayı kapatın, her kullanıcıya en az yetki verin, dosya değişikliği izlemeyi açın ve yedeğin sunucu dışında sürümlü biçimde durmasını sağlayın.

Konuşalım

Yazıda anlatılanı işletmenizde uygulamak istiyorsanız adresinizi gönderin; ölçüp ne yapılması gerektiğini paylaşalım.