sans top 20 security vulnerabilities software applications
Bu eğitimdeki örneklerle Yazılım Uygulamalarında SANS'ın En Önemli 20 Kritik Güvenlik Açıklarını öğrenin ve anlayın:
Kelime OLMADAN sıradan bir sözlük kelimesi değil, bunun yerine SysAdmin , Denetim , Ağ , ve Güvenlik .
Bu eğitimde, yazılım programlarında bulabileceğimiz SANS'ın en önemli 20 güvenlik zafiyetini ve bunları azaltmak için neler yapabileceğimizi öğreneceğiz.
Ne öğreneceksin:
- SAN'ların Siber Güvenlik Topluluğu Üzerindeki Etkisi
- Yazılımda SANS En Önemli 20 Kritik Güvenlik Açığı Listesi
- # 1) CWE-119: Hafıza Tampon Hatası
- # 2) CWE-79: Siteler Arası Komut Dosyası
- # 3) CWE-20: Geçersiz Giriş Hatası
- # 4) CWE-200: Hassas Bilgi Pozlama Hatası
- # 5) CWE-125: Sınırların Dışında Okuma Hatası
- # 6) CWE-89: SQL Enjeksiyonu
- # 7) CWE-416: Önceden Serbest Bırakılmış Bellek
- # 8) CWE-190: Tam Sayı Taşma Hatası
- # 9) CWE-352: Siteler Arası İstek Sahteciliği
- # 10) CWE-22: Dizin Geçişi
- # 11) CWE-78: OS Command Injection
- # 12) CWE-787: Sınırların Dışında Yazma Hatası
- # 13) CWE-287: Uygun Olmayan Kimlik Doğrulama Hatası
- # 14) CWE-476: Bir BOŞ İşaretçinin Başvurusunu Kaldırmak
- # 15) CWE-732: Yanlış İzin Ataması
- # 16) CWE-434: Sınırsız Dosya Yükleme
- # 17) CWE-611: XML Varlıkları Aracılığıyla Bilgi Gösterimi
- # 18) CWE-94: Kod Enjeksiyonu
- # 19) CWE-798: Sabit Kodlu Erişim Anahtarı
- # 20) CWE-400: Kontrolsüz Kaynak Tüketimi
- Sıkça Sorulan Sorular
- Sonuç
SAN'ların Siber Güvenlik Topluluğu Üzerindeki Etkisi
Göre OLMADAN , OLMADAN Enstitü, araştırma ve eğitim kuruluşu olarak kurulmuştur. Çeşitli güvenlik programları çok kapsamlıdır ve dünya çapında 165.000'den fazla güvenlik profesyoneli üzerinde olumlu bir etkiye sahiptir.
SANS'tan gelen bu tür bir kapsam ve aldıkları diğer olumlu incelemelerle, onları InfoSec eğitimi ve dünyadaki çeşitli güvenlik sertifikaları için en güvenilir ve açık farkla en büyük organizasyon yaptığını söyleyebiliriz.
Bu makale, yazılımınızı saldırılara karşı savunmasız hale getirebilecek SANS ilk 20 hatasına ve bu hatalara karşı hafifletmek için uygulayabileceğiniz bazı güvenlik kontrollerine odaklanacaktır. 20'den fazla bulabiliriz, ancak en önemli 20 güvenlik açığını tartışacağız.
Yazılımda SANS En Önemli 20 Kritik Güvenlik Açığı Listesi
- CWE-119 : Hafıza Tampon Hatası
- CWE-79 : Siteler Arası Komut Dosyası
- CWE-20 : Doğrulanmamış Giriş Hatası
- CWE-200 : Hassas Bilgi Pozlama Hatası
- CWE-125 : Sınır dışı Okuma Hatası
- CWE-89 : SQL Enjeksiyonu
- CWE-416 : Boş Bellek Hatası
- CWE-190 : Tamsayı Taşma Hatası
- CWE-352 : Siteler Arası İstek Sahteciliği
- CWE-22 : Dizin Geçişi
- CWE-78 : OS Command Injection
- CWE-787 : Sınırların dışında Yazma Hatası
- CWE-287 : Uygun Olmayan Kimlik Doğrulama Hatası
- CWE-476 : NULL İşaretçisinin Başvurusunu Kaldırmak
- CWE-732 : Yanlış İzin Ataması
- CWE-434 : Sınırsız Dosya Yükleme
- CWE-611 : XML Varlıkları Aracılığıyla Bilgi Gösterimi
- CWE-94 : Kod Enjeksiyonu
- CWE-798 : Sabit Kodlu Erişim Anahtarı
- CWE-400 : Kontrolsüz Kaynak Tüketimi
CWE terimi ne anlama geliyor?
Ortak Zayıflık Sayımı (CWE) her zayıflık için atanmış kimlik koduyla birlikte topluluk tarafından kabul edilen bir yazılım ve donanım güvenlik açıkları listesidir. Amaç, tüm bu kusurları düzeltip hafifletebilmek için yazılım ve donanımdaki çeşitli kusurları tespit etmektir.
# 1) CWE-119: Hafıza Tampon Hatası
Bu kusur genellikle SDLC'nin Mimari ve Tasarım, Uygulama, İşletim aşamalarında ortaya çıkar.
Bu arabellek taşması, bir uygulama işlemi bellekte tutabileceğinden daha fazla veriyi depolamaya çalıştığında gerçekleşir. Arabellekler yalnızca belirli bir veri düzeyini depolayabildiğinden ve bu düzeye ulaşıldığında ve aşıldığında, veri o arabellekte bulunan verileri bozabilecek başka bir bellek konumuna akar.
Bu olay bazen bir programlama hatası nedeniyle kazara meydana gelir, ancak sonradan ortaya çıkan sonuç felaket olabilir, çünkü bu veriler silinebilir, gizli bilgiler çalınabilir ve hatta bu arabellek taşması nedeniyle tüm uygulama çökebilir.
Aşağıdaki örnek, 8 bayt depolama ile ayrılmış bir tamponu göstermektedir. Ancak, yürütme için daha fazla veri gönderildiği için 2 bayt aştı.

