En Yaygın 10 Web Güvenliği Açıkları

OWASP veya Açık Web Güvenlik Projesi, yazılım ve web uygulamalarının güvenliğini iyileştirmeye odaklanan kar amacı gütmeyen bir hayır kurumudur.

Kuruluş, çeşitli güvenlik kuruluşlarından gelen verilere dayanarak en önemli web güvenliği açıklarının bir listesini yayınlıyor.

Web güvenliği açıkları, kullanılabilirlik, tespit edilebilirlik ve yazılım üzerindeki etkisine bağlı olarak önceliklendirilir.

  • Kullanılabilirlik –Güvenlik açığından yararlanmak için ne gerekiyor? Saldırının yalnızca web tarayıcısına ihtiyaç duyduğu durumlarda en yüksek yararlanılabilirlik ve gelişmiş programlama ve araçlar en düşük düzeydedir.
  • Tespit edilebilirlik – Tehdidi tespit etmek ne kadar kolay? En yüksek olanı URL'de, Formda veya Hata mesajında ​​görüntülenen bilgidir ve en düşük olanı kaynak kodudur.
  • Darbe veya Hasar –Güvenlik açığı açığa çıkarsa veya saldırıya uğrarsa ne kadar zarar verilecek? En yüksek değer tam sistem çökmesi ve en düşük değer ise hiçbir şey olmamasıdır.

OWASP Top 10'un temel amacı, geliştiricileri, tasarımcıları, yöneticileri, mimarları ve kuruluşları en önemli güvenlik açıkları konusunda bilgilendirmektir.

OWASP Top 10'a göre en önemli 10 güvenlik açığı şunlardır:

SQL Injection

SQL Injection

Tanım

Enjeksiyon, bir saldırganın arka ucu değiştirmesine olanak tanıyan bir güvenlik açığıdır SQL Kullanıcı tarafından sağlanan verileri değiştirerek ifadeler.

Enjeksiyon, kullanıcı girişinin bir komut veya sorgunun parçası olarak bir tercümana gönderilmesi ve tercümanı istenmeyen komutları yürütmesi için kandırması ve yetkisiz verilere erişim sağlaması durumunda meydana gelir.

Web uygulaması tarafından yürütüldüğünde arka uç veritabanını da açığa çıkarabilen SQL komutu.

Ima

  • Bir saldırgan, savunmasız alanlara kötü amaçlı içerik enjekte edebilir.
  • Kullanıcı Adları, Şifreler vb. gibi hassas veriler veritabanından okunabilir.
  • Veritabanı verileri değiştirilebilir (Ekle/Güncelle/Sil).
  • Yönetim OperaVeritabanında işlemler yürütülebilir

Savunmasız Nesneler

  • Giriş Alanları
  • Veritabanıyla etkileşim kuran URL'ler.

Örnekler:

Geçerli kimlik bilgilerine sahip olmadan bir uygulamaya giriş yapmak.

Geçerli kullanıcıAdı mevcut ve şifre mevcut değil.

Test URL'si: http://demo.testfire.net/default.aspx

Kullanıcı adı: sjones

Şifre: 1=1′ veya pass123

SQL sorgusu aşağıdaki gibi oluşturuldu ve Yorumlayıcıya gönderildi

SEÇİN * FROM Kullanıcılar NEREDE Kullanıcı_Adı = sjones VE Şifre = 1=1′ veya pass123;

Öneriler

  1. Giriş alanlarını beyaz listeleme
  2. Saldırganın işine yarayacak ayrıntılı hata mesajlarını görüntülemekten kaçının.

Çapraz Site Komut Dosyası

Tanım

Siteler Arası Komut Dosyası Çalıştırma, kısaca XSS olarak da bilinir.

XSS güvenlik açıkları, sunucu tarafında değil istemci tarafında (yani kullanıcı tarayıcısında) yürütülen bir sayfaya gömülü komut dosyalarını hedefler. Bu kusurlar, uygulamanın güvenilmeyen verileri alması ve bunları uygun doğrulama olmadan web tarayıcısına göndermesi durumunda ortaya çıkabilir.

Saldırganlar, bu durumda kurban tarayıcılarda kullanıcılar üzerinde kötü amaçlı komut dosyaları yürütmek için XSS'yi kullanabilir. Tarayıcı betiğin güvenilir olup olmadığını bilemeyeceği için betik yürütülür ve saldırgan oturum çerezlerini ele geçirebilir, web sitelerini tahrif edebilir veya kullanıcıyı istenmeyen ve kötü amaçlı web sitelerine yönlendirebilir.

