Normal bir kullanıcı üzerindeki potansiyel etki önemli olsa da, bir yönetici hesabına yönelik başarılı bir CSRF saldırısı, sunucunun tamamını tehlikeye atabilir ve potansiyel olarak bir web uygulamasının, API’nin veya başka bir hizmetin tamamen ele geçirilmesiyle sonuçlanabilir.
Siteler Arası İstek Sahteciliği Nasıl Çalışır?
Bu saldırı, verilerin bir değerden diğerine değiştirilmesiyle sonuçlanan istek türünü ifade eden durum değiştiren istekleri hedeflemeye odaklanır. Örneğin, hedeflenen bir istek, bir satın alma işlemi gerçekleştirebilir veya bir hesaptaki değeri değiştirebilir. İlginç bir şekilde, bu bir “kör saldırı”dır ve saldırgana veri döndürmez, bu da onu veri hırsızlığı için kötü bir seçim haline getirir .
Siteler arası istek sahteciliği saldırısındaki 4 adıma bir örnek:
- Saldırgan, çalıştırıldığında belirli bir bankadan saldırganın hesabına 10.000 ABD Doları aktaracak sahte bir istek oluşturur.
- Saldırgan, sahte isteği bir köprüye gömer ve toplu e-postalar halinde gönderir ve ayrıca web sitelerine gömer.
- Bir kurban, saldırgan tarafından yerleştirilen bir e-postaya veya web sitesi bağlantısına tıklar ve kurbanın bankadan 10.000 ABD Doları transfer etmesini talep etmesiyle sonuçlanır.
- The bank server receives the request, and because the victim is properly authorized, it treats the request as legitimate and transfers the funds.
CSRF saldırıları metodolojide farklılık gösterir, ancak tipik olarak aşağıdaki özelliklere sahiptir:
- Bir kullanıcının kimliğine dayanan web sitelerini kullanırlar
- Kullanıcının tarayıcısını , hedeflenen siteye HTTP istekleri göndermesi için kandırırlar.
- Yan etkileri olan ve uygun CSRF korumalarına sahip olmayan HTTP isteklerini kullanmayı içerirler.
Farklı HTTP fiillerinin, CSRF saldırılarına karşı çeşitli güvenlik açıkları vardır ve bu da değişken koruma stratejilerine neden olur. Bunun nedeni, web tarayıcılarının fiilleri farklı şekilde işlemesidir.
HTTP GET istekleri, görüntü etiketlerinin içindekiler gibi manipüle edilebilen ve istismar edilebilen gömülü parametrelere sahiptir. Tipik olarak, GET istekleri durumu değiştirmez, bu da onları düzgün bir şekilde uygulanmış bir web uygulaması veya başka bir kaynak için CSRF’nin hedefleri olarak etkisiz hale getirir.
HTTP POST, durumu değiştirmek için kullanılır ve bu da koruma ihtiyacının artmasına neden olur. Bu amaçla, web tarayıcıları aynı kaynak politikası (SOP) ve çapraz kaynak güvenlik politikasını içeren çapraz kaynak paylaşımı (CORS) adı verilen güvenlik önlemleri uygular. SOP, yalnızca aynı Kaynaktan gelen isteklere izin verir ve CORS, yalnızca belirli türdeki isteklerin farklı bir Kaynaktan gelmesine izin verir. Bu uygulamaların kombinasyonu, bir isteğin veya web sayfasının farklı bir kaynakla etkileşim kurma yeteneğini sınırlayarak CSRF saldırılarının (diğerlerinin yanı sıra) önlenmesine yardımcı olur.
PUT ve DELETE gibi diğer HTTP fiilleri yalnızca SOP ve CORS kullanılarak çalıştırılabilir, bu da birçok siteler arası saldırıyı azaltır.
Nadir olsa da, bazı web siteleri bu güvenlik önlemlerini açıkça devre dışı bırakacaktır ve bunları bir web tarayıcısının içinde devre dışı bırakmak da mümkündür.
Siteler Arası İstek Sahteciliği nasıl azaltılabilir?
CSRF saldırılarını azaltmak için en yaygın metodoloji, iki yöntemden birini kullanarak Anti-CSRF belirteçlerinin kullanılmasını içerir. Belirteç uygulamaları biraz farklı olsa da, temel ilke aynı kalır; Rastgele oluşturulmuş bir belirteç dizesi oluşturup ardından karşılaştırarak, bir saldırganın son derece olası olmayan bir tahminde bulunmadan bir saldırı gerçekleştirme olasılığı daha düşüktür.
Senkronizör belirteci deseni:
Bir kullanıcı, para transferine izin veren banka web sayfası gibi bir web sayfasını ziyaret ettiğinde, bankanın web sitesi forma rastgele bir jeton yerleştirir. Kullanıcı formu gönderdiğinde rastgele jeton döndürülür ve banka iki jetonun eşleşip eşleşmediğini kontrol edebilir. Belirteçler eşleşirse, aktarım gerçekleşir. Saldırganın, web sayfasında oluşturulan rastgele belirteç değerine erişme yolu yoktur ve sayfayı talep ederse, aynı Origin politikası, saldırganın yanıtı okumasını engeller.
Bu yöntemin dezavantajı, her istekte belirteçlerin geçerliliğini kontrol etme yükünün sunucu tarafında artmasıdır. Bir kullanıcının birden fazla tarayıcı penceresi varsa veya istekte bulunan farklı yazılımları içeren diğer koşullar da sorun yaratabilir. Belirtecin kapsamını istek başına değil oturum başına olacak şekilde genişleterek, bu zorluğun bir kısmı önlenebilir.
Çerezden başlığa jeton:
Başka bir yöntem, ziyaretçinin web tarayıcısına rastgele bir belirteç içeren bir çerez verilmesini içerir. İstemci tarafında çalışan JavaScript, tanımlama bilgisindeki belirtecin değerini okuyacak ve her istekle birlikte gönderilecek bir HTTP başlığına kopyalayacaktır. Kullanıcıdan gerçek bir istek gönderilirse, başlıktaki değer sunucu tarafından doğrulanabilir. Diğer örnekler başarısız olacak ve başarılı bir saldırıyı azaltacaktır.
Kullanıcılar, bir WAF aracılığıyla özel kurallar kullanarak belirli CSRF saldırılarını önlemeye yardımcı olabilir. Cloudflare’nin Web Uygulaması Güvenlik Duvarını keşfedin .