(resim kaynak )
# 2) CWE-79: Siteler Arası Komut Dosyası
Siteler Arası Komut Dosyası Yazma (XSS), genellikle kötü niyetli bir aktör veya bir saldırgan, web tarayıcıları aracılığıyla yürütülebilen bir web uygulamasına kötü amaçlı veya zararlı komut dosyası enjekte ettiğinde gerçekleşen bir enjeksiyon saldırısıdır. Kötü amaçlı komut dosyası güvenliği ihlal edilen sisteme girdiğinde, farklı kötü amaçlı etkinlikler gerçekleştirmek için kullanılabilir.
Kötü amaçlı etkinliklerin bazıları, oturum bilgilerini içeren çerezler gibi özel bilgilerin kurbanın bilgisayarından saldırganın bilgisayarına aktarılması şeklinde olabilir.
Siteler arası komut dosyası oluşumu:
- Doğrulanmamış ve güvenilir olmayan veriler, web formu isteği aracılığıyla bir web uygulamasına girildiğinde.
- Web uygulaması anında bu kötü amaçlı verileri içeren bir web sayfası çıktığında.
- Bir sayfa oluşturma işlemi sırasında yazılım, HTML ve JavaScript gibi bir web tarayıcısı tarafından yürütülebilen içeriği barındıran verilere göre doğrulama yapamaz.
- Kurban, güvenilmeyen verilerin kullanımıyla enjekte edilen kötü amaçlı komut dosyasını barındıran bir web tarayıcısı aracılığıyla oluşturulan sayfayı bilmeden ziyaret eder.
- Kötü amaçlı komut dosyası, saldırganın web sunucusu tarafından gönderilen bir sayfadan gelir, güvenliği ihlal edilmiş sistem web tarayıcısı daha sonra kötü amaçlı komut dosyasını işlemeye devam eder.
- Bu işlem, bir alandan gelen komut dosyalarının kaynaklara erişemeyeceğini veya kendi alanı dışında başka bir alanda kod çalıştırmamasını şart koşan web tarayıcısının aynı kaynakla ilgili politikasını ihlal ediyor.