XSS, saldırganın komut dosyalarını kurbanın tarayıcısında çalıştırmasına olanak tanıyan bir saldırıdır.

Ima:

  • Saldırgan, bu güvenlik açığından yararlanarak uygulamaya komut dosyaları ekleyebilir, oturum çerezlerini çalabilir, web sitelerini tahrif edebilir ve kurbanın makinelerinde kötü amaçlı yazılım çalıştırabilir.

Savunmasız Nesneler

  • Giriş Alanları
  • URL'ler

Örnekler

1. http://www.vulnerablesite.com/home?”<script>alert(“xss”)</script>

Yukarıdaki script bir tarayıcıda çalıştırıldığında, sitenin XSS'e karşı savunmasız olup olmadığı konusunda bir mesaj kutusu gösterilecektir.

Saldırganın oturum çerezini görüntülemek veya saklamak istemesi durumunda daha ciddi bir saldırı yapılabilir.

2. http://demo.testfire.net/search.aspx?txtSearch <iframe> http://google.com genişlik = 500 yükseklik 500>

Yukarıdaki komut dosyası çalıştırıldığında tarayıcı, onu işaret eden görünmez bir çerçeve yükleyecektir. http://google.com.

Tarayıcıda kötü amaçlı bir komut dosyası çalıştırılarak saldırı ciddi hale getirilebilir.

Öneriler

  1. Beyaz Liste giriş alanları
  2. Giriş Çıkış kodlaması

Bozuk Kimlik Doğrulama ve Oturum Yönetimi

Tanım

Web siteleri genellikle her geçerli oturum için bir oturum çerezi ve oturum kimliği oluşturur ve bu çerezler kullanıcı adı, şifre vb. hassas veriler içerir. Oturum çıkış yapılarak veya tarayıcı aniden kapatılarak sonlandırıldığında, bu çerezlerin her oturum için geçersiz kılınması gerekir. yeni bir çerez olmalı.

Çerezlerin geçersiz kılınmaması durumunda hassas veriler sistemde mevcut olacaktır. Örneğin, halka açık bir bilgisayarı (Cyber ​​Cafe) kullanan bir kullanıcı, savunmasız sitenin çerezlerini sisteme oturur ve bir saldırganın eline geçer. Bir saldırgan bir süre sonra aynı ortak bilgisayarı kullanır ve hassas veriler tehlikeye girer.

Aynı şekilde, halka açık bir bilgisayarı kullanan bir kullanıcı, oturumu kapatmak yerine tarayıcıyı aniden kapatır. Saldırgan da aynı sistemi kullanıyor, aynı zafiyetli siteye göz attığında mağdurun önceki oturumu açılacaktır. Saldırgan profil bilgilerini, kredi kartı bilgilerini vb. çalmak gibi her şeyi yapabilir.

Kimlik doğrulamanın ve oturum yönetiminin gücünü bulmak için bir kontrol yapılmalıdır. Anahtarlar, oturum belirteçleri, çerezler, şifrelerden ödün vermeden düzgün bir şekilde uygulanmalıdır.

Savunmasız Nesneler

  • URL'de açığa çıkan oturum kimlikleri, oturum sabitleme saldırısına yol açabilir.
  • Oturum kimlikleri, oturumu kapatmadan ve oturum açmadan önce ve sonra aynı.
  • Oturum Zaman Aşımları doğru şekilde uygulanmıyor.
  • Uygulama her yeni oturuma aynı oturum kimliğini atamaktadır.
  • Uygulamanın kimliği doğrulanmış bölümleri SSL kullanılarak korunur ve parolalar karma veya şifrelenmiş biçimde saklanır.
  • Oturum, düşük ayrıcalıklı bir kullanıcı tarafından yeniden kullanılabilir.

Ima

  • Saldırgan, bu güvenlik açığından yararlanarak bir oturumu ele geçirebilir, sisteme yetkisiz erişim sağlayabilir ve bu da yetkisiz bilgilerin ifşa edilmesine ve değiştirilmesine olanak tanıyabilir.
  • Oturumlar, çalınan çerezler kullanılarak veya XSS kullanılarak yükseltilebilir.

