Güvenli Olmayan API veya Kitaplık

OWASP kategorisi: MASVS-CODE: Kod Kalitesi

Genel Bakış

Güvenli olmayan API'lerin veya kitaplıkların kullanılması, uygulamanın güvenlik duruşunu önemli ölçüde azaltır. Bu bağımlılıkların herhangi birinde güvenlik ihlali olması, saldırganın ortadaki adam (MitM) ve uzaktan kod yürütme (RCE) gibi geniş bir saldırı yelpazesi gerçekleştirmek için çeşitli vektörlerden yararlanmasına olanak tanır.

Güvenli olmayan bağımlılıkları uygulama tehdidi, geliştiriciler güvenlik değerlendirmelerini ve güvenlik açığı testlerini Yazılım Geliştirme Yaşam Döngüsü'ne (SDLC) entegre etmediğinde veya bazı durumlarda uygulama bağımlılıkları için otomatik bir güncelleme politikası uygulamadığında ortaya çıkar.

Bağımlılık istismarı genellikle savunmasız kitaplıkları aramak için uygulama ikilisinin (.apk) analiz edilmesiyle başlar. Bu noktada, daha önce keşfedilmiş ve potansiyel olarak istismar edilebilecek güvenlik açıklarını ortaya çıkarmak için Açık Kaynak İstihbaratı (OSINT) gerçekleştirilir. Saldırganlar daha sonra, genel olarak açıklanan güvenlik açığı bilgilerinden (ör. genel güvenlik açıkları ve riskler [CVE'ler]) yararlanarak başka saldırılar gerçekleştirebilir.

Etki

Güvenli olmayan bağımlılıkların başarılı bir şekilde kötüye kullanılması, uzaktan kod yürütme (RCE), SQL eklemeleri (SQLi) veya siteler arası komut dosyası çalıştırma (XSS) gibi çok çeşitli saldırılara yol açabilir. Bu nedenle, genel etki doğrudan üçüncü taraf yazılımlarının neden olduğu ve saldırganların yararlanabileceği güvenlik açığı türüyle ilgilidir. Güvenlik açığı olan bağımlılıkların başarılı bir şekilde kötüye kullanılmasının olası sonuçları arasında veri ihlalleri veya hizmet kullanılamazlığı yer alır. Bu durum, itibar ve ekonomik ciro üzerinde önemli bir etkiye yol açabilir.

Risk azaltma önlemleri

Derinlemesine savunma

Daha güçlü bir güvenlik duruşu sağlamak ve uygulamanın saldırı yüzeyini azaltmak için aşağıda listelenen önlemlerin birlikte uygulanması gerektiğini unutmayın. Tam yaklaşım her zaman vaka bazında değerlendirilmelidir.

Bağımlılık güvenlik açığı değerlendirmeleri

Üçüncü taraf kodundaki güvenlik açıklarını tespit etmek için geliştirme yaşam döngüsünün başında bağımlılık doğrulaması uygulayın. Bu aşamada, şirket içinde geliştirilmeyen kodun üretim ortamlarında kullanıma sunulmadan önce güvenli olup olmadığı test edilir. Uygulamanın güvenlik durumunu iyileştirmek için yazılım geliştirme yaşam döngüsünde statik uygulama güvenliği testi (SAST) ve dinamik uygulama güvenliği testi (DAST) araçları uygulanarak doğrulama tamamlanabilir.

Bağımlılıkları sürekli olarak güncelleme

Koda yerleştirilmiş tüm bağımlılıkları sürekli olarak güncellediğinizden her zaman emin olun. Bu amaçla, üçüncü taraf bir bileşen yeni bir güvenlik yaması yayınladığında üretime gönderilen otomatik güncellemelerin uygulanması önerilir.

Uygulama sızma testi gerçekleştirme

Düzenli olarak sızma testleri yapın. Bu tür testler, tescilli kodu ve/veya üçüncü taraf bağımlılıklarını etkileyebilecek bilinen güvenlik açıklarını ortaya çıkarmayı amaçlar. Ayrıca, güvenlik değerlendirmeleri genellikle bilinmeyen güvenlik açıklarını (sıfır gün) ortaya çıkarır. Sızma testleri, geliştiricilere uygulamanın mevcut güvenlik durumuyla ilgili bir anlık görüntü sağladığı ve ele alınması gereken, istismar edilebilir güvenlik sorunlarına öncelik vermelerine yardımcı olduğu için faydalıdır.

Kaynaklar