Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Siteler arası betik çalıştırma

bullvar_katip

Administrator
Katılım
21 Mayıs 2024
Mesajlar
532,105
Siteler arası betik çalıştırma (, kısaca XSS), genellikle web uygulamalarında bulunan bir tür bilgisayar güvenlik açıklığıdır. XSS, diğer kullanıcılar tarafından görüntülenen web sayfalarına istemci taraflı kodun enjekte edilmesine imkân verir. Siteler arası betik çalıştırma açıklığı, saldırganlar tarafından aynı kök politikası gibi bazı erişim kontrollerini atlatmak için kullanılabilmektedir. Web sayfaları üzerinde gerçekleştirilen siteler arası betik çalıştırma saldırıları, 2007 itibarıyla Symantec'in raporladığı tüm güvenlik açıklıklarının yaklaşık olarak %84'ünü oluşturmaktadır.Zafiyet içeren sitenin işlediği verinin hassasiyetine ve site sahibi tarafından uygulanan güvenlik tedbirlerine bağlı olarak, etkisi ufak bir aksamadan önemli bir güvenlik riskine kadar değişebilmektedir. Arka plan Web güvenliği, aynı kök politikası gibi güven unsurunun temelinde yatan mekanizmalar gibi pek çok mekanizmaya bağlıdır. Aynı kök politikası basitçe, eğer bir siteye ait içeriğe başka bir sistem üzerindeki kaynaklara erişim yetkisi verilmişse, bu siteye ait herhangi bir içeriğin de bu izinleri paylaşacağı ancak başka bir siteye ait içeriğin erişim için ayrıca izin alması gerektiğini ifade etmektedir. Siteler arası betik çalıştırma saldırıları, web tabanlı uygulamalardaki, bunların sunucularındaki veya gereksinim duydukları pluginlerdeki bilinen açıklıkları kullanmaktadır. Bunlardan birisini istismar ederek, saldırganlar zafiyet içeren siteden gelen içeriğin içerisine kötücül içeriği eklemektedir. Oluşan birleştirilmiş içerik istemci tarafındaki web tarayıcısına eriştiğinde, tamamı güvenilir kaynaktan alınmış olduğu için sisteme verilen izinlerle çalışmaktadır. Web sayfalarına kötücül betikleri enjekte etmenin yolunu bularak, saldırgan hassas sayfa içeriğine, oturum çerezlerine ve kullanıcı adına tarayıcı tarafından yönetilen diğer pek çok bilgiye yükseltilmiş erişim yetkileri elde edebilir. Siteler arası betik çalıştırma saldırıları, bir kod enjeksiyonu çeşididir. Microsoftsiber güvenlik mühendisleri, "siteler arası betik çalıştırma" ifadesini Ocak 2000'de ortaya çıkarmıştır. "Siteler arası betik çalıştırma" ifadesi ilk olarak, hedeflenen alan adının güvenlik bağlamında saldırganın hazırladığı JavaScript kod parçasının çalıştırılabileceği bir şekilde, alakasız bir saldırgan sitesine ait veya ele geçirilmiş üçüncü parti bir web uygulamasının (yansıtılmış veya kalıcı olmayan bir XSS açıklığını kullanarak) yüklenmesini ifade ediyordu. Bu tanım daha sonra, bilgi güvenliği alanına yeni katılanlar için bir karışıklığa neden olacak şekilde, kalıcı ve JavaScript olamayan vektörleri (ActiveX, Java, VBScript, Flash veya HTML betikleri) de dahil edecek şekilde diğer kod enjeksiyonu türlerini de içerecek şekilde genişletilmiştir. XSS açıklıkları, 1990'lardan beri raporlanmakta ve istismar edilmektedir. Geçmişte etkilenmiş önemli siteler arasında Twitter,Facebook,MySpace, YouTubeve Orkut gibi sosyal medya siteleri bulunmaktadır.Siteler arası betik çalıştırma açıklıkları bu yüzden ara bellek taşması açıklığını geçerek en yaygın şekilde raporlanan güvenlik açıklığı olmuştur.2007 yılında bazı araştırmacılar, web sitelerinin %68'inin XSS saldırılarına karşı açık olduğunu belirtmiştir. Çeşitleri Siteler arası betik çalıştırma açıklıklarının standartlaştırılmış tek bir sınıflandırması bulunmamaktadır, ancak uzmanların çoğunluğu en azından 2 ayrı sınıfa ayırmaktadır: kalıcı olmayan ve kalıcı. Bazı kaynaklar, geleneksel (sunucu tarafındaki kod kusurlarından kaynaklanan) ve DOM-tabanlı (istemci tarafındaki kod içerisinde) olarak iki ayrı gruba daha ayırmaktadır. Yansıtılmış (kalıcı olmayan) Kalıcı olmayan (veya yansıtılmış) siteler arası betik çalıştırma açıklığı en temel web açıklığıdır. Bu açıklık, web istemcisi tarafından, en yaygın olarak HTTP sorgu parametreleri üzerinden (örn. HTML formlarından), sağlanan veri, kullanıcı için bir sonuç sayfası göstermek ve oluşturmak için sunucu taraflı betikler tarafından düzgün bir şekilde sterilize edilmeden hızlıca kullanıldığında ortaya çıkmaktadır. HTML dokümanları kontrol ifadelerini, formatlamayı ve gerçek içeriği içeren düz ve seri bir yapıya sahip olduğu için, düzgün bir HTML kodlaması olmadan sayfada yer alan kullanıcının sağladığı geçerlenmemiş veri, markup enjeksiyonuna yol açabilmektedir.Potansiyel bir vektör örneği web sitesi arama motorudur: eğer birisi bir metin için arama yaparsa, arama metni, neyin aratıldığını belirtmek amacıyla hiçbir değişikliğe uğramadan sayfada tekrar gösterilmektedir. Eğer cevap paketi HTML kontrol karakterlerini filtrelemiyorsa veya reddetmiyorsa, bir siteler arası betik çalıştırma zafiyeti de beraberinde gelecektir. Yansıtılmış bir saldırı, genelde e-posta veya bir web sayfası üzerinden yapılmaktadır. Yem, XSS vektörü içeren ve güvenilir bir siteye işaret eden, masum görünümlü bir URL'dir.Eğer güvenilir site XSS vektörüne karşı korumasızsa, linke tıklanması kurban tarayıcısının enjekte edilen betiği çalıştırmasına yol açmaktadır. Kalıcı Kalıcı (veya depolanmış) XSS açıklığı, siteler arası betik çalıştırma açıklığının en yıkıcı çeşididir. Saldırgan tarafından sağlanan veri sunucuda saklandığında ve sonrasında diğer kullanıcıların düzenli gezinimi sırasında "normal" sayfa üzerinde kalıcı olarak gösterildiğinde ortaya çıkmaktadır. Tipik bir örneği, kullanıcıların diğer kullanıcıların okuması için HTML formatında mesajlar göndermesine izin veren çevrimiçi mesajlaşmadır. Örnek olarak, üyelerin ilgilerini çekebilecek diğer üyeleri bulmak için diğer üyelerin profillerini tarayabildikleri bir randevu sitesini düşünelim. Gizlilik nedeniyle, site herkesin gerçek adını ve e-posta adreslerini gizli tutmaktadır.Bu veriler sunucuda gizli olarak tutulmaktadır. Bir üyenin gerçek adının ve e-posta adresinin tarayıcı üzerinde gözüktüğü tek zaman üye giriş yaptığında olmaktadır ve başka hiçbir kimsenin bilgilerini görememektedirler. Bir saldırganın, Mallory'nin, siteye katıldığını ve sitede gördüğü insanların gerçek isimlerini öğrenmek istediğini varsayalım.Bunu yapabilmek için, diğer kullanıcıların tarayıcısında kendi profiline baktıklarında çalışacak bir betik yazar.Betik daha sonra bu bilgileri toplayan Mallory'e ait bir sunucuya mesaj gönderir. Bunu yapabilmek için, "Sizin için ideal ilk randevuyu tanımlayınız" sorusuna Mallory (normal gözükecek) kısa bir cevap verir, ancak cevabının sonuna isimleri ve e-posta adreslerini çalmak için yazdığı betiği ekler. Eğer betik Mallory böylece Alice'in oturumunu çalabilir ve Alice'miş gibi davranabilir. Bob'un web sitesi yazılımı, script etiketlerini kaldırmalı veya çalışamaz hale getirmek için bir şey yapmalıydı, ancak güvenlik açıklığı zaten yapmamış olmamasından kaynaklanmaktadır. Önleyici tedbirler Metin girdilerinin bağlamsal çıktı kodlaması/çevirimi Bağlamsal çıktı kodlama/çevirimi, XSS saldırılarını durdurmak icing kullanılan birincil savunma mekanizmasıdır.Güvenilmeyen metinlerin HTML dokümanı içerisinde nereye konulacağına bağlı olarak kullanılabilecek HTML varlık çevirimi, JavaScript çevirimi, CSS çevirimi ve URL kodlaması gibi pek çok farklı çevirim yöntemi bulunmaktadır. Zengin veri formatını kullanması gerekmeyen pek çok web uygulaması, basit bir şekilde XSS saldırıları riskini büyük ölçüde ortadan kaldırmak için kodlamayı/çevirimi kullanabilir. Yaygın olarak tavsiye edilse de, saddle beş XML özel karakteri üzerinde HTML varlık kodlamasının kullanılması pek çok XSS saldırısı vektörünün engellemesinde yetersiz kalmaktadır.Kodlama genelde zor olduğu için, güvenlik için geliştirilmiş kodlama kütüphanelerinin kullanımı genellikle daha kolay bir çözüm olmaktadır. Güvenli bir şekilde HTML girdisinin geçerlenmesi Web uygulamalarının pen çoğu (örn. formula ve webmail) kullanıcıların belirli bir HTML etiketi setini kullanmalarına izin vermektedir.Kullanıcıdan HTML girdisi (örn. ) alınırken, çıktı kodlaması (örn. büyük), kullanıcı girdisi tarayıcı tarafından HTML girdisi olarak yorumlanması gerektiğinden (" büyük" şeklinde göstermek yerine "çok büyük" şeklinde göstermesi) yeterli olmamaktadır. will not suffice since the user input needs to be rendered as HTML by the browser (so it shows as "very large", instead of "<b>very</b> large"). Kullanıcıdan HTML girdisi alınırken XSS saldırılarının durdurulabilmesi çok daha karmaşık bir durumdur. Güvenilmeyen HTML girdisi, herhangi bir XSS kodu içermediğinden emin olunabilmesi için bir HTML sterilizasyon motorundan geçmelidir. Pek çok geçerleme yöntemi, aşağıdaki gibi bazı "riskli" html etiketlerinin kaldırılmasına (kara liste uygulama) dayanmaktadır: Bu yaklaşım ile ilgili pek çok sorun bulunmaktadır. Örneğin, başarılı bir şekilde kullanıldığında XSS saldırısı ile sonuçlanabilecek bazı görünürde zararsız etiketlerin bırakılması. (aşağıdaki örneğe bakınız) Diğer bir yaygın yöntem ise " ve ' işaretlerinin kullanıcı girdisinden çıkarılmasıdır. Ancak, bu da veri Gizleme (Obfuscation) ile gizlenebileceği için atlatılabilmektedir. Çerez güvenliği İçerik filtreleme dışında, siteler arası betik çalıştırma önlemleri için başka kesin çözüm getirmeyen yöntemler de yaygın olarak kullanılmaktadır. Bir örneği, çerez tabanlı kullanıcı kimlik doğrulaması yapılırken ilave güvenlik kontrollerinin uygulanmasıdır. Çoğu web uygulaması bireysel HTTP istekleri arasında kimlik doğrulaması yapabilmek için oturum çerezlerini kullanmaktadır ve istemci taraflı betikler genelde bu çerezlere erişebildiği için basit XSS istismarları bu çerezleri çalabilmektedir. Bu tehdidi ortadan kaldırmak için (genel olarak XSS problemini çözmese de), çoğu web uygulaması başta giriş yapan kullanıcının IP adresi ile oturum çerezlerini ilişkilendirmekte ve sonrasında o çerezi sadece belirlediği IP adresinin kullanmasına izin vermektedir. Çoğu senaryoda (eğer saldırgan sadece çerezin peşinde ise) bu başarılı olmaktadır, ancak saldırganın kurbanla aynı NATlanmış IP adresini veya vekil sunucuyu kullandığı durumlarda veya kurbanın mobil IP adresini değiştirdiği durumlarda geçerli olmamaktadır. Internet Explorer (versiyon 6 ve sonrası), Firefox (versiyon 2.0.0.5 ve sonrası), Safari (web tarayıcı)(versiyon 4 ve sonrası), Opera (versiyon 9.5 ve sonrası) veGoogle Chrome'da bulunan bir diğer önleyici mekanizma da, istemci taraflı betiklere karşı bir çerezi erişilemez kılan HttpOnly bayrağıdır.Faydalı olsa da, bu özellik ne çerezin çalınmasını ne de tarayıcı içerisindeki saldırıları engellemektedir. Betikleri devre dışı bırakmak Web 2.0 ve Ajax geliştiricileri JavaScript kullanımını gerekli kılsa da, bazı web uygulamaları herhangi bir istemci taraflı betiğin çalışmasına ihtiyaç duymadan çalışacak şekilde yazılmıştır. Bu durum kullanıcıların, eğer torch ederlerse, uygulamayı kullanmadan önce tarayıcılarında betik çalıştırılmasını devre dışı bırakmalarına izin vermektedir. Bu şekilde, kötücül olması olası istemci taraflı betikler bile sterilize edilmeden sayfa içerisine eklenebilir ve kullanıcılar XSS açıklıklarına karşı korumasız kalmaz. Bazı tarayıcılar veya tarayıcı eklentileri, alan adı seviyesinde istemci taraflı betiklerin çalışmasını engelleyecek şekilde yapılandırılabilir.Bu yaklaşım tamamen geçerli bir yaklaşım değildir, çünkü betik çalıştırma varsayılan olarak aktifse, kullanıcı sitenin kötücül olduğunu anladıktan yani iş işten geçtikten sonra engellenebilmektedir. Varsayılan olarak tüm betik çalıştırmayı engelleyen ve sonrasında kullanıcının alan adları için aktif hale getirilebilmesine izin veren yaklaşım çok daha etkilidir.Bu Internet Explorer (versiyon 4 ve üstü) üzerinde "Security Zones" ayarları ile ve Opera(versiyon 9 ve üstü) üzerinde "Site Specific Preferences" ayarları ileyapılabilmektedir.Firefox ve Gecko tabanlı tarayıcılar için bir çözüm de açık kaynak kodlu NoScript eklentisidir. Bu eklenti alan adı bazında betikleri aktif edebilmesine ek olarak betikler aktif edildiğinde de bir takım XSS koruma mekanizması uygulamaktadır. Varsayılan olarak tüm sitelerde betikleri devre dışı bırakmakla ilgili en önemli sorun, işlevsellik ve cevap vermedeki önemli azalıştır (istemci taraflı betik çalıştırma, uzak bir sunucuya bağlantı kurma gereksinimi duymadığı için, sunucu taraflı betik çalıştırmaya göre hızlıdır). Betiklerin devre dışı bırakılmasıyla ilgili bir diğer sorun da, çoğu kullanıcının bunu anlamaması ve tarayıcılarını uygun bir şekilde nasıl güvenli yapacaklarını bilmemesidir.Bir diğer dezavantajı da, çoğu sitenin istemci taraflı betikler olmadan çalışmaması ve kullanıcıları bu özelliği devre dışı bırakmaya zorlaması ve sistemlerini açıklıklara açmasıdır. Firefox NoScript eklentisi, kullanıcının verilen bir sayfa üzerinde belirli betiklere izin vermesini aynı sayfadaki diğerlerini engellemesine izin vermektedir.Örneğin, example.com sitesine ait betiklere izin verilebilirken, aynı sayfa üzerinde çalışmayı deneyen reklamajansi.com sitesine ait betikler devre dışı bırakılabilir. Gelişmekte olan savunma teknolojileri Gelişmekte olan üç sınıf XSS savunması bulunmaktadır. Bunlar İçerik Güvenlik Politikası'nı,JavaScript mum havuzu araçlarını ve otomatik çevirim taslaklarını içermektedir. Bu mekanizmalar hala gelişmektedir, ancak XSS saldırılarının meydana geliş sıklığını büyük oranda düşürmeyi vadetmektedir. Tarama hizmeti Bazı şirketler, saldırının başarılı olup olmadığını test etmek için kendi sunucularından müşterininkine bir saldırı simüle ederek, periyodik bir tarama hizmeti sunmaktadır.Eğer saldırı başarılı olursa, müşteriye nasıl yapıldığına dair detaylı bilgi içeren bir rapor verilmekte ve müşteri başka birisi aynı saldırıyı yapmadan önce açıklığı kapatma şansı elde etmektedir. Güncel bir testi geçen site üzerinde güvenilirlik işareti gösterilebilir. Tarama aracı tüm olası açıklıkları bulamayabilir,ve bu yüzden güvenilirlik işaretine sahip siteler hala yeni saldırı türlerine karşı açık olabilir. Ancak tarama bazı problemleri tespit edebilir. Müşteri bu sorunları çözdükten sonra, site bu hizmet alınmadan önceki haline göre daha güvenli olmaktadır.XSS açıklıklarına karşı tam bir koruma gerektiren siteler için, kaynak kod analizi gibi değerlendirme yöntemleri gerekmektedir. İlave olarak, eğer JavaScript sayfa üzerinde çalışıyorsa, güvenilirlik işareti, işaretin statik bir kopyası ile taklit edilebilir. (bu yüzden, teoride, bu tür bir hizmet XSS risklerini ortadan kaldırmak için yeterli olmayacaktır). İlgili güvenlik açıklıkları Bir Global Siteler Arası Betik Çalıştırma (UXSS Vera Global XSS) saldırısında, tarayıcı içerisindeki açıklıklar istismar edilmektedir (XSS saldırılarında olduğu gibi diğer web sitelerindeki açıklıklar yerine). Bu tür saldırılar yaygın olarak Anonymous tarafından bir ağın kontrolünü ele geçirmek için DDoS'a ile beraber yapılmaktadır. Farklı açıklık kategorileri veya saldırı teknikleri XSS ile ilgilidir: cross-zone scripting saldırısı bazı tarayıcılardaki "zone" mantığını istismar etmekte ve genelde daha yüksek yetkilerle kod çalıştırmaktadır.HTTP Başlık Enjeksiyonu, HTTP protokolü seviyesindeki kodlama problemlerinden ötürü (HTTP yanıt bölme saldırısı gibi saldırıları mümkün kılmasına ek olarak) siteler arası betik çalıştırma şartlarının oluşturulmasında kullanılabilmektedir. Siteler arası istek sahteciliği (CSRF/XSRF) neredeyse XSS'in zıddı sayılabilir. Çünkü, kullanıcının siteye olan güvenini istismar etmek yerine, saldırgan (ve onun kötücül sayfası), kimliği doğrulanmış kullanıcıların bilinçli eylemlerini temsil ettiğine inandığı istekleri yollayarak sitenin istemci yazılımına olan güvenini istismar etmektedir. XSS açıklıkları (aynı Alan adı üzerinde çalışan diğer uygulamalardakiler dahil) saldırganların CSRF tedbirlerini atlatabilmesine izin vermektedir. Gizli yönlendirme, XSS Vera Açık Yönlendirme saldırılarına karşı korumasız olan üçüncü parti istemcilerden faydalanmaktadır. Normal oltalama girişimleri kolayca tespit edilebilir, çünkü kötücül sayfanın URL bilgisi genelde gerçek site isminden birkaç harf uzakta olacaktır. Gizli yönlendirmenin farkı, saldırganın kötücül bir giriş diyalog kutusu ile site içeriğini bozarak gerçek siteyi kullanmasıdır. Son olarak, SQL Enjeksiyonu bir uygulamanın veri tabanı katmanındaki bir açıklığı istismar etmektedir. Kullanıcı girdisi yanlış bir şekilde filtrelendiğinde, herhangi bir SQL ifadesi uygulama tarafından çalıştırılabilmektedir. Ayrıca bakınız Web uygulama güvenliği İnternetgüvenliği XML harici varlık saldırısı Tarayıcı güvenliği Aynı kök politikası Metasploit Projesi, XSS için de testler içeren bir açık kaynak kodlu sızma testi aracı w3af, açık kaynak kodlu bir web uygulama güvenliği tarayıcısı Betiklerin çalıştırılmasını engelleyen ücretsiz masaüstü tarayıcı eklentileri: Mozilla Firefoxiçin: NoScript,Policeman, ya da uBlock Origin'in gelişmiş özellikleri, genel bir içerik engelleme eklentisi Google Chromeiçin: ScriptSafe , μMatrix (uBlock yaratıcısından bir eklenti)veya uBlock'un gelişmiş özellikleri Opera (yeni Chromium tabanlı sürümleri) için: μMatrix veya uBlock'un gelişmiş özellikleri Safariiçin: JavaScript Blocker veya uBlock'un gelişmiş özellikleri Internet Exploreriçin: Trust Setter, Güvenilen ve Yasaklanan Siteler belirlemek için bir arayüz (sadece 32-bit destekler, bu yüzden 64-bit Windows üzerinde gelişmiş Protected Mode ile çalışmamaktadır) XSSer : XSS açıklıklarını tespit etmek, istismar etmek ve raporlamak için otomatize bir çerçeve yazılım Dokümanlar arası mesajlaşma Samy (bilgisayar solucanı) Self-XSS Kaynakça Daha fazla bilgi Dış bağlantılar OWASP: XSS, XSS Testleri, XSS için Kod Analizi XSSed: Siteler Arası Betik Çalıştırma Saldırılarına Açık Web Siteleri Veri Tabanı Siteler Arası Betik Çalıştırma Saldırısının Flash Animasyonu Kategori:Exploitler Kategori:Hacking
 

Tema özelleştirme sistemi

Bu menüden forum temasının bazı alanlarını kendinize özel olarak düzenleye bilirsiniz.

Zevkine göre renk kombinasyonunu belirle

Tam ekran yada dar ekran

Temanızın gövde büyüklüğünü sevkiniz, ihtiyacınıza göre dar yada geniş olarak kulana bilirsiniz.

Izgara yada normal mod

Temanızda forum listeleme yapısını ızgara yapısında yada normal yapıda listemek için kullanabilirsiniz.

Forum arkaplan resimleri

Forum arkaplanlarına eklenmiş olan resimlerinin kontrolü senin elinde, resimleri aç/kapat

Sidebar blogunu kapat/aç

Forumun kalabalığında kurtulmak için sidebar (kenar çubuğunu) açıp/kapatarak gereksiz kalabalıklardan kurtula bilirsiniz.

Yapışkan sidebar kapat/aç

Yapışkan sidebar ile sidebar alanını daha hızlı ve verimli kullanabilirsiniz.

Radius aç/kapat

Blok köşelerinde bulunan kıvrımları kapat/aç bu şekilde tarzını yansıt.

Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Geri