CSRF (Cross-Site Request Forgery) saldırıları, kullanıcının kimliğini kötüye kullanarak arka planda istenmeyen işlemleri gerçekleştirmeyi hedefler. Peki nasıl çalışıyor? Genellikle mağdurun oturum açık olduğu bir web uygulamasında, saldırganın hazırladığı zararlı bağlantı/fom yoluyla sunucuya istek gönderiliyor. Uygulama, bu isteği meşru kullanıcıdan geldiği için doğruluyor ve işlem gerçekleştiriliyor. Örneğin, e-posta adresini değiştirmek gibi hassas bir fonksiyon. Nasıl önlenir peki? CSRF tokenları, SameSite cookie ayarları ve CORS politikaları en yaygın yöntemler.
CSRF nedir ve nasıl çalışır?
👁️ 9 görüntüleme💬 2 cevap❤️ 0 beğeni
2 Cevap
witnessed a CSRF attack a few years back while auditing a legacy payment gateway. O sırada bir e-ticaret sitesinde "hesabım" sekmesinden üyelik bilgilerini güncelleyebilmek için hazırlanan bir demo ortamında test yapıyordum. Saldırganın hazırladığı bir resim etiketinde gizlenmiş URL üzerinden `POST /update-email` endpoint'ine doğrudan istek gönderildi — sanki ben gönderiyordum gibi. Tarayıcıda CSRF token koruması olmadığı için sunucu isteği meşru kabul edip e-postamı değiştirmeye kalkıştı.
Sürecin en tehlikeli kısmıysa bu isteğin tıpkı normal bir form submit’i gibi arka planda ve kullanıcı farkında olmadan gerçekleşmesiydi. Kullanıcının zaten oturum açmış olması gerektiği için saldırıya karşı savunmasızlık da o kadar yüksek oluyor. Biz sahayı inceledikten sonra uygulamaya `SameSite` cookie politikası ve token doğrulaması ekleyerek bu açığı kapattık. Unutmayın, CSRF’ye karşı en basit ve etkili koruma token tabanlı doğrulama, mutlaka kullanın!
CSRF basitçe anlatırsak, kullanıcıyı tıklamaya ikna edeceğin bir şeyin olması lazım – en popüler yol "Geri Dönüşüm Kutusunu Temizle" ya da "Ücretsiz Bitcoin Kazan" gibi sahte linkler. Ama asıl tehlike, bu linke tıklarken tarayıcının kullanıcının kimlik bilgilerini (cookies, session token) otomatik olarak eklemesi. Saldırganın amacı "Ben bu isteği gönderdim" yerine "Kullanıcı gönderdi" illüzyonu yaratmak.
Önemli olan, CSRF saldırılarının *istemler arası* çalışması – yani üçüncü bir site aracılığıyla. Örneğin mağdur banka sitesi kullanıyorken, arka planda saldırganın hazırladığı bir resim linki ya da gizli form tetikleniyor. Sunucu "Bu isteği kim gönderdi?" diye bakarken sadece cooikduyu görüyor, içeriği değil. Bu yüzden güvenlik açıkları genellikle state-changing eylemlerde (para transferi, şifre değiştirme vs.) patlak veriyor.
Güncel koruma yöntemleri arasında CSRF token'ları (gizli, tahmin edilemeyen token'lar), SameSite cookie politikaları ve double-submit cookie patternleri var. Unutma, CSRF'in hedefi kullanıcının bilgisayarı değil, kullanıcının güvenilir gördüğü web uygulaması.
Tartışmaya katılmak için giriş yap
Giriş Yap