Kategoriler
CloudFlare

Siteler arası komut dosyası oluşturma nedir?

Siteler arası komut dosyası çalıştırma (XSS), saldırganın, kurban web sitesini yüklediğinde çalıştırılacak olan yasal bir web sitesine kod eklediği bir istismardır. Bu kötü amaçlı kod, çeşitli şekillerde eklenebilir. En popüler olanı, bir url’nin sonuna eklenir veya doğrudan kullanıcı tarafından oluşturulan içeriği görüntüleyen bir sayfaya gönderilir. Daha teknik bir ifadeyle, siteler arası komut dosyası çalıştırma, bir istemci tarafı kod yerleştirme saldırısıdır.

İstemci tarafı kodu nedir?

İstemci tarafı kodu , bir kullanıcının makinesinde çalışan JavaScript kodudur. Web siteleri açısından, istemci tarafı kodu genellikle tarayıcı bir web sayfasını yükledikten sonra web tarayıcısı tarafından yürütülen koddur. Bu, ana bilgisayarın web sunucusunda yürütülen sunucu tarafı kodunun tersidir . İstemci tarafı kodu, etkileşimli web sayfalarında çok kullanışlıdır; Etkileşimli içerik, kullanıcının bilgisayarı her etkileşim olduğunda web sunucusuyla iletişim kurmak zorunda olmadığından daha hızlı ve daha güvenilir bir şekilde çalışır. Tarayıcı tabanlı oyunlar, istemci tarafı kodu, oyunun bağlantı sorunlarından bağımsız olarak sorunsuz çalışmasını sağlayabildiğinden, istemci tarafı kodu için popüler bir platformdur.

İstemci tarafında çalışan kod, modern web geliştirmede çok popülerdir ve çoğu modern web sitesinde kullanılır. Siteler arası kod, modern web’in temel unsurlarından biri olduğundan, siteler arası komut dosyası oluşturma, en sık bildirilen siber güvenlik açıklarından biri haline geldi ve siteler arası komut dosyası saldırıları, YouTube, Facebook ve Twitter gibi büyük siteleri vurdu.

Siteler arası komut dosyası oluşturma örneği nedir?

Siteler arası komut dosyası çalıştırma saldırılarının yararlı bir örneği, genellikle doğrulanmamış yorum forumlarına sahip web sitelerinde görülür. Bu durumda bir saldırgan, ‘<script> </script>’ etiketlerine sarılmış çalıştırılabilir koddan oluşan bir yorum yayınlayacaktır. Bu etiketler, bir web tarayıcısına, etiketler arasındaki her şeyi JavaScript kodu olarak yorumlamasını söyler. Bu yorum sayfaya girdiğinde, başka herhangi bir kullanıcı o web sitesini yüklediğinde, komut dosyası etiketleri arasındaki kötü amaçlı kod web tarayıcıları tarafından çalıştırılacak ve saldırının kurbanı olacaklar.

Bir saldırgan, zarar vermek için siteler arası komut dosyasını nasıl kullanabilir?

JavaScript çapraz site komut dosyası saldırıları popülerdir çünkü JavaScript, kimlik hırsızlığı ve diğer kötü amaçlı amaçlar için kullanılabilecek bazı hassas verilere erişebilir. Örneğin, JavaScript’in tanımlama bilgilerine * erişimi vardır ve bir saldırgan, bir kullanıcının tanımlama bilgilerini çalmak ve çevrimiçi olarak bunların kimliğine bürünmek için bir XSS saldırısı kullanabilir. JavaScript ayrıca verileri (çalınan tanımlama bilgileri gibi) saldırgana geri göndermek için kullanılabilen HTTP istekleri de oluşturabilir . Ek olarak, istemci tarafı JavaScript, bir saldırganın coğrafi konum koordinatlarını, web kamerası verilerini ve diğer hassas bilgileri içeren API’lere erişim sağlamasına da yardımcı olabilir.

Tipik bir siteler arası komut dosyası çalıştırma saldırı akışı aşağıdaki gibidir:

  1. Kurban bir web sayfası yükler ve kötü niyetli kod kullanıcının çerezlerini kopyalar
  2. Kod daha sonra bir saldırganın web sunucusuna, isteğin gövdesinde çalınan tanımlama bilgileriyle birlikte bir HTTP isteği gönderir.
  3. Saldırgan daha sonra bu çerezleri, bir sosyal mühendislik saldırısı amacıyla söz konusu web sitesinde kullanıcının kimliğine bürünmek ve hatta banka hesap numaralarına veya diğer hassas verilere erişmek için kullanabilir.

* Çerezler, bir kullanıcının bilgisayarına kaydedilen geçici oturum açma bilgileridir. Örneğin, bir kullanıcı Facebook gibi bir sitede oturum açtığında, site onlara bir çerez verir, böylece tarayıcı penceresini kapatır ve o gün daha sonra Facebook’a geri dönerse, çerez tarafından otomatik olarak doğrulanır ve tekrar giriş yapmaları gerekmez. .

