E-Siber.com
M. Mekin Pesen
Sitede 1775 okunmaya değer yazı var.

Sitelerin Hacklendiðini Anýnda Tespit Edin

Özellikle son dönemde geliþtirilen bir takým yöntemler ve zaafiyetler sonucu sýklýkla web sitelerinin hacklendiðine þahit oluyoruz. Aslýnda bunun temel nedeni bazý önemli ayrýntýlara dikkat edilmemesinden kaynaklanýyor. Fakat yine de bazý zamanlar hacklenmekten kurtulamýyorsunuz. Ve bunun farkýna vardýðýnýzda iþ iþten geçmiþ ve mesajlar sizin üzerinizden iletilmiþ olabiliyor. Fakat çok pratik bir yol sayesinde siteniz hacklenir hacklenmez haberdar olabilir ve de anýnda gerekli önlemleri alabilirsiniz.

 

Hacklenme son zamanlarda artýk iki amaç için yapýlabiliyor. Ýlk olarak hedefe veya hedef üzerinden belirli bir kitleye spesifik bir mesaj ya da nosyon iletmek için, diðeri ise o siteye zararlý bir malware yazýlýmýný yükletmesini saðlayacak kod parçasýný yüklemek veya sitenin arama motoru trafiðini belirli yerlere yönlendirmek için yapýlabiliyor.

 

Arama motorundan gelen siteye gelen trafiði istenilen yerlere yönlendirmek için sitenin .htaccess dosyasý deðiþtirerek gerekli eklemeler yapýlýyor. Böylelikle siteye arama motorlarý sonuçlarý üzerinden gelen ziyaretçiler çaktýrmadan ve otomatik bir þekilde baþka bir yere yönlendirilmiþ oluyor. Bunun için de alttaki htaccess kodlarý kullanýlabiliyor:

RewriteEngine On
RewriteCond %{HTTP_REFERER} .google.$ [NC,OR]
RewriteCond %{HTTP_REFERER} .aol.$ [NC,OR]
RewriteCond %{HTTP_REFERER} .msn.$ [NC,OR]
RewriteCond %{HTTP_REFERER} .altavista.$ [NC,OR]
RewriteCond %{HTTP_REFERER} .ask.$ [NC,OR]
RewriteCond %{HTTP_REFERER} .yahoo.$ [NC,OR]

 

En çok kullanýlan yöntemde ise sitenin ana sayfasý yani "index.php" dosyasý deðiþtirilerek yerine baþka bir þey konulabiliyor.

Her iki yolda da dosyalarýn kendisi deðiþtiriliyor. Yani artýk eski dosyanýn yerine boyutu ve içeriði deðiþtirilmiþ ayný isimde fakat farklý görevi yerine getiren yeni bir dosya karþýmýza çýkýyor.

 

Ýþte tam bu noktada hacklenmenin farkýna varacaðýmýz yer ortaya çýkmýþ oluyor. Bir dosyanýn benzersiz içerik ve boyut bilgisinin sýký bir þekilde kodlanmýþ olduðu hash (SHA1) kodu çok iþe yarýyor. Yani orjinal dosyamýzýn (index.php veya .htaccess) ilk orijinal hash kodu ile hacklendikten sonraki haline ait hash kodunun otomatik olarak karþýlaþtýrýlmasý neticesinde ortaya çýkan fark sonucu anýnda istenilen bir adrese e-posta bildirimi yapýlabiliyor:

<?php

$hash1 = sha1_file('.htaccess');
$hash2 = sha1_file('index.php');

if(($hash1 == 'fa7cdb22b81b0b713bfed609acc984591f9bed2f') &&
   ($hash2 == 'b4bb6070800a340566d7d6872516d248d4a7aff3')) {
    mail("EMAIL", "Durum Ok!", "Durum Ok!");
} else {
    mail("EMAIL", "Alarm!", "Dosyalar deðiþtirilmiþ!");
}
?>

Yukarýdaki kodda görülebileceði gibi iki farklý dosyanýn hash kodu alýnýyor, eðer dosyalar hackenirse, doðal olarak hash kodlarý deðiþeceðinden, bu durum anýnda EMAIL olarak belirteceðiniz adrese bildiriliyor.

 

Bu koruma yönetimini otomatikleþtirmek için yukarýdaki yaklaþýmý kullanan HashWatch PHP Class isimli bir php sýnýfýndan faydalanýyoruz.

Bu classý kendi alanýnýza kurduktan sonra öncelikle hash deðerlerinin tutulacaðý ve php tarafýndan yeniden yazýlabilir bir dosya oluþturuyorsunuz. Ardýndan bir config dosyasý oluþturuyorsunuz:

 

Hash deðerlerini oluþtumak ve saklamak için:

<?php

$hw = new HashWatch('path/to/config.HashWatch.php');
$hw->buildHashes();

Var olan güncel dosya ile önceden kayýt edilmiþ olanlarý karþýlaþtýrmak için:

<?php

$hw = new HashWatch('path/to/config.HashWatch.php');
$warnings = $hw->compareHashes();

if (!empty($warnings)) {

    // e-posta gönder, sms gönder... vs...

}

Ayar kýsmý oldukça basit. Config dosyasýnýn içinde deðiþtirilmesi ve kullanýlmasý zorunlu olan sadece $paths_to_watch ve $hash_folder_path isimli iki parametre var.

 

Siteyi her güncellediðinizde bu scripti çalýþtýrýn. Bu güncellemeye göre yeni hash deðerleriniz oluþturulur. Bunu ister elle isterseniz de script þeklinde yapabilirsiniz. Ardýndan bir cron job oluþturarak kayýtlý olan hash deðerleri ile var olan dosyanýzýn hash deðerlerini otomatik olarak karþýlaþtýrýn. Aþaðýdaki baðlantýya gittiðinizde indireceðiniz dosyada örnek script de var:

 

HashWatch PHP Class: https://github.com/august/HashWatch/
Via www.codediesel.com/security/checking-your-site-for-malicious-changes


· · · · · · · · · · · · · · ·
Yazan: | 09.08.2011 | 3041 kez okundu.

Yazılar E-Posta Kutunuza Gelsin:

Bu yazıyı izinsiz olarak alıp başka herhangi bir yerde yayınlayamazsınız (Bkz "dijital at hırsızı" kimdir?). Yazıların başka yerlerde yayınlanmasına ücreti mukabili izin veriyoruz. Yazıları izinsiz olarak başka bir yerde yayınlamanız, her türlü hukuki sonucu kabul ettiğiniz manasına gelir. Yazıları izin almak ve kaynak göstermek kaydıyla sadece kamu kurumları ve akademik araştırmacılar ücretsiz olarak kullanabilir. Bunların dışında kalan herkes ücret öder. Detaylar için bize ulaşın.

Yorum altyapısı: Disqus

Yukarı Çık

M. MEKİN PESEN
© 2007-2015 E-SİBER BİLGİ-İLETİŞİM TEKNOLOJİLERİ
E-Siber.com | E-Siber.net | ESiber.com | ESiber.net | RSS | Facebook | Twitter | E-Posta Aboneliği
IP: 54.92.175.204 | Yüklenme: 0.433 saniye. | Hakkımızda | İletişim | Reklam Verin | Site Politikaları | Atıflar