Örnekler

  1. Havayolu rezervasyon uygulaması, oturum kimliklerini URL'ye yerleştirerek URL'nin yeniden yazılmasını destekler:http://Examples.com/sale/saleitems;jsessionid=2P0OC2oJM0DPXSNQPLME34SERTBG/dest=Maldives (Maldivler'e bilet satışı)Sitenin kimliği doğrulanmış bir kullanıcısı, arkadaşlarına satıştan haberdar etmek ister ve bir e-posta gönderir. Arkadaşlar oturum kimliğini alır ve yetkisiz değişiklikler yapmak veya kayıtlı kredi kartı bilgilerini kötüye kullanmak için kullanılabilir.
  2. Bir uygulama, bir saldırganın oturum kimliğine erişebileceği ve oturumu ele geçirmek için kullanılabileceği XSS'ye karşı savunmasızdır.
  3. Uygulama zaman aşımı düzgün ayarlanmamış. Kullanıcı genel bir bilgisayar kullanıyor ve oturumu kapatıp gitmek yerine tarayıcıyı kapatıyor. Saldırgan bir süre sonra aynı tarayıcıyı kullanıyor ve oturum doğrulanıyor.

Öneriler

  1. Tüm kimlik doğrulama ve oturum yönetimi gereksinimleri OWASP Uygulama Güvenliği Doğrulama Standardına uygun olarak tanımlanmalıdır.
  2. URL'lerde veya Günlüklerde hiçbir kimlik bilgisini asla açığa çıkarmayın.
  3. Oturum kimliklerini çalmak için kullanılabilecek XSS kusurlarından kaçınmak için de güçlü çaba gösterilmelidir.

Güvenli Olmayan Doğrudan Nesne Referansları

Tanım

Bir geliştirici, dosya, dizin veya veritabanı anahtarı gibi dahili bir uygulama nesnesine URL'de veya FORM parametresinde olduğu gibi bir referans sunduğunda ortaya çıkar. Saldırgan bu bilgileri diğer nesnelere erişmek için kullanabilir ve yetkisiz verilere erişmek için gelecekte bir saldırı oluşturabilir.

Ima

  • Bir saldırgan, bu güvenlik açığını kullanarak yetkisiz dahili nesnelere erişim sağlayabilir, verileri değiştirebilir veya uygulamanın güvenliğini tehlikeye atabilir.

Savunmasız Nesneler

  • URL'de.

Örnekler:

Aşağıdaki URL'deki "userid"yi değiştirmek, bir saldırganın diğer kullanıcıların bilgilerini görüntülemesine neden olabilir.

http://www.vulnerablesite.com/userid=123 Şuna değiştirildi: http://www.vulnerablesite.com/userid=124

Saldırgan, kullanıcı kimliği değerini değiştirerek başkalarının bilgilerini görüntüleyebilir.

Öneriler:

  1. Erişim kontrolü kontrollerini uygulayın.
  2. URL'lerde nesne referanslarını göstermekten kaçının.
  3. Tüm referans nesnelerine yönelik yetkilendirmeyi doğrulayın.

Siteler Arası Talep Sahteciliği

Tanım

Siteler Arası İstek Sahteciliği, siteler arası gelen sahte bir istektir.

CSRF saldırısı, kötü amaçlı bir web sitesi, e-posta veya programın, bir kullanıcının tarayıcısının, kullanıcının şu anda kimliği doğrulanmış olduğu güvenilir bir sitede istenmeyen bir eylem gerçekleştirmesine neden olmasıyla oluşan bir saldırıdır.

CSRF saldırısı, oturum açmış bir kurbanın tarayıcısını, kurbanın oturum çerezi ve otomatik olarak eklenen diğer kimlik doğrulama bilgileri de dahil olmak üzere, savunmasız bir web uygulamasına sahte bir HTTP isteği göndermeye zorlar.

Kullanıcı orijinal web sitesine giriş yaptığında URL'yi tıkladığında saldırgan tarafından mağdura bir bağlantı gönderilecek, veriler web sitesinden çalınacaktır.

Ima

  • Bir saldırganın bu güvenlik açığını kullanması, kullanıcı profili bilgilerini değiştirebilir, durumu değiştirebilir, yönetici adına yeni bir kullanıcı oluşturabilir vb.

Savunmasız Nesneler

  • Kullanıcı Profili sayfası
  • Kullanıcı hesabı formları
  • Ticari işlem sayfası

Örnekler

Mağdur, geçerli kimlik bilgilerini kullanarak bir banka web sitesine giriş yapar. Saldırgandan "Lütfen buraya tıklayarak nedene 1$ bağışlayın" yazan bir e-posta alır.

Kurban buna tıkladığında, belirli bir hesaba 1$ bağışlamak için geçerli bir istek oluşturulacak.

http://www.vulnerablebank.com/transfer.do?account=cause&amount=1

Saldırgan bu isteği yakalar ve aşağıdaki isteği oluşturur ve içine "Davayı Destekliyorum" yazan bir düğme yerleştirir.

http://www.vulnerablebank.com/transfer.do?account=Attacker&amount=1000