(resim kaynak )
# 3) CWE-20: Geçersiz Giriş Hatası
Uygulama girdi alır, ancak işlenmek üzere sisteme kabul edilmesi için gerekli tüm ayrıntılara sahip olup olmadığını doğrulayamaz.
Girdi temizleme söz konusu olduğunda, bu, girdilerin kaynak koduyla işlenmesinin güvenli olduğundan veya diğer bileşenlerle iletişim için gerekli bir girdi olduğunda potansiyel olarak tehlikeli girdileri kontrol etmek için kullanılabilir.
Bu tür girdiler uygun şekilde sterilize edilmediğinde veya doğrulanmadığında, bu, saldırganın ana uygulamanın cömertçe işleyeceği kötü amaçlı bir girdi göndermesinin yolunu açar ve bu, denetim akışında, bir kaynağın keyfi denetiminde veya keyfi kodda değişikliklere yol açar yürütme.
Aşağıdaki resimler, iyi bir uygulamanın komut dosyası veya komutu girdi olarak kabul etmemesi gerektiğini göstermektedir. Bu tür girdiler uygun şekilde sterilize edilmezse, uygulama bunun geçerli bir istek olduğunu düşünerek işleme koyar.


(resim kaynak )
# 4) CWE-200: Hassas Bilgi Pozlama Hatası
Bu durum, uygulama gizli ve hassas bilgileri bilerek ve bilmeyerek bu bilgilere erişim yetkisine sahip olmayan bir saldırgana açıkladığında gerçekleşir.
Farklı hatalar, bu bilgilerin bir saldırgana ifşa edilmesine yol açar. Bu hatanın ciddiyeti, uygulamanın çalıştığı bağlama, ortaya çıkan hassas bilgilerin türüne ve aktörün açığa çıkan bilgilerden ne kazanabileceğine göre değişir.
Aşağıda, ifşa edilebilecek bazı hassas bilgiler bulunmaktadır:
bir test senaryosu nasıl yazılır
- Kişisel mesajlar, finansal veriler, sağlık durumu kayıtları, coğrafi konum veya iletişim bilgileri gibi kişisel bilgiler
- Sistem konfigürasyon detayları ve ortamı, Örneğin, işletim sistemi ve yüklü paketler
- İş Kaydı ve fikri mülkiyet
- Ağ yapılandırma ayrıntıları
- Dahili uygulama durumu
- Mesaj başlıkları gibi meta veriler
Bazen uygulamalarımızda veya web sitelerimizde veritabanı bağlantı hatası, çalışma zamanı hatası ve ağ hatası gibi teknik sorunlar olabilir.
Geliştirme sırasında bu tür hatalar düzgün bir şekilde ele alınmazsa, yani uygulama hata mesajını gösterdiğinde, bir saldırganın aşağıdaki görüntü gibi kötü amaçlı amaçlarla kullanabileceği bilgileri halka gösterebilir.

# 5) CWE-125: Sınırların Dışında Okuma Hatası
Bu genellikle, uygulama arabelleğin sonuna veya başlangıcından önce normal seviyeyi geçen verileri okuduğunda oluşur. Bu, bir saldırgana diğer bellek konumlarından hassas bilgileri okumak için ayrıcalıksız erişim sağlar ve bu da bir sistemin veya uygulamanın çökmesine neden olabilir.
Kod verileri okuduğunda ve bir dizeye uygulanan bir NULL gibi okuma işlemini durduran yerinde bir gösterge olduğunu düşündüğünde kesinlikle bir çökme meydana gelir.
Aşağıdaki kodda, işlev bir dizi dizini konumundan bir değer alır, bu da işlevin girdi parametresidir.

(resim kaynak )
Yukarıdaki koddan, işlevin verilen dizi indeksinin dizinin maksimum uzunluğundan daha az olduğunu doğruladığını, ancak minimum değeri doğrulayamadığını görebiliriz.
Bu doğrulama, negatif bir değerin bir girdi dizisi indeksi olarak kabul edilmesine yol açarak, sınırların dışında bir okumaya neden olur ve bu da hassas belleğe erişim sağlar.
Dizi için gereken maksimum ve minimum aralıkta ise, girdi dizisi indeksinin doğrulanmasına ihtiyaç vardır.
Şimdi aşağıdaki örneği kontrol ederseniz, IF ifadesinin minimum aralık doğrulamasını içerecek şekilde değiştirilmesi gerektiğini göreceksiniz.

