Açık Web Uygulama Güvenliği Projesi (OWASP), güvenilir ve emniyetli yazılım uygulamalarının nasıl geliştirileceği, satın alınacağı ve sürdürüleceği konusunda rehberlik sağlayan kar amacı gütmeyen bir vakıftır.
OWASP, geliştiricileri, tasarımcıları, mimarları ve işletme sahiplerini en yaygın web uygulaması güvenlik açıklarıyla ilişkili riskler konusunda eğitmeyi amaçlamaktadır. OWASP hem açık kaynaklı hem de ticari güvenlik ürünlerini destekler.
Güvenlik uzmanları ve bilgi teknolojisi profesyonellerinin ağ kurabileceği ve uzmanlık oluşturabileceği bir forum olarak bilinir ve web uygulama güvenliği alanında serbestçe erişilebilen makaleler, metodolojiler, belgeler, araçlar ve teknolojiler üretir. OWASP Vakfı adlı kar amacı gütmeyen bir kuruluş tarafından yönetilir.
OWASP Top 10 Nedir ve Nasıl Çalışır?
OWASP, web uygulaması güvenlik açıklarının popüler İlk 10 listesiyle dikkat çekmektedir. OWASP İlk 10, web uygulaması güvenliği için güvenlik endişelerini özetleyen ve en kritik 10 riske odaklanan düzenli olarak güncellenen bir rapordur. Rapor, küresel uygulama güvenliği uzmanlarından oluşan bir ekip tarafından hazırlanmıştır. OWASP, İlk 10'u bir 'farkındalık belgesi' olarak adlandırır ve tüm şirketlerin güvenlik risklerini en aza indirmek ve/veya azaltmak için raporu süreçlerine dahil etmelerini önerir.
OWASP Top 10 listesinin ilk versiyonu 2003 yılında yayınlandı. 2004, 2007, 2010, 2013 ve 2017 yıllarında güncellemeler yapıldı. En son güncelleme 2021 yılında yayınlandı.
A01 Sızıntı Erişim Kontrolü
Uygunsuz şekilde yapılandırılmış veya eksik kısıtlamalara sahip kimliği doğrulanmış kullanıcılar yetkisiz işlevselliklere veya verilere erişebilir. Ayrıca, kimliği doğrulanmış kullanıcıların ne yapmasına izin verildiğine ilişkin kısıtlamalar genellikle düzgün bir şekilde uygulanmaz.
A02 Kriptografik Hatalar
Kriptografik hatalar (eski adıyla Hassas Veri Açığa Çıkması), genellikle hassas verilerin açığa çıkmasına veya sistem güvenliğinin tehlikeye girmesine yol açan kriptografiyle ilgili hatalara odaklanır.
Birçok web uygulaması ve API, kodlamadan kaynaklanan güvenlik açıkları içerir ve bu da finansal, sağlık ve kişisel olarak tanımlanabilir bilgiler gibi hassas verileri açığa çıkarır. Saldırganlar, kredi kartı dolandırıcılığı, kimlik hırsızlığı veya diğer suçları işlemek için bu tür zayıf korumalı verileri çalabilir veya değiştirebilir. Ekstra korumaya sahip olmayan hassas veriler, hareketsiz veya aktarım sırasında şifreleme gibi tehlikeye girebilir ve tarayıcıyla alışveriş edildiğinde özel önlemler gerektirir.
A03 Enjeksiyon
SQL, NoSQL, OS ve Lightweight Directory Access Protocol (LDAP) enjeksiyonu gibi enjeksiyon kusurları, bir süredir bilgisayar korsanları arasında sürekli bir favori olmuştur, bu nedenle bu tehdidin hala listenin başında olması şaşırtıcı değildir. Bir enjeksiyon kusuru, şüpheli veriler bir uygulamaya komut veya sorgu olarak eklendiğinde oluşur. Bu düşmanca veriler, yorumlayıcıyı istenmeyen komutları yürütmeye veya uygun yetkilendirme olmadan verilere erişmeye kandırabilir.
En yaygın kod enjeksiyonu, veritabanı sunucusuna kötü biçimlendirilmiş kod göndererek gerçekleştirilen bir saldırı olan SQL enjeksiyonudur. İnternet erişimi olan hemen hemen herkesin gerçekleştirebileceği basit ve hızlı bir saldırı türüdür, çünkü SQL enjeksiyon betikleri indirilebilir ve kolayca edinilebilir.
Siteler arası betikleme (XSS) artık bu kategorinin bir parçası olarak dahil edilmiştir. XSS, bir uygulama uygun doğrulama olmadan yeni bir web sayfasına güvenilmeyen veriler eklediğinde veya HTML veya JavaScript oluşturabilen bir tarayıcı API'si kullanarak mevcut bir web sayfasını kullanıcı tarafından sağlanan verilerle güncellediğinde meydana gelir. Bu kusurlar, saldırganlara kullanıcı oturumlarını ele geçirmek, web sitelerini bozmak veya kullanıcıyı kötü amaçlı sitelere yönlendirmek için uygulamaya istemci tarafı betikleri enjekte etme yeteneği verir.
A04 Güvensiz Tasarım
Bu kategori, uygulama geliştirme döngüsünün erken aşamalarında güvenli tasarım kalıpları ve ilkeleri için daha fazla tehdit modellemesi kullanmak anlamına gelen tasarım kusurlarıyla ilgili risklere odaklanır. Birçok farklı zayıflığı temsil eden geniş bir kategoridir. OWASP'ye göre, "Güvenli tasarım, tehditleri sürekli olarak değerlendiren ve kodun bilinen saldırı yöntemlerini önlemek için sağlam bir şekilde tasarlanıp test edilmesini sağlayan bir kültür ve metodolojidir. Güvenli tasarım, güvenli bir geliştirme yaşam döngüsü, bir tür güvenli tasarım kalıbı veya asfalt yol bileşeni kütüphanesi veya araçları ve tehdit modellemesi gerektirir.
A05 Güvenlik Yanlış Yapılandırması
Güvenlik yanlış yapılandırması, günümüzde en sık görülen web uygulaması güvenlik sorunlarından biri olmaya devam etmektedir. Bu risk, güvenli olmayan varsayılan yapılandırmalar, eksik veya geçici yapılandırmalar, açık bulut depolama, yanlış yapılandırılmış HTTP başlıkları ve belki de en önemlisi, sistemleri, çerçeveleri, kütüphaneleri, uygulamaları ve bileşenleri yamalamamak veya yükseltmemek gibi uygulama verilerini güvende tutmayı amaçlayan kontrollerin uygunsuz uygulanmasını ifade eder.
Bu OWASP kategorisi artık XML harici varlıklarını da içerir. Birçok eski veya kötü yapılandırılmış XML işlemcisi XML belgelerindeki harici varlık referanslarını değerlendirir. Saldırganlar, uzaktan kod yürütme dahil olmak üzere saldırılar için harici varlıkları kullanabilir ve dahili dosyaları ve Sunucu İleti Bloğu (SMB) dosya paylaşımlarını ifşa edebilir, dahili bağlantı noktası taraması gerçekleştirebilir ve hizmet reddi saldırıları başlatabilir.
A06 Güvenlik Açığı Olan ve Güncel Olmayan Bileşenler (önceki adıyla “Bilinen Güvenlik Açıklarına Sahip Bileşenleri Kullanma”)
Kütüphaneler, çerçeveler ve diğer yazılım modülleri gibi çeşitli bileşenler uygulama ile aynı ayrıcalıklarla çalışır. Güvenlik açığı olan bir bileşen istismar edilirse, böyle bir saldırı ciddi veri kaybını veya sunucu ele geçirilmesini kolaylaştırabilir. Geliştiriciler sıklıkla uygulamalarında hangi açık kaynaklı veya üçüncü taraf bileşenlerinin olduğunu bilmezler ve bu da yeni güvenlik açıkları keşfedildiğinde bileşenleri güncellemeyi zorlaştırır. Bu bileşenler uygulama savunmalarını zayıflatabilir ve çeşitli saldırılara ve etkilere olanak tanıyabilir.
A07 Kimlik Doğrulama ve Kimlik Doğrulama Hataları (eskiden “Bozuk Kimlik Doğrulama” olarak anılırdı)
Bir uygulamanın işlevleri doğru bir şekilde uygulanmadığında, boşluklar siber suçluların içeri girmesine izin verir. Bu tür saldırganlar parolaları, anahtarları, oturum belirteçlerini tehlikeye atabilir ve diğer uygulama kusurlarını kullanarak diğer kullanıcıların kimliklerini geçici veya kalıcı olarak üstlenebilir. Her oturum, tek bir kullanıcı için benzersiz olmalıdır. Herhangi bir oturum yönetimi olmadan, bir saldırgan değerli verilere erişmek için bir kullanıcı kılığında gizlice girebilir.
A08 Yazılım ve Veri Bütünlüğü Arızaları
2021 için yeni bir kategori olan Yazılım ve Veri Bütünlüğü Arızaları, bütünlük ihlallerine karşı koruma sağlayamayan kod ve altyapıyı ifade eder. Bunlara, doğrulama yapılmadan uygulanan yazılım güncellemeleri, kritik veriler ve CI/CD hatları dahildir; örneğin, bir saldırganın değiştirebileceği bir yapıya kodlanmış veya serileştirilmiş nesneler veya veriler ya da güvenilmeyen kaynaklardan eklentilere, kitaplıklara veya modüllere dayanan bir uygulama. Yetkisiz erişim, kötü amaçlı kod veya sistem ihlali potansiyeli oluşturabilen güvenli olmayan CI/CD hatları da bu kategoriye girer. Son olarak, güncellemelerin yeterli bütünlük doğrulaması yapılmadan indirildiği ve daha önce güvenilen bir uygulamaya uygulandığı otomatik güncelleme işlevine sahip uygulamalar, saldırganların kendi kötü amaçlı güncellemelerini dağıtmak için tedarik zincirine sızabilmeleri nedeniyle yazılım ve veri bütünlüğü arızaları olarak kabul edilir.
Güvensiz deserializasyon da artık bu kategorinin bir parçasıdır. Güvensiz deserializasyon genellikle serileştirilmiş nesneleri bozmak veya silmek veya ayrıcalıkları yükseltmek için uzaktan kod yürütülmesine yol açar. Deserializasyon kusurları uzaktan kod yürütülmesine yol açmasa bile, tekrar oynatma veya enjeksiyon saldırıları ve ayrıcalık yükseltmesi dahil olmak üzere saldırılar gerçekleştirmek için kullanılabilirler.
A09 Güvenlik Kaydı ve İzleme Hataları (eskiden “Yetersiz Kayıt ve İzleme” olarak anılırdı)
Güvenlik Günlüğü ve İzleme Hataları, olay yanıt sistemleriyle eksik veya etkisiz entegrasyonla birleştiğinde, siber suçluların sistemlere daha fazla saldırmalarına ve verileri çıkarma veya yok etme amacıyla kurcalamalarına olanak tanıyan olayların çoğunun temelini oluşturur. Çalışmalar, bu tür hataları tespit etme süresinin haftalar veya aylarla ölçüldüğünü ve genellikle dahili süreçler veya izleme yerine harici taraflar tarafından tespit edildiğini göstermiştir. Bu güvenlik açıklarından yararlanmaya çalışan tipik saldırılar arasında SQL enjeksiyonları, XSS, siteler arası istek sahteciliği, sunucu tarafı istek sahteciliği, çerez zehirlenmesi ve Kaba Kuvvet saldırıları bulunur.
Saldırganlar, tespit edilmeden hedeflerine ulaşmak için izleme ve zamanında yanıt eksikliğine güvenirler. En başarılı saldırılar, güvenlik açığı araştırmasıyla başlar. Bu tür araştırmaların devam etmesine izin vermek, başarılı bir istismar olasılığını neredeyse %100'e çıkarabilir.
A10 Sunucu Tarafı İstek Sahteciliği
Sunucu tarafı istek sahteciliği (SSRF), bir web uygulaması kullanıcı tarafından sağlanan URL'yi doğrulamadan uzak bir kaynağı aldığında meydana gelir. Bir saldırgan, bir güvenlik duvarı, VPN veya başka bir tür ağ erişim kontrol listesi tarafından korunsa bile, uygulamayı beklenmedik bir hedefe hazırlanmış bir istek göndermeye zorlayabilir. SSRF, OWASP'nin incelediği verilerde nispeten düşük bir olay oranı gösterse de, bu kategori sektör anketi sonuçlarına dayanarak eklenmiştir. Kullanıcılar, bulut hizmetlerinin artan kullanımı ve mimarilerin karmaşıklığı nedeniyle SSRF saldırılarının daha yaygın ve potansiyel olarak daha şiddetli hale geldiğinden endişe duymaktadır.