Oturumun kimliği doğrulandığından ve istek bankanın web sitesinden geldiğinden, sunucu saldırgana 1000 dolar aktaracaktır.

Tavsiye

  1. Hassas eylemler gerçekleştirirken kullanıcının varlığını zorunlu kılın.
  2. CA gibi mekanizmaları uygulayınPTCHA, Yeniden Kimlik Doğrulama ve Benzersiz İstek Belirteçleri.

Yanlış Güvenlik Yapılandırması

Tanım

Güvenlik Yapılandırması uygulama, çerçeveler, uygulama sunucusu, web sunucusu, veritabanı sunucusu ve platform için tanımlanmalı ve dağıtılmalıdır. Bunlar doğru şekilde yapılandırılırsa, bir saldırganın hassas verilere veya işlevlere yetkisiz erişimi olabilir.

Bazen bu tür kusurlar sistemin tamamen tehlikeye girmesine neden olur. Yazılımı güncel tutmak aynı zamanda iyi bir güvenliktir.

Ima

  • Saldırgan, bu güvenlik açığından yararlanarak, birkaç saldırı daha gerçekleştirmek için temel teknoloji ve uygulama sunucusu sürüm bilgilerini, veritabanı bilgilerini sıralayabilir ve uygulama hakkında bilgi edinebilir.

Savunmasız nesneler

  • URL
  • Form Alanları
  • Giriş alanları

Örnekler

  1. Uygulama sunucusu yönetici konsolu otomatik olarak yüklenir ve kaldırılmaz. Varsayılan hesaplar değiştirilmez. Saldırgan varsayılan şifrelerle giriş yapabilir ve yetkisiz erişim elde edebilir.
  2. Dizin Listeleme sunucunuzda devre dışı değil. Saldırgan herhangi bir dosyayı bulmak için dizinleri keşfeder ve listeleyebilir.

Öneriler

  1. Bileşenler arasında iyi bir ayrım ve güvenlik sağlayan güçlü bir uygulama mimarisi.
  2. Varsayılan kullanıcı adlarını ve şifreleri değiştirin.
  3. Dizin listelerini devre dışı bırakın ve erişim kontrolü kontrollerini uygulayın.

Güvenli Olmayan Kriptografik Depolama

Tanım

Güvenli Olmayan Kriptografik depolama, hassas veriler güvenli bir şekilde saklanmadığında ortaya çıkan yaygın bir güvenlik açığıdır.

Bir web sitesinde yer alan kullanıcı kimlik bilgileri, profil bilgileri, sağlık bilgileri, kredi kartı bilgileri vb. hassas veri bilgileri kapsamına girmektedir.

Bu veriler uygulama veritabanında saklanacaktır. Bu veriler şifreleme veya karma* kullanılmadan uygunsuz bir şekilde saklandığında saldırganlara karşı savunmasız olacaktır.

(*Hashing, dize karakterlerinin sabit uzunluktaki daha kısa dizelere veya bir anahtara dönüştürülmesidir. Dizinin şifresini çözmek için, anahtarı oluşturmak için kullanılan algoritmanın mevcut olması gerekir)

Ima

  • Bir saldırgan, bu güvenlik açığını kullanarak kimlik hırsızlığı, kredi kartı dolandırıcılığı veya diğer suçları işlemek amacıyla bu tür zayıf korunan verileri çalabilir veya değiştirebilir.

Savunmasız nesneler

  • Uygulama veritabanı.

Örnekler

Bankacılık uygulamalarından birinde, şifre veritabanı herkesin şifrelerini saklamak için tuzsuz karmalar * kullanıyor. SQL enjeksiyon hatası, saldırganın parola dosyasını almasına olanak tanır. Tüm tuzsuz karmalar kısa sürede kaba kuvvetle oluşturulabilirken, tuzlu şifreler binlerce yıl sürecektir.

(*Tuzsuz Karma – Tuz, orijinal verilere eklenen rastgele bir veridir. Tuz, karma işleminden önce şifreye eklenir)

Öneriler

  1. Uygun güçlü standart algoritmalar sağlayın. Kendi şifreleme algoritmalarınızı oluşturmayın. Yalnızca AES, RSA genel anahtar şifrelemesi ve SHA-256 vb. gibi onaylanmış genel algoritmaları kullanın.
  2. Tesis dışı yedeklemelerin şifrelendiğinden, ancak anahtarların ayrı olarak yönetildiğinden ve yedeklendiğinden emin olun.

URL Erişiminin kısıtlanamaması

Tanım

Web uygulamaları, korumalı bağlantıları ve düğmeleri oluşturmadan önce URL erişim haklarını kontrol eder. Uygulamaların bu sayfalara her erişildiğinde benzer erişim kontrolü kontrolleri yapması gerekir.