# 6) CWE-89: SQL Enjeksiyonu
SQL enjeksiyonu saldırganın, kaynaklara erişmek veya erişim yetkisi olmayan verileri değiştirmek için Webform giriş kutusuna bir Yapılandırılmış Sorgu Dili (SQL) kodu enjekte ettiği bir güvenlik açığı biçimidir.
Bu güvenlik açığı, tasarım, uygulama ve işletim aşamalarında uygulamaya konulabilir.
Bu SQL sorgusunun yaptığı şey, bazı bilgiler için veritabanına yetkisiz bir talepte bulunmaktır. Normal bir giriş işleminde, kullanıcı kimlik doğrulaması için bir Web formu kullanılır. Bir kullanıcı metin kutularına adını ve şifresini girdiğinde, bu değerler bir SELECT sorgusuna eklenir.
Giriş değerleri doğruysa, kullanıcıya uygulamaya veya isteğe erişim izni verilir, ancak değerler yanlışsa erişim reddedilir.
Günümüzde bazı Web formlarında kötü amaçlı girdileri engelleyecek mekanizmalar yoktur, bir saldırgan veri tabanına kötü amaçlı istekler göndermek için girdi kutularını kullanabilir. Bu tek istek, onlara hassas bilgiler içerebilen tüm veritabanına erişim izni verebilir.

# 7) CWE-416: Önceden Serbest Bırakılmış Bellek
Bu sorun, piyasaya sürüldükten sonra belleğe referans verilmesinden kaynaklanır ve bu ciddi bir program çökmesine neden olabilir. Önceden boşaltılan bir belleği kullandığınızda, bunun geçerli verilerin bozulması, kusur zamanlamasına bağlı olarak keyfi kod yürütme gibi olumsuz sonuçları olabilir.
İki yaygın neden şunlardır:
- Yazılım içindeki ve diğer bazı istisnai durumlarda hata koşulları.
- Programın hangi bölümünün boş belleğe neden olduğuna dair bir açıklama yok.
Bu durumda bellek, serbest bırakıldıktan hemen sonra başka bir işaretçiye tahsis edilir. Serbest bırakılan belleğin önceki işaretçisi tekrar kullanılır ve şimdi yeni tahsisin etrafında bir yere işaret eder. Veriler değiştirildiğinde, bu, kullanılan belleği bozabilir ve uygulamanın tanımsız bir şekilde davranmasına neden olabilir.
# 8) CWE-190: Tam Sayı Taşma Hatası
Bir hesaplama bir uygulama tarafından işlendiğinde ve ortaya çıkan değerin tam değerden daha büyük olacağına dair mantıksal bir varsayım olduğunda, tamsayı taşması meydana gelir. Burada bir tamsayı değeri, bir konumda saklanamayan bir değere yükselir.
Bu olduğunda, değer genellikle çok küçük veya negatif bir değer olacak şekilde sarılır. Sarma bekleniyorsa, sorun değil, ancak sarma beklenmedikse güvenlik sonuçları olabilir. Bu senaryo gerçekleştiğinde, sonuç döngüyü, güvenlik kararını, bellek ayırmak için kullanılan ve daha fazlasını yönetmek için kullanıldığı için kritik olarak adlandırılabilir.
Bu zayıflık genellikle düzensiz davranışlara yol açar ve çökmelere neden olabilir. Değer veri için akıştan daha önemliyse, basit bir veri bozulması meydana gelebilir. Ancak sarma, arabellek taşmaları gibi başka koşullara yol açarsa, bellek bozulması olabilir.
Bu sorun, bir saldırgan tarafından rastgele kod çalıştırmak için kullanılabilen arabellek taşmalarını tetikleyebilir. Bu tamsayı taşma hatası, genellikle SDLC'nin Tasarım ve Uygulama aşamalarında sisteme eklenir.

