CSRF nedir
XSRF, Sea Surf veya Session Riding olarak da bilinen siteler arası istek sahteciliği (CSRF), bir web tarayıcısını, kullanıcının oturum açtığı bir uygulamada istenmeyen bir eylem yürütmesi için kandıran bir saldırı vektörüdür.
Başarılı bir CSRF saldırısı hem işletme hem de kullanıcı için yıkıcı olabilir. Çalınan oturum tanımlama bilgileri dahil olmak üzere müşteri ilişkilerinin zarar görmesine, yetkisiz fon transferlerine, parolaların değiştirilmesine ve veri hırsızlığına neden olabilir.
CSRF'ler tipik olarak, kurbanı bir sunucuya sahte bir istek göndermesi için kandıran bir e-posta veya bağlantı gibi kötü niyetli sosyal mühendislik kullanılarak gerçekleştirilir. Şüphelenmeyen kullanıcının kimliği, saldırı sırasında uygulamaları tarafından doğrulandığından, meşru bir talebi sahte olandan ayırt etmek imkansızdır.
CSRF örneği
Bir saldırıyı gerçekleştirmeden önce, bir fail, sahte bir talebin mümkün olduğu kadar meşru görünmesini sağlamak için tipik olarak bir uygulamayı inceler.
Örneğin, 100$'lık bir banka havalesi için tipik bir GET isteği şöyle görünebilir:
http://netbank.com/transfer.do?acct=PersonB&amount=100$ HTTP/1.1 ALIN
Bir bilgisayar korsanı bu komut dosyasını değiştirebilir, böylece kendi hesabına 100$'lık bir transferle sonuçlanabilir. Şimdi kötü niyetli istek şöyle görünebilir :
http://netbank.com/transfer.do?acct=AttackerA&amount=100$ HTTP/1.1 ALIN
Kötü bir oyuncu, talebi masum görünen bir köprüye gömebilir:
<a href="http://netbank.com/transfer.do?acct=AttackerA&amount=$100">Daha fazlasını okuyun!</a>
Ardından, köprüyü e-posta yoluyla çok sayıda banka müşterisine dağıtabilir. Banka hesabında oturum açmış durumdayken bağlantıya tıklayanlar, istemeden 100 ABD doları transferini başlatacaktır.
Bankanın web sitesi yalnızca POST isteklerini kullanıyorsa, bir <a> href etiketi kullanarak kötü niyetli istekleri çerçevelemenin imkansız olduğunu unutmayın. Ancak saldırı, gömülü JavaScript'in otomatik olarak yürütülmesiyle bir <form> etiketinde gerçekleştirilebilir.
Böyle bir form şöyle görünebilir:
<body onload="document.forms[0].submit()">
<form action="http://netbank.com/transfer.do" method="POST">
<input type="hidden" name=" acct" value="AttackerA"/>
<input type="hidden" name="amount" value="$100"/>
<input type="submit" value="Resimlerimi görüntüle!"/>
</form>
< /vücut>
CSRF azaltma yöntemleri
CSRF saldırılarının hem önlenmesi hem de hafifletilmesi için bir dizi etkili yöntem mevcuttur. Bir kullanıcının bakış açısından, önleme, oturum açma kimlik bilgilerinin korunması ve yetkisiz kişilerin uygulamalara erişiminin engellenmesi meselesidir.
En iyi uygulamalar şunları içerir:
- Kullanılmadığında web uygulamalarının oturumunun kapatılması
- Kullanıcı adlarının ve şifrelerin güvenliğini sağlama
- Tarayıcıların şifreleri hatırlamasına izin vermemek
- Bir uygulamada oturum açarken aynı anda gezinmekten kaçınmak
Web uygulamaları için, kötü niyetli trafiği engellemek ve saldırıları önlemek için birden fazla çözüm mevcuttur. En yaygın azaltma yöntemleri arasında, her oturum isteği veya kimliği için benzersiz rastgele belirteçler Oluşturmak yer alır Bunlar daha sonra sunucu tarafından kontrol edilir ve doğrulanır. Yinelenen belirteçlere veya eksik değerlere sahip oturum istekleri engellenir. Alternatif olarak, oturum kimliği belirteciyle eşleşmeyen bir isteğin bir uygulamaya ulaşması engellenir.
Çerezlerin iki kez gönderilmesi, CSRF'yi engellemenin iyi bilinen bir başka yöntemidir. Benzersiz belirteçlerin kullanılmasına benzer şekilde, hem bir tanımlama bilgisine hem de bir istek parametresine rastgele belirteçler atanır. Sunucu daha sonra uygulamaya erişim vermeden önce belirteçlerin eşleştiğini doğrular.
Etkili olsalar da belirteçler, tarayıcı geçmişi, HTTP günlük dosyaları, bir HTTP isteğinin ilk satırını kaydeden ağ cihazları ve korunan site harici bir URL'ye bağlanırsa yönlendiren üstbilgileri dahil olmak üzere bir dizi noktada gösterilebilir. Bu potansiyel zayıf noktalar, belirteçleri tam geçirmez bir çözümden daha az yapar.
0 Comments