Nedirler ve Nasıl Test Edilirler?


Outpost24 API siber banner'ı

Web uygulamaları genellikle kişisel kullanıcı ayrıntılarından hassas kurumsal bilgilere kadar çok büyük miktarda veriyi işler. Bu uygulamaların karmaşıklığı ve önemi arttıkça, tehdit aktörlerinin de birincil hedefleri haline geliyorlar.

Siber suçlular sıklıkla web uygulamalarına saldırır ve veri çalmak, kurumsal casusluk yapmak veya sırf bunun uğruna kesintiye neden olmak gibi hain amaçlarına ulaşmalarına yardımcı olan yaygın zayıflıklardan yararlanır.

Çevik geliştirme ve sürekli teslimatın yükselişiyle birlikte, yeni özelliklerin hızlı bir şekilde piyasaya sürülmesi yönünde bir baskı var. Sonuç olarak geliştirme ekipleri bazen hız ve esneklik uğruna güvenliği göz ardı ediyor.

OWASP Top 10, web uygulamalarına yönelik en önemli güvenlik riskleri hakkında geniş bir fikir birliğini temsil eden önemli bir kaynaktır.

Bu makale, OWASP İlk 10’unu derinlemesine ele alıyor ve web uygulamalarınızın bu güvenlik risklerine karşı duyarlılığını nasıl test edeceğiniz konusunda tavsiyelerde bulunuyor.

OWASP Top 10 Son Sürümü

OWASP (Açık Web Uygulama Güvenliği Projesi) İlk 10, gerçek dünya verilerine ve uzman görüş birliğine dayalı olarak en kritik web uygulaması güvenlik açıklarını vurgulamanın bir yolu olarak 2003 yılında başladı.

Web tabanlı uygulamalar dijital olarak dönüştürülmüş iş operasyonlarının ayrılmaz bir parçası haline geldikçe, gelişmiş güvenliğe yönelik artan bir ihtiyaç da ortaya çıktı.

Yıllar geçtikçe OWASP İlk 10, gelişen tehdit ortamına uygun kalabilmek için periyodik revizyonlardan geçmiştir. Uzman görüşleriyle birleşen veri odaklı yaklaşımı, onu web uygulaması güvenliğini anlamak, test etmek ve geliştirmek için bir referans noktası haline getiriyor.

Yalnızca eğitimsel değeriyle değil aynı zamanda güvenlik uygulamaları ve standartlarını şekillendirmedeki rolüyle de tanınan OWASP Top 10, güvenli web uygulamaları oluşturmak için gereklidir.

İşte en güncel OWASP Top 10’un (2021’den itibaren) bir özeti.

1. Bozuk Erişim Kontrolü

Bozuk erişim kontrolü, kimliği doğrulanmış kullanıcıların bir uygulamada ne yapmasına izin verildiğine yetersiz kısıtlamalar getirilmesi anlamına gelir. Kullanıcı izinleri ve haklarının uygulanmasındaki bu kusurlar, kullanıcıların amaçlanan ayrıcalıkların ötesinde eylemler gerçekleştirmesine veya verilere erişmesine olanak tanır. Bozuk erişim kontrolüne bir örnek, standart bir kullanıcının uygun ayrıcalıklara sahip olmadan uygulamadaki yönetici işlevlerine erişmek için bir URL’yi basitçe değiştirmesidir.

Bir web uygulamasını bozuk erişim kontrolü güvenlik risklerine karşı test etmek için aşağıdaki stratejileri göz önünde bulundurun:

  • Her biri farklı rollere sahip birden fazla test hesabı oluşturun ve kapsam dışı eylemler gerçekleştirmeye çalışın.
  • Bir kullanıcının bir başkasının kimliğine bürünüp bürünemeyeceğini veya erişimini yükseltip yükseltemeyeceğini görmek için oturum belirteçlerini ele geçirmeyi veya değiştirmeyi deneyin.
  • Standart kullanıcılara yönelik olmayan nesnelere erişmek için URL’deki, gizli alanlardaki veya API isteklerindeki parametreleri değiştirmeyi deneyin.

