CSRF Saldırıları Nasıl Gerçekleşir?
CSRF saldırıları, temel olarak bir kullanıcının farkında olmadan yetkili olduğu bir web sitesinde işlemler yapmasını sağlayan bir yöntemle gerçekleşir. Saldırı süreci genellikle şu şekilde işler:
- Kullanıcının oturum açması: Saldırgan, hedeflediği kişinin bir web sitesinde oturum açmasını bekler. Örneğin, bir banka veya sosyal medya hesabı.
- Kötü niyetli site veya linkin tetiklenmesi: Kullanıcı, başka bir siteyi ziyaret eder veya zararlı bir linke tıklar. Bu site, kullanıcı bilgisi olmadan, hedef web sitesine otomatik istek gönderir.
- İsteklerin meşru kabul edilmesi: Hedef site, gelen isteğin kullanıcı tarafından yapıldığını düşünerek işlemi gerçekleştirir. Örneğin, para transferi, şifre değişikliği veya profil güncelleme.
-
Kullanıcının farkına varmadan işlem yapılması: CSRF saldırısı sırasında kullanıcı şifresini veya bilgilerini doğrudan vermez; saldırgan yalnızca kullanıcının yetkisini kötüye kullanır.
CSRF ve Web Tarayıcılarının Rolü
- Oturum çerezleri: Tarayıcı, oturum çerezlerini otomatik gönderir; bu CSRF’de sahte isteğin kullanıcı tarafından yapılmış gibi görünmesini sağlar.
- Cross-Site istekleri: Tarayıcılar, başka sitelerden içerik almayı kolaylaştırır; saldırganlar bunu gizli istek göndermek için kullanabilir.
- Kullanıcının farkında olmaması: Tarayıcı, sahte isteği normal işlem gibi işler; kullanıcı çoğu zaman saldırıyı fark etmez.
CSRF Saldırı Türleri
- GET tabanlı CSRF: Zararlı URL’ler aracılığıyla kullanıcı bilgisi olmadan istek gönderilir; genellikle ayar değişikliği, mesaj gönderme veya hesap güncelleme gibi işlemler hedeflenir.
- POST tabanlı CSRF: Kötü amaçlı formlar ile kullanıcı haberi olmadan veri gönderimi yapılır; finansal işlemler ve hassas form verileri bu yöntemle hedef alınabilir.
- JSON/AJAX tabanlı CSRF: Modern web uygulamalarında AJAX ve JSON kullanılarak arka planda istekler gönderilir; CORS yapılandırma hataları bu saldırılara fırsat verir.
- Flash tabanlı CSRF: Eski Flash uygulamaları üzerinden kullanıcı bilgisi olmadan HTTP istekleri gönderilir; günümüzde nadir görülür ama geçmişte ciddi tehdit oluşturmuştur.
CSRF ile XSS Arasındaki Farklar
CSRF:
- Saldırganın oturum açılmış bir hesaba ihtiyacı vardır. Böylelikle dışarıda ki bir linkten oturumu kullanarak işlem yaptırabilir.
XSS:
- Saldıran oturuma ihtiyaç duymaz. Sitenin açığından faydalanarak sunucu üzerinde script çalıştırmaya çalışır.
CSRF Güvenlik Testleri ve Pentest Yaklaşımı
CSRF açıklarını tespit etmek için güvenlik testleri ve penetrasyon testleri yapılır. Bu testlerde öncelikle web uygulamasındaki formlar, URL parametreleri ve API istekleri incelenir. Test uzmanları, kullanıcının oturum bilgilerini kullanarak sahte istekler gönderir ve uygulamanın bu isteklere karşı ne kadar savunmasız olduğunu gözlemler.
Pentest yaklaşımında genellikle aşağıdaki adımlar izlenir:
- Hedef Belirleme: Web uygulamasındaki potansiyel CSRF noktaları (formlar, butonlar, API endpoint’leri) belirlenir.
- Oturum Analizi: Kullanıcının oturum yönetimi ve kimlik doğrulama mekanizmaları incelenir.
- CSRF Test Senaryoları: Sahte istekler oluşturularak uygulamanın CSRF token veya diğer koruma mekanizmaları test edilir.
- Sonuçların Değerlendirilmesi: Eğer uygulama sahte isteklere karşı savunmasızsa, güvenlik açığı raporlanır ve öneriler sunulur.
- Önerilen Önlemler: CSRF token kullanımı, SameSite cookie ayarları ve referer kontrolü gibi yöntemlerin uygulanması tavsiye edilir.
CSRF nedir? Modern korunma yöntemleri