# 9) CWE-352: Siteler Arası İstek Sahteciliği
Bu, bir web uygulamasının, isteğin gerçekten doğru kullanıcıdan gelip gelmediğine bakılmaksızın HTTP isteğini yeterince doğrulamadığı zamandır. Web sunucuları, tüm istekleri kabul etmek ve onlara yanıt vermek üzere tasarlanmıştır.
Bir istemcinin bir veya birkaç oturum içinde birkaç HTTP isteği gönderdiğini varsayalım. Bir web sunucusunun tüm isteklerin gerçek olup olmadığını bilmesi çok zordur ve genellikle işlenir. Bir saldırgan, bir istemciyi özel hazırlanmış bir web sayfasını ziyaret etmeye zorlayabilir ve artık para transferi, e-posta adreslerini değiştirme ve daha pek çok istek gerçekleştirebilir.
Hemen bir saldırganın erişimi olur ve verileri çalabilir ve hatta verileri yok edebilir. Erişimlerini her zaman koruyabilirler ve bittiğinde, istismarlarını açığa çıkarabilecek herhangi bir adli tıp bilgisini önlemek için denetim günlüğünü tehlikeye atabilirler.
Aşağıdaki resim, bir kullanıcıyı gerçekleştirmeyi düşünmediği eylemler yapmaya teşvik eden bir saldırganı göstermektedir.

# 10) CWE-22: Dizin Geçişi
Dizin geçişi veya dosya yolu geçişi, bir saldırganın şu anda bir uygulama çalıştıran sunucuda rastgele dosyaları okumasına olanak tanıyan bir web güvenlik açığıdır.
Bu dosyalar bir uygulama kodu, arka uç sistemleri için kimlik bilgileri ve işletim sistemi dosyaları olabilir. Başka bir senaryoda, bir saldırgan, sunucudaki bu rasgele dosyalara yazarak uygulama verilerini veya davranışını değiştirebilir ve bu onlara sunucunun tam kontrolünü verir.

(resim kaynak )
# 11) CWE-78: OS Command Injection
Bu, aşağı akış bileşenine gönderilen amaçlanan OS komutunun değiştirilmesine yol açabilecek özel öğelerin uygun olmayan şekilde sterilize edilmesiyle ilgilidir. Bir saldırgan, bu kötü amaçlı komutları bir hedef işletim sisteminde çalıştırabilir ve okuması veya değiştirmemesi gereken bir ortama erişebilir.
Bu, her zaman bir saldırganın tehlikeli komutları doğrudan işletim sistemine yürütmesine izin verir.
Bu güvenlik açığı ayrıcalıklı bir programda ortaya çıktığında, saldırganın ortamda izin verilen komutları kullanmasına veya saldırganın sahip olmadığı ayrıcalıklara sahip diğer komutları çağırmasına izin vererek, meydana gelebilecek hasar miktarını artırabilir.

# 12) CWE-787: Sınırların Dışında Yazma Hatası
Bu, uygulama verileri belirlenen arabelleğin sonundan önce veya başlangıcından önce yazdığında gerçekleşir.
Bu olduğunda, sonuç genellikle veri bozulması, sistem veya uygulama çökmesidir. Uygulamanın yaptığı şey, arabellek sınırlarının dışındaki bir bellek konumuna başvuruda bulunmak için kullanılan bir tür işaretçi aritmetiğidir.
# 13) CWE-287: Uygun Olmayan Kimlik Doğrulama Hatası
Bu, bir saldırganın geçerli bir kimliğe sahip olduğunu iddia ettiği, ancak yazılımın iddianın doğruluğunu doğrulayamadığı veya kanıtladığı zamandır.
Bir yazılım, bir kullanıcının oturum açma bilgilerini yanlış bir şekilde doğrular ve sonuç olarak, bir saldırgan uygulama içinde belirli ayrıcalıklar elde edebilir veya hassas verilere erişmelerine ve rastgele kod çalıştırmalarına olanak tanıyan hassas bilgileri ifşa edebilir.
sahte bir e-posta adresine ihtiyacım var
# 14) CWE-476: Bir BOŞ İşaretçinin Başvurusunu Kaldırmak
Bir boş göstericinin başvurusunu geri çekmek, uygulamanın geçerli bir sonuç döndürmesi gereken bir işaretçiyi başvurudan kaldırması, bunun yerine NULL döndürmesidir ve bu bir çökmeye neden olur. Boş göstericinin referansının kaldırılması, yarış koşulları ve bazı programlama hataları gibi birçok kusurdan kaynaklanabilir.
NULL işaretçisi yardımıyla gerçekleştirilen işlemler genellikle arızaya neden olur ve işlemi gerçekleştirme olasılığı çok zayıftır. Bu, saldırganların kötü amaçlı kod yürütmesine yardımcı olur.