En önemli önleyici tedbir, sağlam bir rol tabanlı erişim kontrolü (RBAC) sistemi tasarlamak ve uygulamaktır. Her kullanıcı rolünün gerekli minimum izinlere sahip olduğundan emin olun (en az ayrıcalık ilkesi). Bu rolleri hem ön uçta hem de arka uçta uygulama boyunca tutarlı bir şekilde uygulayın.

2. Şifreleme Hataları

Bu güvenlik riski, güncel olmayan algoritmaların veya yanlış anahtar yönetimi yapılandırmalarının kullanılması gibi, kriptografinin uygunsuz uygulanması veya kullanılması sorunuyla ilgilidir. Yetenekli bilgisayar korsanları, bir web uygulamasını kurcalamak veya hassas verilere erişmek için zayıf veya yanlış yapılandırılmış şifrelemeyi önemsiz bir şekilde atlayabilir.

Bu riski test etmek için:

  • Kullanımdan kaldırılan yöntemler veya algoritmalar için şifreleme uygulamalarını denetleyin.
  • Anahtar yönetimi uygulamalarını test edin.
  • Uygulamanın güvenli, güncel kriptografik kitaplıkları kullandığından emin olun.

3. Enjeksiyon

Web uygulamalarındaki ekleme kusurları, saldırganların, uygulamayı istenmeyen komutları yürütmesi için kandırabilecek kötü amaçlı girdiler oluşturmasına olanak tanır. En iyi bilinen tür, bilgisayar korsanlarının bir web uygulamasının veritabanı sorgularını değiştirdiği SQL enjeksiyonudur.

Bu yılın başlarında, 930.000’den fazla WordPress web sitesi tarafından kullanılan popüler bir eklentinin PHP nesne yerleştirme kusurlarına sahip olduğu tespit edildi.

Web uygulamanızı ekleme risklerine karşı test etmek için:

  • Potansiyel güvenlik açıklarını belirlemek için statik kod analizini kullanın.
  • Uygulamayı çeşitli enjeksiyon yükleriyle dinamik olarak test edin.
  • Uygulamanın kullanıcı girişlerini doğruladığından ve sterilize ettiğinden emin olun.

4. Güvenli Olmayan Tasarım

Web uygulamalarındaki güvensiz tasarım, doğası gereği güvenlik hususlarından yoksun mimari ve temel seçimler anlamına gelir. Bu riskli seçimler, bireysel kod düzeyindeki güvenlik önlemlerine bakılmaksızın bir uygulamayı saldırılara karşı savunmasız hale getirebilir.

Güvenli olmayan tasarıma yönelik test stratejileri daha ayrıntılıdır ve şunları içerir:

  • Uygulamanın tasarımını, veri akışını ve olası zayıf alanları anlamak için tehdit modellemesi yapmak.
  • Uygulamanın mimarisinin kapsamlı bir incelemesinin gerçekleştirilmesi ve kimlik doğrulama, yetkilendirme ve veri doğrulama dahil olmak üzere güvenlik kontrollerinin temel katmanlara yerleştirilip yerleştirilmediğinin değerlendirilmesi.
  • Geliştirme, test ve üretim ortamlarının farklı ve ayrılmış olmasını sağlamak.

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

Web uygulamalarındaki güvenlik yanlış yapılandırması, güvenlik ayarları ve kontrolleri yanlış uygulandığında, varsayılan değerlerde bırakıldığında veya tamamen gözden kaçırıldığında ortaya çıkar. Yanlış yapılandırma riskleri, değerli verilere veya sistem özelliklerine istenmeyen erişimi kolaylaştıran korumasız dosyaları, dizinleri veya veritabanlarını içerir.

Acele dağıtımlar ve güvenlik bilincinin eksikliği bu risklerin başlıca nedenleridir.

Web uygulamalarınızı güvenlik yanlış yapılandırmalarına karşı test etmek için:

  • Uygulamayı, veritabanını, sunucuyu ve ağ yapılandırmalarını manuel olarak düzenli olarak inceleyin ve denetleyin.
  • Yaygın yanlış yapılandırmaları tespit edebilen otomatik tarayıcıları ve güvenlik araçlarını kullanın.
  • Yollar, sunucu ayrıntıları veya veritabanı bilgileri gibi hassas bilgi sızıntılarına karşı hata mesajlarını izleyin.
  • Uygulamada hiçbir varsayılan kimlik bilgilerinin (kullanıcı adı/şifre) etkin olmadığından emin olun.

