Blog
Veri analizi, veri işleme, büyük veri, yapay zeka ve benzeri konular için kaynak niteliğinde olan yazılar

Web Dünyasındaki En Yaygın 10 Güvenlik Açığı-1

OWASP (Open Web Application Security Project - Açık Web Uygulama Güvenliği Projesi), yazılım ve web uygulamalarının güvenliğini artırmaya hedefleyen, kar amacı gütmeyen bir kuruluştur.

Çeşitli güvenlik kuruluşlarından gelen verilere dayalı olarak en önemli web güvenlik açıklarının bir listesini yayınlar.

Web güvenlik açıkları, güvenlik açığının istismar edilebilmesinin kolaylık derecesi, tespit edilebilirlik ve yazılım üzerindeki etkisine göre önceliklendirilir.

  • Güvenlik açığının istismar edilebilmesinin kolaylık derecesi (Exploitability): Güvenlik açığını istismar edebilmek için ne gerekli? Saldırının gerçekleştirilebilmesi için sadece web tarayıcısı gerekiyorsa yüksek, gelişmiş programlama ve gelişmiş araçlar gerekiyorsa düşük exploitability var demektir.
  • Tespit edilebilirlik (Detectability): Tehdidi tespit edebilmek kolay mı? Açığı tespit etmek için sadece URL, Form veya Hata mesajında ​​görüntülenen bilgiler gerekiyorsa yüksek, kaynak kodunun incelenmesi gerekiyorsa düşük detectability var demektir.
  • Etki veya Hasar: Güvenlik açığı ortaya çıktığında veya saldırıya uğradığında sisteme ne kadar zarar verecek? Sistemin çökmesi ile sonuçlanıyorsa yüksek, herhangi bir zarar vermiyorsa düşük etki veya hasar var demektir.

OWASP’ın açıkladığı en bilinen 10 güvenlik açığının temel amacı, geliştiricileri, tasarımcıları, yöneticileri, mimarları ve kuruluşları en önemli güvenlik açıkları konusunda eğitmektir.

1. SQL Enjeksiyonu (SQL Injection)

SQL Enjeksiyonu, bir saldırganın kullanıcı tarafından sağlanan verileri manipüle ederek arka uç SQL ifadelerini değiştirmesine olanak tanıyan bir güvenlik açığıdır.

Enjeksiyon, kullanıcı girdisi komut veya sorgunun bir parçası olarak bir yorumlayıcıya gönderildiğinde ve yorumlayıcıyı istenmeyen komutları yürütmesi için kandırdığında ve yetkisiz verilere erişim sağladığında meydana gelir.

Etkileri:

  • Bir saldırgan, savunmasız alanlara kötü amaçlı içerikleri enjekte edebilir.
  • Kullanıcı Adları, Parolalar vb. Gibi hassas veriler veritabanından okunabilir.
  • Veritabanı verileri değiştirilebilir (Ekle / Güncelle / Sil).
  • Veritabanı üzerinde yönetim işlemleri yapılabilir.

Muhtemel Saldırı Alanları:

  • Giriş Alanları (Oturum Açma, Kayıt, Mesaj, Yorum Alanları)
  • Veritabanıyla etkileşime giren URL'ler.

Örnekler:

  • Oturum Açma Sayfasında SQL enjeksiyonu. Geçerli kimlik bilgilerine sahip olmadan bir uygulamada oturum açma.

Oturum açma bilgilerinden "Kullanıcı Adı" tespit edildiyse ve gerekli önlem alınmadıysa, aşağıdaki bilgi "Şifre" kısmına yazılarak, gönderilen verinin veritabanında eşleşmesi sağlanabilir; bu durumda yazılan şifre SQL ile veritabanında kontrol edildiğinde zafiyet kullanılmış olur.

Kullanıcı adı: kullanici

Şifre: 1=1’ or pass123

Bu durumda muhtemel SQL şu şekilde olacaktır.

SELECT * FROM Users WHERE User_Name = kullanici AND Password = 1=1' or pass123;

Bu durumda kesme işaretinden sonraki bölümü dikkate almayacak ve 1=1 ibaresi TRUE olacağı için de sisteme girişe izin verecektir.

Öneriler:

  • Giriş alanları için beyaz liste (Sadece kabul edilecek veri tipi ve özelliklerini içeren liste) oluşturun.
  • Saldırgan için yararlı olabilecek ayrıntılı hata mesajlarını görüntülemekten kaçının.

2. Siteler Arası Komut (Cross Site Scripting)

Siteler Arası Komut (Cross Site Scripting) kısaca XSS olarak bilinir.

XSS güvenlik açıkları, istemci tarafında, yani sunucu tarafında değil, kullanıcı tarayıcısında yürütülen bir sayfaya gömülü komut dosyalarını çalıştırmayı hedefler. Bu açıklar, güvenilmeyen verilerin alınıp uygun doğrulama olmadan web tarayıcısına gönderildiğinde ortaya çıkabilir. Tarayıcı komut dosyasının güvenilir olup olmadığını bilemeyeceği için komut dosyası çalıştırılır ve saldırgan oturum tanımlama bilgilerini ele geçirebilir, web sitelerini tahrif edebilir veya kullanıcıyı istenmeyen ve kötü niyetli web sitelerine yönlendirebilir.

XSS, saldırganın komut dosyalarını kurbanın tarayıcısında çalıştırmasına izin veren bir saldırı türüdür.

Etkileri:

Bu güvenlik açığından yararlanan bir saldırgan, uygulamaya komut dosyaları ekleyebilir, oturum tanımlama bilgilerini çalabilir, web sitelerini tahrif edebilir ve kurbanın makinelerinde kötü amaçlı yazılım çalıştırabilir.

Muhtemel Saldırı Alanları:

  • Giriş Alanları (Oturum Açma, Kayıt, Mesaj, Yorum Alanları)
  • Veritabanıyla etkileşime giren URL'ler.

Örnekler:

1. http://www.yoursite.com/anasayfa? "< script > alert (" you are hacked! ")

Yukarıdaki komut dosyası bir tarayıcıda çalıştırıldığında, site XSS'ye açıksa bir mesaj kutusu görüntülenir. Daha ciddi saldırılarda, oturum tanımlama bilgileri görüntülenebilir veya depolanabilir.

2. http://www.yoursite.com/search.php?txtSearch< iframe>< /iframe> < src 500="" google.com="" height="" width="500" >

Yukarıdaki komut dosyası çalıştırıldığında, tarayıcı http://google.com'u gösteren bir “iframe” yükleyecektir.

Öneriler:

  • Giriş alanları için beyaz liste (Sadece kabul edilecek veri tipi ve özelliklerini içeren liste) oluşturun.
  • Giriş Çıkış verilerinin temizlenerek gönderilmesini (Sanitize) sağlayın.