PenetrasyonTesti
March 20, 2020

CROSS SİTE REQUEST FORGERY (CSRF) NEDİR?

Türkçe açılımı “Siteler Arası İstek Sahtekârlığı” şeklinde olan CSRF zafiyeti; web uygulamasını kullanmakta olan kullanıcıların istekleri dışında işlemler yürütülmesidir. Uygulamaya giden isteklerin hangi kaynaktan ve nasıl gönderildiği kontrol edilmeyen sistemlerde ortaya çıkan bu zafiyet, aslında uygulamayı kodlayan yazılımcıların gözünden kaçan bir ayrıntıdır diyebiliriz. Genelde CSRF veya XSRF şeklinde kısaltılan bu güvenlik açığı “Session Riding ” olarak da bilinmektedir.


Hemen hemen her web sitesi, bir kullanıcının oturumunu korumak için bugün çerezleri kullanır. HTTP “durumsuz” bir protokol olduğundan, bir kullanıcının bir dizi istek için kimlik doğrulaması için yerleşik bir yol yoktur. Kullanıcıdan her işlemde kimlik bilgilerini istemek, kullanıcı deneyimi açısından çok kötü bir fikirdir, bu yüzden çerezler kullanılır. Çerezler bu amaç için çok verimlidir ve yeterli entropiye, kriptografik güce sahiplerse ve güvenli bir kanal üzerinden (HTTPS kullanarak) iletiliyorsa güvenlidir.

Ancak, bir sorun var, tarayıcılar isteğin “kökenini " kontrol etmeden bu web sitesine bir istek yapıldığında çerezleri bir web sitesine gönderir. CSRF'in resme girdiği yer burasıdır.

CSRF'den Nasıl Korunuruz ?

Kullanıcı Tarafındaki Önlemler

  • En önemli ve sürekli ifade edilen önlemlerden bir tanesi olan kaynağın güvenliği doğrulanmamış bağlantılara tıklamamak gerekmektedir. Kimden geldiğinden emin olamadığınız maillerdeki bağlantılara tıklamayınız.
  • Bağlantıları zararlı analiz platformlarında taratarak ve domaini kontrol ederek giriş sağlayınız.
  • Ön belleğe verileri düzenli olarak temizleyiniz. (çerez, site verileri)

Sistem Tarafındaki Önlemler

  • Kullanıcıların gerçekleştirdiği talepler POST metodu ile alınmalıdır.
  • Kullanıcıya özel olarak üretilmiş tokenler ile CSRF in önüne geçilmiş olur. Bu token her işlemde tekrar üretilir ve formda saklanır böylelikle saldırganın bu tokeni tahmin etmesi imkansız hale gelir. Bu kısımda önemli olan şey ise token üretirken doğru bir patern ve güvenilir kriptografi yöntemleri kullanılmasıdır. Birden fazla token yöntemi oluşturma yöntemi vardır.

Korunma yöntemlerinden en popüler olanı ele alalım.

CSRF Token Nedir?

İlk olarak ifade etmek gerekirse CSRF zafiyetinin önlenmesi açısından en önemli ve popüler yöntemdir. CSRF Token yöntemi temelde benzersiz ve gizli bir değer alarak formlara gömülen ve bu sayede kullanıcının başarıyla oturum açma işleminden sonra oluşturulan değerdir. Bu değer patern yöntemlerine göre farklı şekillerde saklanabilir.

Token patern yöntemleri ve uygulamamızı bir sonraki yazımda ele alacağım.

@ykslkrkci tarafından Persona Non Grata için yazılmıştır . Telegram grubumuza katılın.

Ya geç nereye geçiyosan geç, benden uzak dur be bizi bitirdin be.