6. Savunmasız ve Güncel Olmayan Bileşenler

Web uygulamalarındaki savunmasız ve güncelliğini yitirmiş bileşenler, bilinen güvenlik açıklarına sahip ancak geliştiriciler tarafından güncellenmemiş veya yama yapılmamış üçüncü taraf kitaplıkları, eklentileri, çerçeveleri ve diğer yazılım modüllerini ifade eder.

Savunmasız bileşenlere dayanan web uygulamaları, onların zayıf yönlerini devralır ve bu da tehdit aktörlerinin yararlanabileceği potansiyel bir yol sağlar.

Web uygulamalarını güvenlik açığı bulunan/güncel olmayan bileşenler açısından test etmek için:

  • Uygulamanızda kullanılan tüm üçüncü taraf bileşenlerin, kitaplıkların, eklentilerin ve çerçevelerin, sürümleri ve bağımlılıkları da dahil olmak üzere güncel bir envanterini tutun.
  • Bileşen envanterinizi Ulusal Güvenlik Açığı Veri Tabanı (NVD) veya CVE ayrıntıları gibi güvenlik açığı veritabanlarıyla çapraz referanslayın.
  • Proje bağımlılıklarını taramak ve bunları bilinen güvenlik açığı veritabanlarıyla karşılaştırmak için OWASP’ın Bağımlılık Kontrolü gibi otomatik araçları kullanın.

7. Tanımlama ve Kimlik Doğrulama Hataları

Zayıf parola politikaları, çok faktörlü kimlik doğrulamanın eksikliği veya yanlış uygulanan oturum yönetimi gibi kusurlu kimlik doğrulama mekanizmaları, saldırganların meşru kullanıcıları taklit etmesine veya kimlik doğrulama kontrollerini tamamen atlamasına olanak tanır.

Bu hatalar yetkisiz veri erişimine, kimlik hırsızlığına ve kullanıcı hesaplarının ele geçirilmesine yol açmaktadır.

Bu OWASP İlk 10 riskini test etmek için:

  • Minimum şifre uzunluğu/karmaşıklık gereksinimlerini kontrol edin ve uygulamanın bunları kabul edip etmediğini görmek için ortak veya varsayılan şifreleri deneyin.
  • Oturumların etkinlik dışı kaldıktan veya kullanıcı oturumu kapattıktan sonra uygun şekilde sona erip sona ermediğini kontrol edin.
  • Bir oturumu taklit edip edemeyeceğinizi görmek için çerezleri değiştirmeyi veya yeniden oynatmayı deneyin.
  • Kimlik doğrulama kontrollerini atlamak için URL’leri, sorgu parametrelerini veya gizli alanları değiştirmeyi deneyin.

8. Yazılım ve Veri Bütünlüğü Arızaları

Yazılım ve veri bütünlüğü hataları, bir uygulamanın verinin ve uygulama kodunun orijinalliğini ve güvenilirliğini sağlayamaması durumunda ortaya çıkar. Bütünlük, verilerin ve kodun değiştirilmeden ve orijinal durumlarından itibaren orijinal kalmasını sağlamakla ilgilidir.

Yazılım ve veri bütünlüğündeki hatalar, sahte işlemlere veya uygulamaya kötü amaçlı kod eklenmesine yol açan yetkisiz değişiklik riskini doğurur.

Bu hataları test etmek için şunları göz önünde bulundurun:

  • İletilen verilere müdahale edilmesi ve uygulamanın tahrif edilen verileri herhangi bir kontrol yapmadan kabul edip etmediğinin gözlemlenmesi.
  • Uygulama dosyalarını veya kitaplıklarını değiştirmek ve uygulamanın yetkisiz değişiklikleri tespit edip etmediğini görmek.
  • Verilerin veya yazılım bileşenlerinin bütünlüğünü doğrulayacak sağlama toplamlarının, dijital imzaların veya diğer doğrulama mekanizmalarının olup olmadığının kontrol edilmesi.

9. Güvenlik Günlüğü ve İzleme Arızası

Bu risk, bir uygulamadaki etkinliklerin yetersiz kaydedilmesi veya kötü amaçlı eylemlerin gerçek zamanlı olarak proaktif olarak algılanıp bunlara yanıt verilmemesiyle ilgilidir.