Çoğu uygulamada ayrıcalıklı sayfalar, konumlar ve kaynaklar ayrıcalıklı kullanıcılara sunulmamaktadır.

Akıllı bir tahminle, bir saldırgan ayrıcalık sayfalarına erişebilir. Saldırgan hassas sayfalara erişebilir, işlevleri çalıştırabilir ve gizli bilgileri görüntüleyebilir.

Ima

  • Bu güvenlik açığından yararlanan saldırgan, uygulamaya giriş yapmadan yetkisiz URL'lere erişim sağlayabilir ve bu güvenlik açığından yararlanabilir. Saldırgan hassas sayfalara erişebilir, işlevleri çalıştırabilir ve gizli bilgileri görüntüleyebilir.

Savunmasız nesneler:

  • URL'ler

Örnekler

  1. Saldırgan, URL'nin rolü "/user/getaccounts" olarak gösterdiğini fark eder. “/admin/getaccounts” olarak değiştiriyor.
  2. Saldırgan URL'ye rol ekleyebilir.

http://www.vulnerablsite.com olarak değiştirilebilir http://www.vulnerablesite.com/admin

Öneriler

  1. Güçlü erişim kontrolü kontrolleri uygulayın.
  2. Kimlik doğrulama ve yetkilendirme politikaları rol bazlı olmalıdır.
  3. İstenmeyen URL'lere erişimi kısıtlayın.

Yetersiz Aktarım Katmanı Koruması

Tanım

Kullanıcı (istemci) ve sunucu (uygulama) arasındaki bilgi alışverişini ele alır. Uygulamalar sıklıkla kimlik doğrulama ayrıntıları, kredi kartı bilgileri ve oturum belirteçleri gibi hassas bilgileri bir ağ üzerinden iletir.

Zayıf algoritmalar kullanmak veya süresi dolmuş veya geçersiz sertifikalar kullanmak ya da SSL kullanmamak, iletişimin güvenilmeyen kullanıcıların eline geçmesine izin verebilir, bu da bir web uygulamasını tehlikeye atabilir ve/veya hassas bilgileri çalabilir.

Ima

  • Saldırgan, bu web güvenlik açığından yararlanarak meşru kullanıcının kimlik bilgilerini dinleyebilir ve uygulamaya erişim sağlayabilir.
  • Kredi kartı bilgilerini çalabilir.

Savunmasız nesneler

  • Ağ üzerinden gönderilen veriler.

Öneriler

  1. Güvenli HTTP'yi etkinleştirin ve kimlik bilgileri aktarımını yalnızca HTTPS üzerinden zorunlu kılın.
  2. Sertifikanızın geçerli olduğundan ve süresinin dolmadığından emin olun.

Örnekler:

1. SSL kullanmayan bir uygulamada, saldırgan yalnızca ağ trafiğini izleyecek ve kimliği doğrulanmış bir kurban oturum çerezini gözlemleyecektir. Bir saldırgan bu çerezi çalabilir ve Ortadaki Adam saldırısı gerçekleştirebilir.

Doğrulanmamış Yönlendirmeler ve İletmeler

Tanım

Web uygulaması, kullanıcıları amaçlanan amaç doğrultusunda başka sayfalara yönlendirmek ve iletmek için birkaç yöntem kullanır.

Diğer sayfalara yönlendirme sırasında uygun bir doğrulama yoksa, saldırganlar bunu kullanabilir ve kurbanları kimlik avı veya kötü amaçlı yazılım sitelerine yönlendirebilir veya yetkisiz sayfalara erişmek için yönlendirmeleri kullanabilir.

Ima

  • Saldırgan, kullanıcıya kodlanmış kötü amaçlı URL'nin eklendiği orijinal URL'yi içeren bir URL gönderebilir. Bir kullanıcı, saldırganın gönderdiği URL'nin yalnızca orijinal kısmını görerek ona göz atabilir ve kurban olabilir.

Örnekler

1.http://www.vulnerablesite.com/login.aspx?redirectURL=ownsite.com

Şuna değiştirildi:

http://www.vulnerablesite.com/login.aspx?redirectURL=evilsite.com

Öneriler

  1. Uygulamada yönlendirmeleri ve iletmeleri kullanmaktan kaçının. Kullanılıyorsa, hedefin hesaplanmasına kullanıcı parametrelerinin kullanılmasını dahil etmeyin.
  2. Hedef parametrelerden kaçınılamazsa sağlanan değerin geçerli olduğundan ve kullanıcı için yetkili olduğundan emin olun.