(resim kaynak )
# 15) CWE-732: Yanlış İzin Ataması
Bu güvenlik açığı, bir uygulama çok önemli ve kritik bir kaynağa, kötü niyetli bir kullanıcı tarafından erişilecek olan kaynağı açığa çıkaracak şekilde izinler atadığında ortaya çıkar.
Birçok kişiye bir kaynak için izin verdiğinizde, bu, hassas bilgilerin bir saldırgan tarafından ifşa edilmesine veya değiştirilmesine yol açabilir. Kaynaklara izin atamasına yönelik bu tür bir yaklaşıma karşı herhangi bir kontrol yapılmazsa, bir program yapılandırması veya bazı hassas veriler yanlış ele alınırsa çok feci bir sona yol açabilir.
# 16) CWE-434: Sınırsız Dosya Yükleme
Bu güvenlik açığı, uygulama dosyaları uygulamaya yüklemeden önce dosya türlerini doğrulamadığında ortaya çıkar. Bu güvenlik açığı dilden bağımsızdır ancak genellikle ASP ve PHP dilinde yazılmış uygulamalarda görülür.
Tehlikeli dosya türü, uygulama ortamında otomatik olarak işlenebilen bir dosyadır.
Aşağıdaki program bir PHP dosyasının yüklenmesini göstermektedir. Dosya türü webroot dizinine yüklenmeden önce doğrulanmamış ve doğrulanmamış. Bu zayıflığın bir sonucu olarak, bir saldırgan rastgele bir PHP dosyası yükleyebilir ve yüklenen dosyaya doğrudan erişerek onu çalıştırabilir.


# 17) CWE-611: XML Varlıkları Aracılığıyla Bilgi Gösterimi
Bir XML belgesi işlenmek üzere bir uygulamaya yüklendiğinde ve bu belge, amaçlanan konumdan farklı başka bir konumdaki başka bir belgeye çözümlenen tek tip kaynak tanımlayıcıya sahip XML varlıkları içerdiğinde. Bu anormallik, uygulamanın çıktısına yanlış belgeler eklemesine neden olabilir.
XML belgeleri bazen XML varlıklarını ve diğer özellikleri tanımlamak için kullanılan bir Belge Türü Tanımı (DTD) içerir. DTD aracılığıyla, tek tip kaynak tanımlayıcı bir ikame dizesi biçimi olarak hizmet edebilir. XML ayrıştırıcısının yapacağı şey, tek tip kaynak tanımlayıcısında bulunanlara erişmek ve bu içerikleri yürütmek için XML belgesine geri girmektir.

(resim kaynak )
# 18) CWE-94: Kod Enjeksiyonu
Kullanıcı verilerinde kod sözdiziminin varlığı, saldırganın planlanan kontrol davranışını değiştirme ve rastgele kod çalıştırma olasılığını artırır. Bu güvenlik açığı, 'enjeksiyon zayıflıkları' olarak adlandırılır ve bu zayıflık, bir veri kontrolünün kullanıcı tarafından kontrol edilmesini sağlayabilir.
Bu güvenlik açığı, yazılımın güvenilmeyen verilerin koda girmesine izin verdiği ve hem kod segmentinin davranışını hem de sözdizimini olumsuz etkileyebilecek özel karakterlerin doğrulanmasını gerçekleştirmediği bir senaryoyu gösterir.
Kısacası, bir saldırgan bir tür rastgele kod enjekte edebilir ve bunları uygulama içinde çalıştırabilir. Aşağıdaki PHP kodu, güvenilmeyen verilerde eval () işlevinin kullanımını gösterir. Aşağıdaki kodda, bir saldırgan koda, daha sonra yazılımda çalıştırılacak olan 'param' parametresinin keyfi kodunu geçirebilir.

Aşağıdaki örnek, phpinfo () işlevi. Bu güvenlik açığından başka şekilde, sistem () çağrısı aracılığıyla hedef yazılımda rastgele işletim sistemi komutları yürütmek için daha fazla yararlanılabilir.