Ayrıntılı günlüklerin olmaması veya izlemenin olmaması, yetkisiz erişim, veri ihlalleri veya diğer kötü amaçlı etkinliklerin zamanında tespit edilmesini önleyen kör noktalar oluşturur.

Bir web uygulamasının bu risklere sahip olup olmadığını değerlendirmek için:

  • Başarısız oturum açma girişimleri, hassas verilere erişim veya sistem yapılandırma değişiklikleri gibi ilgili güvenlik olaylarını yakaladıklarından emin olmak için günlükleri düzenli olarak inceleyin.
  • Veritabanları, sunucular ve uygulama uç noktaları gibi tüm kritik bileşenlerin izlendiğinden emin olun.
  • İlgili tüm güvenlik olaylarını yakalayacak şekilde ayarlandıklarından emin olmak için izleme araçlarının yapılandırmalarını gözden geçirin.

10. Sunucu Tarafı İstek Sahteciliği (SSRF)

Sunucu Tarafı İstek Sahteciliği (SSRF), bir saldırganın bir web uygulamasını sunucu adına dahili kaynaklara veya üçüncü taraf sistemlere istenmeyen istekler gönderecek şekilde yönlendirdiği bir güvenlik açığıdır.

Bu risk, ağ altyapılarında yanal hareketleri kolaylaştırır ve saldırganların arka uç hizmetleriyle arayüz oluşturmasına veya verileri sızdırmasına olanak tanır.

SSRF’yi test etmek için:

  • HTTP dışı kaynaklara erişmeyi denemek için farklı URL şemalarını (file://, dict://, sftp:// vb. gibi) deneyin.
  • Bir arka uç API’sine ulaşmak için web ön uç isteklerini taklit edin, ancak beklenmedik verilerin döndürülüp döndürülmediğini görmek için istekleri http://localhost/admin veya http://127.0.0.1/admin ile değiştirin.
  • Web sunucularına güvenen yerel veritabanı sunucuları gibi ana bilgisayarlar arasındaki örtülü güven alanlarını belirleyin.
  • SSRF güvenlik açığını gösterebilecek ayrıntılı hata mesajlarını arayın. Örneğin, dahili bir IP girerseniz ve hata dahili bir kaynakla ilgili ayrıntıları ortaya çıkarırsa, bu potansiyel bir risk işaretidir.

Düzenli Web Uygulaması Güvenlik Testinin Önemi

OWASP Top 10’un sürekli olarak vurguladığı gibi, web uygulamalarındaki güvenlik açıkları, kuruluşları veri ihlallerinden itibar kaybına kadar önemli risklere maruz bırakıyor. Önemli olan yalnızca bu güvenlik açıklarını bilmek değil, aynı zamanda bunları düzenli olarak aktif olarak test etmektir.

Her kod güncellemesi, altyapı değişikliği veya yeni özellik eklenmesiyle potansiyel güvenlik açıkları ortaya çıkabilir. Sürekli tetikte olmak çok önemlidir ve bu yalnızca birçok şirketin kutu işaretleme egzersizi olarak gerçekleştirdiği yıllık kalem testlerinin ötesine geçen düzenli testlerle mümkündür.

Geleneksel tek seferlik sızma testlerinin aksine, hizmet olarak pen testi (PTaaS), kötü niyetli aktörlerin bu güvenlik açıklarını istismar etmeden önce güvenlik açıklarını belirlemek için web uygulamalarının sürekli test edilmesini sağlar. Outpost24’ün PTaaS platformu, web uygulamalarını geniş ölçekte güvenli hale getirmek için manuel sızma testinin derinliğini ve hassasiyetini güvenlik açığı taramasıyla birleştirir.

Çözüm, şirket içi test uzmanlarından oluşan yüksek vasıflı bir ekibe doğrudan erişim sunarak, iş mantığı hataları ve otomatik tarayıcıların gözden kaçırdığı arka kapılar da dahil olmak üzere güvenlik açıklarınızın en doğru şekilde görüntülenmesini sağlar. Geliştirmeyi yavaşlatmadan uygulama güvenlik programınızı en üst düzeye çıkarın.

Outpost24’ün PTaaS çözümü hakkında daha fazla bilgi edinin.

Outpost24 sponsorluğunda ve yazılmıştır.



Source link