Siteler Arası İstek Sahtekarlığı (CSRF) nedir?
Yayınlanan: 2023-04-12Siteler Arası İstek Sahtekarlığı (CSRF veya XSRF) güvenlik açıkları, önem derecelerinde nadiren yüksek veya kritiktir. Yine de çok fazla zarar verebilirler. Son yıllarda Siteler Arası Komut Dosyası Çalıştırma (XSS) güvenlik açıklarından sonra en yaygın ikinci WordPress güvenlik açığı oldular. Bir CSRF güvenlik açığının ne olduğunu ve saldırganların bu güvenlik açığından genellikle nasıl yararlandığını biliyorsanız, web sitenizi nasıl koruyacağınızı daha iyi anlayacaksınız.
Aynı Köken Politikasını Aşmak
Bir CSRF güvenlik açığı, bir saldırganın aynı kaynak ilkesi adı verilen standart bir tarayıcı özelliğini atlatmasını mümkün kılar. Tüm web tarayıcıları, CSRF'lerin etkinleştirdiği türden müdahaleleri önlemek için bu kurala uyar. Normalde bir web sayfasını yüklerken, izin verilen istisnalar dışında, tarayıcınız yalnızca bir alan veya alt alan ile etkileşime girer. Ayrıca, sizi bir sorun olduğu konusunda uyarmadan yalnızca bir protokol, HTTP veya HTTPS (ikisi birden değil) üzerinden içerik kabul edecektir. Kötü niyetli kişiler aynı kaynak politikasını atlarlarsa, beklenmedik bir şekilde farklı bir siteyle etkileşime girerek istenmeyen eylemler gerçekleştiren bağlantılara tıklamanız için sizi kandırabilirler.
Görsel olarak, başka bir siteyle istenmeyen bir şekilde etkileşime girdiğinize dair çok az ipucunuz olur veya hiç ipucunuz olmaz. Clickjacking şu şekilde çalışır. WordPress siteniz bir CSRF güvenlik açığı aracılığıyla istismar edildiyse, siz ve ziyaretçileriniz kimlik avına, tıklama hırsızlığına ve daha kötülerine maruz kalabilirsiniz.
Bu kılavuzda, siteler arası istek sahteciliğinin ayrıntılarını inceleyeceğiz. Nasıl çalıştıklarını anlamanız için belirli bir CSRF güvenlik açığı örneğine bakacağız. Ardından, sitenizde CSRF güvenlik açıklarının ortaya çıkmasını önlemek için neler yapabileceğinizi size göstereceğiz. Ayrıca, sitenizi bu ve diğer saldırı türlerine karşı güçlendirerek başarılı bir CSRF istismarının verebileceği zararı ortadan kaldırmanın veya sınırlamanın bazı yollarını önereceğiz.
Hadi bir bakalım.
Siteler Arası İstek Sahtekarlığı (CSRF) Saldırısı WordPress Sitenizi Nasıl Etkiler?
Bir CSRF saldırısı başarılı olduğunda, kurbanları istemeden oturum açma kimlik bilgilerinin güncellenmesi gibi zararlı bir eylemi yetkilendirir. Bir saldırganın kullanıcı hesaplarını ele geçirmesine izin vermeleri için kandırılmış olabilirler. Daha da kötüsü, bir CSRF istismarının kurbanı, saldırganların kendi adlarına mali transferler başlatmasına izin verebilir.
WordPress sitenizdeki bir eklenti CSRF güvenlik açığı içeriyorsa, bir saldırgan bazı kullanıcı hesaplarını ele geçirebilir. Bu en kötü senaryolardan biri olurdu. Çalınan bir hesabın WordPress'te yönetici rolü varsa veya kullanıcı parolasını başka sitelerde yeniden kullanırsa, zarar çok büyük olabilir.
Bir CSRF Saldırısı Nasıl Çalışır?
Bir bilgisayar korsanının CSRF saldırısı yapabilmesi için üç farklı koşulun bulunması gerekir. Bunları genel düzeyde anlarsanız, bazı web güvenliği temellerini iyi işleyen bir kavrayışa sahip olursunuz.
1. Çerez Tabanlı Oturum İşleme
Diğer durum bilgisiz uygulamalar gibi, WordPress de kullanıcıları tanımlamak için oturum tanımlama bilgilerini kullanır. Düşük veya tehlikeye atılmış güvenlik koşullarında, bir saldırgan bazı sahte oturum tanımlama bilgileri oluşturabilir veya oturum açmış bir kullanıcıyı bazı istenmeyen eylemler gerçekleştirmesi için manipüle edebilir. WordPress, oturum açmış bir kullanıcıdan gelen veya öyle görünen sahte ve manipüle edilmiş istekleri kabul edecektir.
CSRF istismarları genellikle çerez tabanlı oturum işlemeyi hedeflese de, tek hedefleri bu değildir. CSRF saldırıları, isteklere otomatik olarak kullanıcı kimlik bilgileri ekleyen herhangi bir uygulamaya karşı etkili olabilir. Sertifika tabanlı kimlik doğrulama ve HTTP Temel kimlik doğrulama da bu nedenle CSRF güvenlik açıklarına açıktır.
2. İlgili Bir Eylem Hedeflenebilir
Hedeflenen uygulama içinde kurbanların kandırılabileceği bazı eylemler bulunmalıdır. Bu, kullanıcı izinlerini değiştirmek gibi ayrıcalıklı bir işlem olabilir. Bir kullanıcının şifresini güncellemek gibi kullanıcıya özel verilerle ilgili olabilir. Bunlar, WordPress de dahil olmak üzere tüm web uygulamalarında ortak eylemlerdir. Bilgisayar korsanları için hedef olarak değer taşırlar çünkü kullanıcı hesaplarını çalmaları için bir yol açabilirler ve hırsızlık, dolandırıcılık veya diğer kötü niyetli faaliyetlerde bulunmanın yollarını daha derine inebilirler.
3. Öngörülemeyen İstek Parametreleri Yok
Hedeflenen eylemi gerçekleştiren isteklerin bilinmesi veya tahmin edilebilir olması gerekir. Hedeflenen isteklerin, saldırganın değerlerini belirleyemeyeceği veya tahmin edemeyeceği parametreler içermesi gerekmiyorsa, bunlar manipülasyona karşı daha savunmasızdır.
Örneğin, geçerli bir parola değişikliği talebinin mevcut parolayı içermesi gerekiyorsa, saldırgan parolayı bilmediği sürece güvenlidir. CSRF belirteçleri ve SameSite tanımlama bilgileri, geliştiriciler kodlarını güvence altına almak için bunları kullandığında saldırganlara daha fazla engel oluşturur. Ancak bazen geliştiriciler bu güvenlik yöntemlerini doğru şekilde veya hiç uygulamazlar. (Güçlü, parolasız kullanıcı kimlik doğrulamasının değerli olmasının nedeni budur.)
Kullanıcı Hesabı E-postalarını Değiştirmek İçin Bir CSRF Güvenlik Açığı Kullanma — Bir Örnek
İşte daha derinlemesine bir örnek. Aslında işe yaramayacak, ancak etkili bir CSRF istismarı için oyundaki ana kavramları gösteriyor.
Bir e-posta değişiklik isteği düşünün. Bir kullanıcı bu eylemi gerçekleştirdiğinde, onu alan web sunucusuna şuna benzeyen bir HTTP isteği yapar:
POST /test HTTP/1.1 Host: yourwebsite.com Content-Type: application/x-www-form-urlencoded Content-Length: 60 Cookie: session=yvthgjrudhgeQkAPzeQ5gHgTvlyxHfsAfE;[email protected]
Neden Çalışıyor?
Bu, aşağıdaki durumlarda/nedeniyle CSRF için gereken koşulları karşılar:
- Hedeflenen site/uygulama, isteği hangi kullanıcının gönderdiğini belirlemek için bir oturum çerezi kullanır ve kullanıcı oturumlarını izlemek için başka belirteçler veya mekanizmalar yoktur. Bu nedenle geliştiriciler CSRF belirteçlerini ve/veya SameSite tanımlama bilgilerini kullanmalıdır.
- Bir kullanıcının e-posta adresini değiştirmek, bir saldırganın çıkarına uygun bir eylemdir. Kesinlikle öyle! Bir kullanıcının e-posta adresini sizin kontrolünüzde olan bir e-posta adresiyle değiştirebilirseniz, hesabının tüm kontrolünü ele alabilirsiniz.
- Saldırgan, bir kullanıcının e-posta adresini değiştirmek için ihtiyaç duyduğu istek parametrelerini bilir ve bunlar için geçerli değerler üretebilir. Bu parametreler gizli değildir ve birçok kişinin çevrimiçi hesapları için hangi e-posta adreslerini kullandığını belirlemek zor değildir. Oturum tanımlama bilgisi daha aldatıcıdır.
Bir Saldırgan Oturum Çerezlerini Nasıl Çalabilir?
Saldırganın ana engeli, belirli bir kullanıcının hesabına erişecek parametrelerin gerçek değerlerini belirlemektir. Bunu, hedeflenen sitenin kullanıcılarına yönelik bir web sayfası oluşturarak yapabilirler. Bu aldatıcı sitede, ücretsiz hediye talep etmek gibi meşru bir amacı varmış gibi görünen bağlantılar veya düğmeler bulunabilir. Gerçekte, bu bağlantılara veya düğmelere tıklarsanız, bazı tatlıları ücretsiz olarak alan tek kişi saldırgandır.
Bu sahte bağlantıları tıkladığınızda, hedeflenen ve CSRF'ye karşı savunmasız siteye adres değişikliği talebinde bulunacaklar. Bu siteye giriş yaptıysanız, istek geçerli olacaktır. Hesabınız çalındı — anahtarlarınızı teslim ettiniz.
Bir WordPress sitesinde oturumu açık olan kullanıcıların tarayıcılarında, farklı bir sitede olsalar bile devam eden etkin bir oturum çerezi bulunur. Tarayıcıları, söz konusu oturum çerezini sahte bir istek içine otomatik olarak dahil edecektir. WordPress, başka bir siteden gelmesine ve kullanıcının bunu yaptığından haberi olmamasına rağmen, bunu tamamen geçerli bir adres değişikliği isteği olarak görebilir.
SameSite tanımlama bilgisi özniteliği gibi başka hiçbir güvenlik önleminin yürürlükte olmadığı varsayıldığında, güvenlik açığı bulunan hedef site, sahte bir isteği geçerli bir istekle aynı şekilde işleyecektir. Hedeflenen web sitesi bir adres değişikliği doğrulama adımı uygulamıyorsa veya saldırgan bunu aşmanın bir yolunu buluyorsa, saldırgan kullanıcının adresini başarılı bir şekilde kendi seçtiği herhangi bir adresle değiştirir.
Bir CSRF Saldırısı Savunmasız Bir Web Sitesine Nasıl İletilir?
CSRF saldırıları ve Yansıtılmış Siteler Arası Komut Dosyası Çalıştırma (Yansıtılan XSS) saldırıları için dağıtım mekanizmaları benzerdir.
Çoğu durumda, saldırganlar kötü amaçlı kodlarını kontrol ettikleri aldatıcı bir siteye yerleştirir. Bu, zaten güvenliği ihlal edilmiş meşru bir site olabilir, bu nedenle Google aldatıcı bir site listesi tutar. Bu listedeyseniz, tüm tarayıcılar kullanıcılarını uyaracaktır! Bu nedenle iThemes Security, sitenizin bir bilgisayar korsanının aracı haline gelmediğinden emin olmak için her gün kontrol eder.
Potansiyel kurbanları aldatıcı bir web sitesini ziyaret etmeye ikna etmek, yalnızca temel bir sosyal medya ve e-posta pazarlama meselesidir. Bazen kötü amaçlı kod, etkin bir alandaki popüler bir siteye yerleştirilir.
Saldırganın kurbanlarını cezbetmek için bir web sitesine bile ihtiyacı olmayabilir. Bazı basit CSRF istismarları GET yöntemini kullanır. Bu, bir bağlantıyı tıkladığınızda veya adres çubuğuna bir URL girdiğinizde tarayıcınızın yaptığı şeydir. Bağlantıdaki veya sağladığınız URL'yi kullanarak bir GET isteği yapar. Bazen bir CSRF saldırısı, savunmasız bir web sitesine tek bir GET isteği ile tam olarak yürütülebilir. Bu gibi durumlarda, saldırganın aldatıcı bir web sitesi kullanması gerekmeyebilir. Kurbanlarına kötü amaçlı bir URL'yi doğrudan besleyebilirler.
Sitenizi Siteler Arası İstek Sahtekarlığı (CSRF) Saldırılarından Koruma
CSRF güvenlik açıkları sıklıkla eklentilerde ve bazen de temalarda ortaya çıkar. Bilgisayar korsanları onları hedef aldığında, kendinizi korumak zor değildir. Güvendiğiniz kaliteli eklentileri ve temaları kullanın, kullanmadıklarınızı kaldırın ve tüm yazılımlarınızı güncel tutun . Ayrıca iyi düşünülmüş bir kullanıcı güvenlik politikası uygulamalı ve şifresiz çalışmayı düşünmelisiniz. Kullanıcı hesaplarına erişim elde etmek için sitenizde bir CSRF güvenlik açığından (veya başka bir güvenlik açığından) yararlanılırsa, geçiş anahtarları kullanıyorsanız bunun saldırgana pek bir faydası olmayacaktır. Olmayanı kimse çalamaz.
Güncellemeleri yönetmenin ve savunmasız eklentiler ve temalar hakkında sizi uyarmasının yanı sıra iThemes Security Pro, kullanıcı ve rol tabanlı güvenlik kurallarını kurmayı ve yönetmeyi kolaylaştırır. En az ayrıcalık ilkesine dayalı olarak ayrıcalıkları devredin. Oturum açma, parola kurtarma ve iletişim formlarınızı CAPTCHA'larla güvenceye alın. Kullanıcılarınıza ihtiyaç duyduklarından daha fazla yetenek vermeyin. Daha yüksek ayrıcalıklı kullanıcıların daha güçlü kimlik doğrulama yöntemleri kullanmasını zorunlu kılın. Ve kesinlikle WordPress'te parola olmadan oturum açmanın en uygun, son derece basit yolunu benimseyin: Parolalar!
WordPress'i Korumak ve Korumak için En İyi WordPress Güvenlik Eklentisi
WordPress şu anda tüm web sitelerinin %40'ından fazlasına güç veriyor, bu nedenle kötü niyetli bilgisayar korsanları için kolay bir hedef haline geldi. iThemes Security Pro eklentisi, WordPress web sitenizi güvenli hale getirmeyi ve korumayı kolaylaştırmak için WordPress güvenliğinin varsayımlarını ortadan kaldırır. Bu, WordPress sitenizi sizin için sürekli izleyen ve koruyan tam zamanlı bir güvenlik uzmanına sahip olmak gibidir.
Dan Knauss, StellarWP'nin Teknik İçerik Genel Sorumlusudur. 1990'ların sonlarından beri açık kaynakta ve 2004'ten beri WordPress ile çalışan bir yazar, öğretmen ve serbest çalışan.