Yaygın Web Uygulama Saldırıları
Web uygulamaları, erişilebilirlikleri ve sıklıkla işledikleri hassas veriler nedeniyle saldırganların giderek daha fazla hedefi haline geliyor.Dizin Gezintisi
Genel bakış
Dizin geçişi, yol geçişi olarak da bilinir, bir saldırganın bir web uygulamasının amaçlanan dizin yapısı dışında depolanan dosyalara ve dizinlere erişmesine olanak tanıyan bir güvenlik açığıdır. Giriş parametrelerini değiştirerek, bir saldırgan hassas dosyalara erişmek için dosya sisteminde gezinebilir.Nasıl Çalışır
Saldırı genellikle dizin ağacında yukarı doğru hareket etmek gibi dizileri kullanmayı içerir. Örneğin, bir web uygulamasının görüntülenecek bir dosyayı belirten bir URL parametresi varsa, örneğin:../
Bir saldırgan isteği şu şekilde değiştirebilir:
Bu istek, Unix tabanlı sistemlerdeki bir dosyaya erişmeye çalışır ve kullanıcı hesaplarına ilişkin hassas bilgileri ifşa etme potansiyeline sahiptir.
Önleme Stratejileri
- Giriş Doğrulaması : Kullanıcı girdilerinin sıkı doğrulamasını uygulayın. Yalnızca önceden tanımlanmış dosya adlarına izin veren bir beyaz liste yaklaşımı kullanın.
- Kanonik Yol Doğrulaması : Kullanıcı tarafından sağlanan dosya adlarının mutlak yolunu çözün ve bunların beklenen temel dizinle başladığından emin olun.
- Erişim Kontrol Listeleri (ACL'ler) : Erişimi sınırlamak için kullanıcı rollerine göre dosya ve dizinlere katı izinler ayarlayın.
Dosya Dahil Etme Güvenlik Açıkları
Genel bakış
Dosya dahil etme güvenlik açıkları, bir uygulama kullanıcıların uygun doğrulama veya kısıtlamalar olmadan sunucunun dosya sisteminden dosya eklemesine izin verdiğinde ortaya çıkar. Bu, bir saldırganın yerel sunucudan dosya eklemesi anlamına gelen Yerel Dosya Dahil Etme (LFI) veya bir saldırganın harici sunuculardan dosya eklemesi anlamına gelen Uzak Dosya Dahil Etme (RFI) ile sonuçlanabilir.Nasıl Çalışır
Kullanıcı tarafından belirtilen dosyaları içeren bir PHP uygulamasını düşünün:Bir saldırgan şuna benzer bir URL sağlarsa:
Bu, veritabanı kimlik bilgilerini içeren hassas yapılandırma dosyalarını eklemelerine olanak tanıyabilir. RFI senaryolarında, uzaktan dosya ekleme etkinleştirilirse, bir saldırgan şunları kullanabilir:
Bu, harici bir sunucuda barındırılan kötü amaçlı kodun çalıştırılmasına neden olur.
Önleme Stratejileri
- Beyaz Liste Dosya Adları : Dahil edilmek üzere izin verilen dosyaların bir listesini tutun ve kullanıcı girdisini bu listeye göre doğrulayın.
- Include İfadelerinde Kullanıcı Girişinden Kaçının : Kullanıcı tarafından sağlanan girişi doğrudan dahil etmek yerine, önceden tanımlanmış şablonları veya statik dosyaları kullanmayı düşünün.
- Hata İşleme : Kullanıcılara ayrıntılı hata mesajlarının gösterilmesini önlemek için sağlam hata işleme uygulayın.
Dosya Yükleme Güvenlik Açıkları
Genel bakış
Dosya yükleme güvenlik açıkları, bir uygulama kullanıcıların içerik veya türlerini yeterli şekilde doğrulamadan dosya yüklemesine izin verdiğinde ortaya çıkar. Bu, sunucuda kötü amaçlı dosyaların yürütülmesine ve veri ihlallerine veya sunucunun tehlikeye atılmasına yol açabilir.Nasıl Çalışır
Bir web uygulaması sıkı denetimler olmadan dosya yüklemelerini kabul ettiğinde, bir saldırgan zararsız bir dosya türü (örneğin, bir resim) olarak gizlenmiş bir betiği yükleyebilir. Örneğin:Yüklenen dosya türü düzgün bir şekilde doğrulanmazsa, bir saldırgan . adlı bir PHP kabuk betiği yükleyebilir .
upload.phpshell.php
Önleme Stratejileri
- Dosya Türü Doğrulaması : Kabul edilebilir türlerin (örneğin, , ) bulunduğu bir beyaz listeye göre hem dosya uzantılarını hem de MIME türlerini kontrol edin.
.jpg
.png
- İçerik Taraması : Yüklenen dosyaları işlemeden önce kötü amaçlı yazılımlara karşı taramak için antivirüs yazılımları veya kütüphaneleri kullanın.
- Yürütme İzinlerini Kısıtla : Yüklenen dosyaları yürütme izinleri olmayan dizinlerde (örneğin, web kökü dışında) saklayın ve öngörülebilir URL'ler üzerinden doğrudan erişimi önlemek için bunları benzersiz tanımlayıcılarla yeniden adlandırın.
Komut Enjeksiyonu
Genel bakış
Komut enjeksiyonu güvenlik açıkları, saldırganların komut yürütme işlevlerine kötü amaçlı girdi enjekte etmelerine olanak tanır ve bu da sunucuda keyfi komutlar yürütmelerini sağlar. Bu, yetkisiz erişime, veri kaybına veya sistemin tamamen tehlikeye atılmasına yol açabilir.Nasıl Çalışır
Bir web uygulamasının uygun bir temizleme işlemi yapmadan sistem komutlarında kullanıcı girdisini kullandığı bir senaryoyu ele alalım:Bir saldırgan, şu tür girdiler sağlayarak bunu istismar edebilir:
Bu hem ping komutunu çalıştırır hem de kabuk komutunun yorumlanması nedeniyle dizin içeriklerini listeler.
Önleme Stratejileri
- Giriş Temizleme : Kullanıcı girdilerini sistem komutlarında kullanmadan önce her zaman temizleyin ve doğrulayın.
- Güvenli API'leri kullanın : Mümkün olduğunca doğrudan komut yürütmeyi soyutlayan yüksek seviyeli API'leri tercih edin.
- En Az Ayrıcalık İlkesi : Uygulamaları işlevleri için gereken en az izinlerle çalıştırın. Sistemle etkileşimde bulunan kullanıcılar ve işlemler için erişim haklarını sınırlayın.