Farklı siteler arası komut dosyası türleri nelerdir?

Siteler arası komut dosyası çalıştırma saldırılarının en popüler iki türü, siteler arası komut dosyası oluşturma ve siteler arası kalıcı komut dosyası oluşturma şeklindedir.

Yansımalı siteler arası komut dosyası

Bu, en yaygın olarak görülen siteler arası komut dosyası çalıştırma saldırısıdır. Yansıyan bir saldırı ile, bir web sitesinin url’sinin sonuna kötü amaçlı kod eklenir; genellikle bu yasal, güvenilir bir web sitesi olacaktır. Kurban bu bağlantıyı web tarayıcısına yüklediğinde, tarayıcı url’ye enjekte edilen kodu çalıştıracaktır. Saldırgan genellikle kurbanı bağlantıya tıklaması için kandırmak için bir tür sosyal mühendislik kullanır.

Örneğin, bir kullanıcı, bankasından geldiğini iddia eden yasal görünümlü bir e-posta alabilir. E-posta, bankanın web sitesinde bir işlem yapmasını isteyecek ve bir bağlantı sağlayacaktır. Bağlantı şu şekilde görünebilir:

http://legitamite-bank.com/index.php?user=<script>here is some bad code!</script>

URL’nin ilk bölümü güvenli görünmesine ve güvenilen bir web sitesinin etki alanını içermesine rağmen, URL’nin sonuna eklenen kod kötü amaçlı olabilir.

Kalıcı siteler arası komut dosyası

Bu, örneğin yorum forumu veya sosyal medya sitesi gibi kullanıcıların diğer kullanıcıların göreceği içeriği yayınlamasına izin veren sitelerde gerçekleşir. Site, kullanıcı tarafından oluşturulan içeriğin girdilerini gerektiği gibi doğrulamazsa, bir saldırgan diğer kullanıcıların tarayıcılarının sayfa yüklendiğinde çalıştıracağı kodu ekleyebilir. Örneğin, bir saldırgan çevrimiçi bir tanışma sitesine gidebilir, profiline şöyle bir şey koyabilir:

"Hi! My name is Dave, I enjoy long walks on the beach and <script>malicious code here</script>"

Dave’in profiline erişmeye çalışan herhangi bir kullanıcı, Dave’in sürekli siteler arası komut dosyası çalıştırma saldırısının kurbanı olacaktır.

Siteler arası komut dosyası oluşturma nasıl engellenir

Siteler arası komut dosyasını azaltmak için tek bir strateji yoktur ve farklı web uygulamaları türleri farklı koruma seviyeleri gerektirir. Bir dizi koruyucu önlem alınabilir, aşağıda birkaçını özetleyeceğiz.

Mümkünse, girdilerde HTML’den kaçınmak – Siteler arası kalıcı komut dosyası çalıştırma saldırılarını önlemenin çok etkili bir yolu, kullanıcıların HTML’yi form girdilerine göndermesini önlemektir. Markdown ve WYSIWYG editörleri gibi, kullanıcıların HTML kullanmadan zengin içerik oluşturmasına izin veren başka seçenekler de vardır.

Girdileri doğrulama – Doğrulama, bir kullanıcının belirli kriterleri karşılamayan bir forma veri göndermesini engelleyen kuralların uygulanması anlamına gelir. Örneğin, kullanıcının “Soyadını” soran bir giriş, kullanıcının yalnızca alfanümerik karakterlerden oluşan verileri göndermesine izin veren doğrulama kurallarına sahip olmalıdır. Doğrulama kuralları, “<script>” etiketleri gibi siteler arası komut dosyası oluşturmada yaygın olarak kullanılan tüm etiketleri veya karakterleri reddedecek şekilde de ayarlanabilir.

Verileri temizleme – Verileri temizleme, doğrulamaya benzer, ancak veriler web sunucusuna gönderildikten sonra, ancak yine de başka bir kullanıcıya gösterilmeden önce gerçekleşir. HTML’yi temizleyebilen ve kötü amaçlı kod enjeksiyonlarını filtreleyebilen birkaç çevrimiçi araç vardır.

Çerez güvenlik önlemleri almak – Web uygulamaları, çerezlerin işlenmesi için siteler arası komut dosyası çalıştırma saldırıları yoluyla çerez hırsızlığını azaltabilecek özel kurallar da belirleyebilir. Tanımlama bilgileri, siteler arası komut dosyası çalıştıran saldırganların bunlara erişememesi için belirli IP adreslerine bağlanabilir. Ek olarak, JavaScript’in çerezlere erişmesini tamamen engellemek için kurallar oluşturulabilir.

Spreading Love by Sharing