OWASP veya Açık Web Güvenliği Projesi, yazılım ve web uygulamalarının güvenliğini artırmaya odaklanan, kar amacı gütmeyen bir hayır kurumudur.
Kuruluş, çeşitli güvenlik kuruluşlarından gelen verilere dayalı olarak en önemli web güvenlik açıklarının bir listesini yayınlar.
Web güvenlik 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 ve en düşük seviyenin gelişmiş programlama ve araçlara ihtiyaç duyduğu durumlarda en yüksek yararlanılabilirlik.
- Tespit edilebilirlik -
Tehdidi tespit etmek ne kadar kolay? En büyüğü URL, Form veya Hata mesajında görüntülenen bilgidir ve en düşük kaynak koddur.
- Etki veya Hasar -
Güvenlik açığı ortaya çıkar veya saldırıya uğrarsa ne kadar zarar verilecek? En büyüğü tam sistem çökmesi ve en küçüğü hiçbir şey olmamak.
OWASP Top 10'un temel amacı, geliştiricileri, tasarımcıları, yöneticileri, mimarları ve kuruluşları en önemli güvenlik açıkları konusunda eğitmektir.
OWASP İlk 10'a göre İlk 10 güvenlik açıkları şunlardır:
- SQL Enjeksiyonu
- Siteler Arası Komut Dosyası
- Bozuk Kimlik Doğrulama ve Oturum Yönetimi
- Güvenli Olmayan Doğrudan Nesne Referansları
- Siteler Arası İstek Sahteciliği
- Yanlış Güvenlik Yapılandırması
- Güvensiz Kriptografik Depolama
- URL Erişimini kısıtlayamama
- Yetersiz Taşıma Katmanı Koruması
- Doğrulanmamış Yönlendirmeler ve Yönlendirmeler
SQL Enjeksiyonu
Açıklama
Enjeksiyon, bir saldırganın kullanıcı tarafından sağlanan verileri manipüle ederek arka uç SQL ifadelerini değiştirmesine olanak tanıyan bir güvenlik açığıdır.
Enjeksiyon, kullanıcı girdisi komut veya sorgunun bir parçası olarak bir yorumlayıcıya gönderildiğinde ve yorumlayıcıyı istenmeyen komutları yürütmesi için kandırdığında ve yetkisiz verilere erişim sağladığında meydana gelir.
Web uygulaması tarafından çalıştırıldığında, arka uç veritabanını da açığa çıkarabilen SQL komutu.
Ima
- Saldırgan, savunmasız alanlara kötü amaçlı içerik enjekte edebilir.
- Veritabanından Kullanıcı Adları, Parolalar vb. Gibi hassas veriler okunabilir.
- Veritabanı verileri değiştirilebilir (Ekle / Güncelle / Sil).
- Veri tabanı üzerinde yönetim işlemleri gerçekleştirilebilir
Savunmasız Nesneler
- Giriş Alanları
- Veritabanıyla etkileşime giren URL'ler.
Örnekler:
- Oturum Açma Sayfasında SQL enjeksiyonu
Geçerli kimlik bilgilerine sahip olmadan bir uygulamada oturum açma.
Geçerli userName mevcut ve parola mevcut değil.
Test URL'si: http://demo.testfire.net/default.aspx
Kullanıcı Adı: sjones
Şifre: 1 = 1 'veya pass123
Aşağıdaki gibi oluşturulmuş ve Interpreter'e gönderilen SQL sorgusu
SEÇİN * Kullanıcılardan Kullanıcı Adı = sjones AND Şifre = 1 = 1 'veya pass123;
Öneriler
- Giriş alanlarını beyaz listeleme
- Bir saldırgan için yararlı olan ayrıntılı hata mesajlarını görüntülemekten kaçının.
Siteler Arası Komut Dosyası
Açıklama
Siteler Arası Komut Dosyası da kısaca XSS olarak 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, uygulama güvenilmeyen verileri aldığında ve bunları uygun doğrulama olmadan web tarayıcısına gönderdiğinde 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 kullanabilir. Tarayıcı komut dosyasının güvenilir olup olmadığını bilemeyeceği için komut dosyası çalıştırılır ve saldırgan oturum tanımlama bilgilerini ele geçirebilir, web sitelerini tahrif edebilir veya kullanıcıyı istenmeyen ve kötü niyetli web sitelerine yönlendirebilir.
XSS, saldırganın komut dosyalarını kurbanın tarayıcısında çalıştırmasına izin veren bir saldırıdır.
Ima:
- Bu güvenlik açığından yararlanan bir saldırgan, uygulamaya komut dosyaları ekleyebilir, oturum tanımlama bilgilerini ç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?" >
Yukarıdaki komut dosyası bir tarayıcıda çalıştırıldığında, site XSS'ye açıksa bir mesaj kutusu görüntülenir.
Daha ciddi saldırı, saldırgan oturum tanımlama bilgisini görüntülemek veya saklamak isterse yapılabilir.
2. http://demo.testfire.net/search.aspx?txtSearch width = 500 height 500>
Yukarıdaki komut dosyası çalıştırıldığında, tarayıcı http://google.com'u işaret eden görünmez bir çerçeve yükleyecektir .
Tarayıcıda kötü amaçlı bir komut dosyası çalıştırılarak saldırı ciddi hale getirilebilir.
Öneriler
- Beyaz Liste giriş alanları
- Giriş Çıkış kodlaması
Bozuk Kimlik Doğrulama ve Oturum Yönetimi
Açıklama
Web siteleri genellikle her geçerli oturum için bir oturum çerezi ve oturum kimliği oluşturur ve bu çerezler kullanıcı adı, parola vb. Gibi hassas veriler içerir. Oturum, oturum kapatılarak veya tarayıcı aniden kapatıldığında sona erdiğinde, bu çerezler geçersiz kılınmalıdır, yani her oturum için yeni bir çerez olmalı.
Çerezler geçersiz değilse, hassas veriler sistemde mevcut olacaktır. Örneğin, halka açık bir bilgisayar (Cyber Cafe) kullanan bir kullanıcı, savunmasız sitenin çerezleri sistemde bulunur ve bir saldırgana maruz kalır. Bir saldırgan bir süre sonra aynı ortak bilgisayarı kullanır, hassas veriler tehlikeye atılır.
Aynı şekilde, ortak bir bilgisayar kullanan bir kullanıcı, oturumu kapatmak yerine tarayıcıyı aniden kapatır. Bir saldırgan aynı sistemi kullanır, aynı savunmasız siteye göz attığında, kurbanın önceki oturumu açılacaktır. Saldırgan, profil bilgilerini, kredi kartı bilgilerini vb. Çalmaktan istediği her şeyi yapabilir.
Kimlik doğrulama ve oturum yönetiminin gücünü bulmak için bir kontrol yapılmalıdır. Anahtarlar, oturum belirteçleri, tanımlama bilgileri, parolalardan ö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 neden olabilir.
- Oturum kimlikleri, oturumu kapatmadan ve oturum açmadan önce ve sonra aynı.
- Oturum Zaman Aşımları doğru şekilde uygulanmaz.
- Uygulama, her yeni oturum için aynı oturum kimliğini atıyor.
- Uygulamanın kimliği doğrulanmış bölümleri SSL kullanılarak korunur ve şifreler karma veya şifrelenmiş biçimde saklanır.
- Oturum, düşük ayrıcalıklı bir kullanıcı tarafından yeniden kullanılabilir.
Ima
- Bu güvenlik açığından yararlanan bir saldırgan, bir oturumu ele geçirebilir, yetkisiz bilgilerin ifşa edilmesine ve değiştirilmesine izin veren sisteme yetkisiz erişim sağlayabilir.
- Oturumlar, çalınan çerezler kullanılarak veya XSS kullanılarak yapılan oturumlar kullanılarak yüksek fiyatla yapılabilir.
Örnekler
- Havayolu rezervasyonu uygulaması URL'nin yeniden yazılmasını destekler ve oturum kimliklerini URL'ye yerleştirir:
http://Examples.com/sale/saleitems;jsessionid=2P0OC2oJM0DPXSNQPLME34SERTBG/dest=Maldives (Maldivlere bilet satışı)
Sitenin kimliği doğrulanmış bir kullanıcısı, arkadaşlarına satış hakkında bilgi vermek 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.
- Bir saldırganın oturum kimliğine erişebildiği ve oturumu ele geçirmek için kullanılabildiği bir uygulama XSS'ye karşı savunmasızdır.
- Uygulama zaman aşımları doğru ayarlanmadı. Kullanıcı, genel bir bilgisayar kullanır ve oturumu kapatmak yerine tarayıcıyı kapatır ve uzaklaşır. Saldırgan bir süre sonra aynı tarayıcıyı kullanır ve oturum kimliği doğrulanır.
Öneriler
- Tüm kimlik doğrulama ve oturum yönetimi gereksinimleri, OWASP Uygulama Güvenliği Doğrulama Standardına göre tanımlanmalıdır.
- Kimlik bilgilerini asla URL'lerde veya Günlüklerde göstermeyin.
- 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ı
Açıklama
Bir geliştirici, URL'deki gibi bir dosya, dizin veya veritabanı anahtarı gibi dahili bir uygulama nesnesine veya bir FORM parametresi olarak bir başvuru ortaya çıkardığında oluşur. 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
- Bu güvenlik açığını kullanan bir saldırgan, yetkisiz dahili nesnelere erişebilir, verileri değiştirebilir veya uygulamanın güvenliğini ihlal edebilir.
Savunmasız Nesneler
- URL'de.
Örnekler:
Aşağıdaki URL'deki "kullanıcı kimliğini" değiştirmek, bir saldırganın diğer kullanıcının bilgilerini görüntülemesini sağlayabilir.
http://www.vulnerablesite.com/userid=123 için Modifiye http://www.vulnerablesite.com/userid=124
Bir saldırgan, kullanıcı kimliği değerini değiştirerek başkalarının bilgilerini görüntüleyebilir.
Öneriler:
- Erişim kontrol kontrollerini uygulayın.
- URL'lerde nesne referanslarını göstermekten kaçının.
- Tüm referans nesneler için yetkilendirmeyi doğrulayın.
Siteler Arası İstek Sahteciliği
Açıklama
Siteler Arası İstek Sahteciliği, siteler arası sahte bir taleptir.
CSRF saldırısı, kötü amaçlı bir web sitesi, e-posta veya program, bir kullanıcının tarayıcısının, kullanıcının o anda kimliğinin doğrulanmış olduğu güvenilen bir sitede istenmeyen bir eylem gerçekleştirmesine neden olduğunda meydana gelen bir saldırıdır.
Bir CSRF saldırısı, oturum açmış bir kurbanın tarayıcısını, kurbanın oturum tanımlama bilgisi ve otomatik olarak eklenen diğer kimlik doğrulama bilgileri dahil olmak üzere, savunmasız bir web uygulamasına sahte bir HTTP isteği göndermeye zorlar.
Kullanıcı orijinal web sitesinde oturum açtığında URL'yi tıkladığında saldırgan tarafından mağdura bir bağlantı gönderilecek, veriler web sitesinden çalınacaktır.
Ima
- Bu güvenlik açığını bir saldırgan olarak kullanmak, 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
Kurban, geçerli kimlik bilgileri kullanılarak bir bankanın web sitesinde oturum açtı. Bir saldırgandan "Neden olması için 1 $ bağışlamak için lütfen burayı tıklayın" şeklinde bir posta alır.
Kurban üzerine tıkladığında, belirli bir hesaba 1 $ bağışlamak için geçerli bir istek oluşturulur.
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 "Nedeni Destekliyorum" diyen bir düğmenin içine yerleştirir.
http://www.vulnerablebank.com/transfer.do?account=Attacker&amount=1000
Oturum doğrulandığı ve talep bankanın web sitesinden geldiğinden, sunucu saldırgana 1000 dolar aktaracaktır.
Öneri
- Hassas eylemler gerçekleştirirken kullanıcının varlığını zorunlu kılın.
- CAPTCHA, Yeniden Kimlik Doğrulama ve Benzersiz İstek Belirteçleri gibi mekanizmalar uygulayın.
Yanlış Güvenlik Yapılandırması
Açıklama
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 hassas verilere veya işlevlere yetkisiz erişime sahip olabilir.
Bazen bu tür kusurlar, tam sistem ödün vermesine neden olur. Yazılımı güncel tutmak da iyi bir güvenliktir.
Ima
- Saldırgan, bu güvenlik açığından yararlanarak, temelde yatan teknolojiyi ve uygulama sunucusu sürüm bilgilerini, veritabanı bilgilerini sıralayabilir ve birkaç saldırı daha gerçekleştirmek için uygulama hakkında bilgi edinebilir.
Savunmasız nesneler
- URL
- Form Alanları
- Giriş alanları
Örnekler
- Uygulama sunucusu yönetici konsolu otomatik olarak yüklenir ve kaldırılmaz. Varsayılan hesaplar değiştirilmez. Saldırgan varsayılan parolalarla oturum açabilir ve yetkisiz erişim elde edebilir.
- Sunucunuzda Dizin Listeleme devre dışı bırakılmamış. Saldırgan keşfeder ve herhangi bir dosyayı bulmak için dizinleri listeleyebilir.
Öneriler
- Bileşenler arasında iyi bir ayırma ve güvenlik sağlayan güçlü bir uygulama mimarisi.
- Varsayılan kullanıcı adlarını ve şifreleri değiştirin.
- Dizin listelerini devre dışı bırakın ve erişim kontrol denetimlerini uygulayın.
Güvensiz Kriptografik Depolama
Açıklama
Güvensiz Kriptografik depolama, hassas veriler güvenli bir şekilde depolanmadığında ortaya çıkan yaygın bir güvenlik açığıdır.
Kullanıcı kimlik bilgileri, profil bilgileri, sağlık bilgileri, kredi kartı bilgileri vb. Bir web sitesinde hassas veri bilgileri altında yer alır.
Bu veriler uygulama veritabanında saklanacaktır. Bu veriler, şifreleme veya karma oluşturma * kullanılmayarak uygunsuz bir şekilde depolandığında, saldırganlara karşı savunmasız hale gelecektir.
(* Karma, dize karakterlerinin sabit uzunlukta daha kısa dizelere veya bir anahtara dönüştürülmesidir. Dizenin şifresini çözmek için anahtarı oluşturmak için kullanılan algoritma mevcut olmalıdır)
Ima
- Bu güvenlik açığını kullanarak, bir saldırgan kimlik hırsızlığı, kredi kartı dolandırıcılığı veya diğer suçları gerçekleştirmek için bu tür zayıf korunan verileri çalabilir, değiştirebilir.
Savunmasız nesneler
- Uygulama veritabanı.
Örnekler
Bir bankacılık uygulamasında, şifre veritabanı herkesin şifrelerini saklamak için tuzsuz karmalar * kullanır. SQL yerleştirme kusuru, saldırganın parola dosyasını almasına olanak tanır. Tüm tuzsuz karmalar hiçbir zaman kaba kuvvetle zorlanabilir, oysa tuzlu şifreler binlerce yıl alır.
(* Tuzsuz Hashes - Salt, orijinal verilere eklenen rastgele bir veridir. Salt, hashing işleminden önce şifreye eklenir)
Öneriler
- Uygun güçlü standart algoritmalar sağlayın. Kendi şifreleme algoritmalarını oluşturmayın. Yalnızca AES, RSA açık anahtar şifreleme ve SHA-256 gibi onaylanmış genel algoritmaları kullanın.
- Site dışı yedeklemelerin şifreli olduğundan, ancak anahtarların ayrı olarak yönetildiğinden ve yedeklendiğinden emin olun.
URL Erişimini kısıtlayamama
Açıklama
Web uygulamaları, korumalı bağlantıları ve düğmeleri işlemeden önce URL erişim haklarını kontrol eder. Uygulamaların, bu sayfalara her erişildiğinde benzer erişim kontrol kontrolleri gerçekleştirmesi gerekir.
Uygulamaların çoğunda 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çığı saldırganını kullanmak, uygulamaya giriş yapmadan ve güvenlik açığından yararlanmadan yetkisiz URL'lere erişim sağlayabilir. Saldırgan hassas sayfalara erişebilir, işlevleri çalıştırabilir ve gizli bilgileri görüntüleyebilir.
Savunmasız nesneler:
- URL'ler
Örnekler
- Saldırgan, URL'nin rolü "/ user / getaccounts" olarak gösterdiğini fark eder. "/ Admin / getaccounts" olarak değiştirir.
- Saldırgan, URL'ye rol ekleyebilir.
http://www.vulnerablsite.com gibi modifiye edilebilir http://www.vulnerablesite.com/admin
Öneriler
- Güçlü erişim kontrol kontrolleri uygulayın.
- Kimlik doğrulama ve yetkilendirme politikaları rol tabanlı olmalıdır.
- İstenmeyen URL'lere erişimi kısıtlayın.
Yetersiz Taşıma Katmanı Koruması
Açıklama
Kullanıcı (istemci) ve sunucu (uygulama) arasındaki bilgi alışverişi ile ilgilenir. Uygulamalar genellikle bir ağ üzerinden kimlik doğrulama ayrıntıları, kredi kartı bilgileri ve oturum belirteçleri gibi hassas bilgileri iletir.
Zayıf algoritmalar kullanmak veya süresi dolmuş veya geçersiz sertifikalar kullanmak veya SSL kullanmamak, iletişimin güvenilmeyen kullanıcılara açık olmasına izin verebilir, bu da bir web uygulamasının güvenliğini tehlikeye atabilir ve / veya hassas bilgileri çalabilir.
Ima
- Bu web güvenlik açığından yararlanan bir saldırgan, meşru kullanıcının kimlik bilgilerini koklayabilir ve uygulamaya erişim sağlayabilir.
- Kredi kartı bilgilerini çalabilir.
Savunmasız nesneler
- Ağ üzerinden gönderilen veriler.
Öneriler
- Güvenli HTTP'yi etkinleştirin ve yalnızca HTTPS üzerinden kimlik bilgisi aktarımını zorunlu kılın.
- Sertifikanızın geçerli olduğundan ve süresinin dolmadığından emin olun.
Örnekler:
1. SSL kullanmayan bir uygulama, bir saldırgan sadece ağ trafiğini izler ve kimliği doğrulanmış bir kurban oturumu çerezini gözlemler. Bir saldırgan bu çerezi çalıp Ortadaki Adam saldırısı gerçekleştirebilir.
Doğrulanmamış Yönlendirmeler ve Yönlendirmeler
Açıklama
Web uygulaması, kullanıcıları amaçlanan bir amaç için başka sayfalara yönlendirmek ve iletmek için birkaç yöntem kullanır.
Başka sayfalara yönlendirilirken 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 eklenmiş gerçek bir URL içeren bir URL gönderebilir. Bir kullanıcı, saldırganın gönderdiği URL'nin yalnızca gerçek kısmını görerek ona göz atabilir ve kurban olabilir.
Örnekler
1. http://www.vulnerablesite.com/login.aspx?redirectURL=ownsite.com
Olarak değiştirildi
http://www.vulnerablesite.com/login.aspx?redirectURL=evilsite.com
Öneriler
- Uygulamada yönlendirmeleri ve yönlendirmeleri kullanmaktan kaçının. Kullanılırsa, varış yerinin hesaplanmasında kullanıcı parametrelerinin kullanılmasına yer vermeyin.
- Hedef parametrelerinden kaçınılamıyorsa, sağlanan değerin geçerli ve kullanıcı için yetkilendirilmiş olduğundan emin olun.
Bu makale Prasanthi Eati tarafından hazırlanmıştır.