# 19) CWE-798: Sabit Kodlu Erişim Anahtarı
Bu, parola ve erişim anahtarının, gelen kimlik doğrulama amacı ve bazı harici bileşenlere giden iletişim ve dahili verilerin şifrelenmesi için doğrudan uygulamaya sabit kodlanmasıdır. Sabit kodlu oturum açma ayrıntıları genellikle, bir saldırganın yazılım yöneticisi tarafından yapılandırılan kimlik doğrulamasını atlamasının yolunu açan güvenlik açığına neden olur.
Sistem yöneticisi her zaman bu güvenlik açığını tespit etmekte ve düzeltmekte çok zorlanacaktır.
Bu zayıflığın iki ana yönü vardır:
- Gelen : Uygulama, giriş kimlik bilgilerini sabit kodlanmış ayrıntılara göre doğrulayan bir kimlik doğrulama sistemi içerir.
- Giden : Uygulama başka bir sisteme bağlanır ve diğer sisteme bağlanma ayrıntıları sisteme kodlanmıştır.
Gelen akışında, her zaman oluşturulan varsayılan bir yönetici hesabı vardır ve bu hesaba erişmek için gerekli kimlik bilgileri uygulamaya sabit olarak kodlanacak ve bu varsayılan yönetici hesabıyla ilişkilendirilecektir.
Sabit kodlanmış ayrıntılar, uygulamanın her kurulumunda genellikle aynı şeydir ve bu, hiç kimse tarafından değiştirilemez veya devre dışı bırakılamaz. Uygulamayı manuel olarak değiştirebilmeleri dışında sistem yöneticilerinin bile bu hakkı yoktur. Parola halka ifşa edilirse, saldırgan tüm uygulamaya erişebilir ve kendi çıkarı için parolayı değiştirebilir.
Uygulamanın tüm kurulumları aynı şifreye sahip olduğu için, ayrı kuruluşlarda kurulsa bile bu, kuruluşun tüm sınırlarında çok büyük saldırılara neden olabilir, Örneğin, Uygulamaya etrafa yayılacak bir solucan enjekte etmek.
Giden akışı, yalnızca arka uç hizmetle kimlik doğrulaması yapan ön uç sistemler için geçerlidir. Arka uç hizmeti, kolayca bulunabilen bir sabit kod veya sabit şifre gerektirebilir. Programcının yaptığı şey, bu arka uç kimlik bilgilerini ön uç yazılıma sabit bir şekilde kodlamaktır. Bu uygulamanın herhangi bir kullanıcısı şifreyi çıkarabilir.
Parolanın ve erişim anahtarının içine gömülü olduğu herhangi bir istemci tarafı yazılım, genellikle sabit kodlanmayanlardan daha fazla tehdit oluşturur, çünkü bir ikiliden bir parolanın çıkarılması genellikle çok kolaydır.
# 20) CWE-400: Kontrolsüz Kaynak Tüketimi
Bu güvenlik açığı, uygulama tahsisini düzgün bir şekilde kontrol etmediğinde ve sınırlı bir kaynağın bakımını yapmadığında ortaya çıkar; bu, saldırganın tüketilen kaynak miktarını etkileyebilmesine olanak tanır ve sonuçta mevcut kaynakların tükenmesine yol açar.
Sınırlı kaynakların bir kısmı bellek, dosya sistemi depolaması, veritabanı bağlantı havuzu girişleri ve CPU'yu içerir.
Bir saldırganın bu sınırlı kaynakların tahsisini tetikleyebileceğini ve kaynakların sayısının veya boyutunun kontrol edilmediğini, ardından saldırganın mevcut tüm kaynakları tüketen hizmet reddi yoluyla kaosa neden olabileceğini varsayalım.
Bu gerçekleştiğinde, geçerli kullanıcıların uygulamaya erişmesini engelleyecektir ve bu da ortam üzerinde her zaman olumsuz bir etkiye sahip olacaktır. Örneğin, uygulama belleği bir tükenme saldırısından geçtiğinde, bu tüm uygulamayı ve ana bilgisayar işletim sistemini yavaşlatabilir.
Kaynakların tükenmesine neden olabilecek üç farklı durum şunlardır:
- Tahsis edilen kaynakların sayısı için kısıtlama sıkıntısı
- Kapatma aşamasına gelmeden önce bir kaynağa yapılan tüm referansları kaybetmek
- İşlemden sonra bir kaynağın kapatılamaması / iade edilememesi
Kaynak tükenmesi sorunu genellikle aşağıdaki senaryoların yanlış uygulanmasının bir sonucudur:
- Hata koşulları ve diğer istisnai durumlar.
- Programın hangi bölümünün kaynağı serbest bıraktığı konusunda karışık bir tepki var.
Aşağıdaki örnek, bu güvenlik açığının doğasını göstermeye ve riski azaltmak için kullanılabilecek yöntemleri açıklamaya yardımcı olur.
Aşağıdaki örnek güvenlik açığını açıklamaktadır:

en iyi veri kurtarma yazılımı windows 10
(resim kaynak )
Bu program kaç bağlantı yapıldığını izlemez ve mevcut bağlantı sayısını sınırlamaz. Çatallama, bir saldırganın çok sayıda bağlantı yaparak sistemin CPU'su, işlemleri veya belleği tüketmesine neden olmak için kullandığı yollardan yalnızca biridir.
Bir saldırganın yaptığı şey, diğerlerinin sisteme uzaktan erişmesini engelleyerek mevcut tüm bağlantıları tüketmektir.
Sıkça Sorulan Sorular
S # 1) SANS ne anlama geliyor?
Cevap: SANS, SysAdmin, Audit, Network ve Security'nin kısaltmasıdır.
S # 2) Bazı güvenlik açığı örneklerini listeleyin.
Cevap: Örnekler aşağıdaki gibidir:
- Yazılım Güvenlik Açıkları
- Güvenlik Duvarı Güvenlik Açıkları
- Ağ Güvenlik Açıkları
- İşletim Sistemi Güvenlik Açıkları
- Web Sunucusu Güvenlik Açıkları
- Veritabanı Güvenlik Açıkları
S # 3) Tehditler ve güvenlik açıkları arasındaki fark nedir?
Cevap: Tehdit sistemdeki mevcut güvenlik açıkları yoluyla bir bilgisayar sistemine veya uygulamaya zarar verme girişiminde kötü niyetli veya istenmeyen bir eylem gerçekleştirme olasılığıdır. Misal: fidye yazılımı.
Güvenlik açıkları bir sistemde var olan ve bir saldırganın bir kuruma zarar vermek için istenmeyen veya yetkisiz erişime izin verebilecek zayıflıklardır. Misal: Güvenlik duvarı yanlış yapılandırması.
S # 4) En yaygın güvenlik açıkları nelerdir?
Cevap: Bunlar aşağıdaki gibidir:
- SQL Enjeksiyonu
- Siteler Arası Komut Dosyası
- Yanlış Güvenlik Yapılandırması
- Hassas Verilerin İfşası
- Bozuk Kimlik Doğrulama
- Oturum Yönetimi
Sonuç
Bu SANS ilk 20 güvenlik açığı listesi bir kural veya politika değil, yazılım güvenlik açıklarından nasıl kaçınılacağı konusunda bize yardımcı olacak bir kılavuzdur. İster bir geliştirici ister güvenlik uzmanı olalım, bir aktörün kötü niyetli bir eylemi gerçekleştirmesi için bir arka kapı oluşturabilecek uygulamamızda güvenlik açıklarına yol açabilecek herhangi bir hatayı önlemek için neler yapılabileceğine ilişkin bu kılavuzu takip etmek artık bize kaldı.
Önerilen Kaynaklar
- Güvenlik Testi (Tam Kılavuz)
- Acunetix Web Güvenlik Açığı Tarayıcısı (WVS) Güvenlik Test Aracı (Uygulamalı İnceleme)
- Ağ Güvenlik Açığı Değerlendirmesi ve Yönetimi Kılavuzu
- 2021'de En Güçlü 10 Güvenlik Açığı Değerlendirme Tarama Aracı
- Güvenlik Açığı Değerlendirmesi ve Sızma Testi Farkı
- Jenkins Güvenliği: Güvenliği ve Proje Güvenliği Matrisini Etkinleştirme
- Yazılımı Test Ederken Kaçınılması Gereken En Önemli 4 Siber Güvenlik Hatası
- 10 EN İYİ Ağ Güvenliği Yazılımı (YALNIZCA 2021 EN İYİ SEÇİCİ)