OWASP Top 10 Güvenlik Riskleri ve Açıkları


Bu yazımda sizlere OWASP tarafından yayınlanan en önemli 10 güvenlik açıklığından bahsedeceğim. Konuya başlamadan önce sizlere biraz OWASP hakkında bilgi vermek istiyorum.

OWASP Nedir?

OWASP, web uygulama güvenliği alanında makaleler, metodolojiler, dokümantasyon, araçlar ve teknolojiler üreten çevrimiçi bir topluluk olan Açık Web Uygulaması Güvenlik Projesi (Open Web Application Security Project) anlamına gelir.

OWASP Top 10 Nedir?

OWASP Top 10, en yaygın 10 uygulama güvenlik açığının listesidir. Ayrıca risklerini, etkilerini ve karşı önlemlerini de gösterir. Her üç veya dört yılda bir güncellenir.

2020 yılı için OWASP Top 10 güvenlik açıklıkları şunlardır:

  1. Injection
  2. Broken Authentication
  3. Sensitive Data Exposure
  4. XML External Entities (XXE)
  5. Broken Access control
  6. Security misconfigurations
  7. Cross Site Scripting (XSS)
  8. Insecure Deserialization
  9. Using Components with known vulnerabilities
  10. Insufficient logging and monitoring

1) Injection (Enjeksiyon)

SQL, NoSQL, OS ve LDAP gibi uygulamalarda gerçekleşen injection kusurları , güvenilmeyen verilerin bir komutun veya sorgunun parçası olarak bir interpreter’a yani derleyiciye gönderildiğinde ortaya çıkar. Saldırganın zararlı input(girdi) değerleri, interpreter’da (yorumlayıcıyı) istenmeyen komutları çalıştırması veya uygun yetkilendirme olmadan yetkisi dışındaki verilere erişmesini sağlar.

İstismar Edilme: 3Yaygınlık: 2Tespit Edilme: 3Teknik: 3

Nasıl Önleyebiliriz?

  • Interpreter kullanımını tamamen önleyen veya parametreli bir arayüz sağlayan güvenli bir API kullanmak veya Nesne İlişkisel Eşleme Araçlarını (ORM’ler) kullanmak için geçiş yapmaktır.
  • Sunucu tarafı input(girdi) değerlerinin kontrolünü sağlayın.
  • Dinamik sorgular için, interpreter’a özgü kaçış sözdizimini kullanarak özel karakterlerden kendinizi koruyun.
  • SQL injection durumunda kayıtların toplu olarak ifşa edilmesini önlemek için sorgularda “LIMIT” ve diğer SQL kontrollerini kullanın.

2) Broken Authentication (Yanlış Kimlik Doğrulama)

Kimlik doğrulama ve oturum yönetimiyle ilgili mekanizmalar genellikle yanlış uygulanır veya yanlış ayarlanır. Bunun sonucunda saldırganlar; parolaları, anahtarları veya oturum token’lerini ele geçirmesi kolaylaşır. Kullanıcıların kimliklerini geçici veya kalıcı olarak ele geçirerek uygulamayı exploit(istismar etmesi) etmesi kolaylaşır.

İstismar Edilme: 3Yaygınlık: 2Tespit Edilme: 2Teknik: 3

Nasıl Önleyebiliriz?

  • Mümkün olduğunda, çok faktörlü kimlik doğrulama uygulayın.
  • Özellikle yönetici kullanıcılar için herhangi bir varsayılan kimlik bilgisi ile göndermeyin veya dağıtmayın.
  • Zayıf şifre kontrolleri uygulayın.
  • Başarısız oturum açma girişimlerini sınırlayın. Hata log’larını saklayın ve yöneticileri uyarın.
  • Oturum kimlikleri URL’de olmamalı, güvenli bir şekilde saklanmamalı ve çıkış, boşta ve mutlak zaman aşımlarından sonra geçersiz kılınmalıdır.

3) Sensitive Data Exposure (Veri İfşası)

Çoğu web uygulaması hassas verileri gerektiği gibi korumaz. Saldırganlar, kredi kartı sahtekarlığı, kimlik hırsızlığı veya diğer suçları işlemek için bu tür zayıf korunan verileri çalabilir veya değiştirebilir. Beklemede veya aktarım sırasında şifreleme gibi ekstra koruma olmadan hassas veriler tehlikeye atılabilir ve tarayıcıyla değiştirilirken özel önlemler gerektirir.

İstismar Edilme: 2Yaygınlık: 3Tespit Edilme: 2Teknik: 3

Nasıl Önleyebiliriz?

  • Bir uygulama tarafından işlenen, saklanan veya iletilen verileri sınıflandırın. Gizlilik yasalarına, yasal gerekliliklere veya iş gereksinimlerine göre hangi verilerin hassas olduğunu belirleyin
  • Sınıflandırmaya göre kontroller uygulayın.
  • Hassas verileri gereksiz yere saklamayın. Saklanmayan veriler çalınamaz.
  • Beklemede olan tüm hassas verileri şifrelediğinizden emin olun.
  • Güncel ve güçlü standart algoritmalar, protokoller ve anahtarların yerinde olduğundan emin olun; uygun anahtar yönetimi kullanın.
  • Hassas veriler içeren yanıtlar için önbelleğe almayı devre dışı bırakın.

4) XML External Entities (XXE)

Eski veya yanlış configure edilmiş xml parserlarından kaynaklanıyor. Saldırgan bu zafiyeti kullanarak sunucuya zararlı bir xml dosyası göndererek sunucudan dosya okuyabilir, kod çalıştırabilir durumuna geliyor.

İstismar Edilme: 2Yaygınlık: 2Tespit Edilme: 3Teknik: 3

Nasıl Önleyebiliriz?

  • Mümkün olduğunda, JSON gibi daha az karmaşık veri formatları kullanın ve hassas verilerin serileştirilmesinden kaçının.
  • Uygulama tarafından veya temel alınan işletim sisteminde kullanılan tüm XML işlemcilerini ve kütüphanelerini güncel tutun.
  • XML veya XSL dosya yükleme işlevinin XSD doğrulaması veya benzeri bir yöntem kullanarak gelen XML’i doğruladığını doğrulayın.

5) Broken Access Control (Yanlış Giriş Kontrolü)

Kimliği doğrulanmış kullanıcıların sistemde yapabileceği olaylar ve yapamayacağı olaylar genellikle gerektiği gibi doğru ayarlanmaz. Saldırganlar, diğer kullanıcıların hesaplarına erişmek, hassas dosyaları görüntülemek, diğer kullanıcıların verilerini değiştirmek, erişim haklarını değiştirmek vb. Gibi yetkisiz işlevlere ve / veya verilere erişmek için bu kusurları kullanabilir.

İstismar Edilme: 2Yaygınlık: 2Tespit Edilme: 2Teknik: 3

Nasıl Önleyebiliriz?

  • Web sunucusu dizin listesini devre dışı bırakın ve dosya meta verilerini ve yedekleme dosyalarının web köklerinde mevcut olmadığından emin olun.
  • Erişim kontrolü hata log’larını kaydedin, uygun olduğunda yöneticileri uyarın.
  • Otomatik saldırı araçlarından kaynaklanan zararı en aza indirmek için hız sınırı API ve denetleyici erişimi kullanın.
  • JWT tokenleri, oturumu kapattıktan sonra sunucuda geçersiz kılınmalıdır.

6) Security Misconfiguration (Yanlış Güvenlik Yapılandırması)

Yanlış güvenlik yapılandırması en yaygın görülen sorundur. Bu genellikle güvenli olmayan varsayılan yapılandırmaların, eksik veya geçici yapılandırmaların, yanlış yapılandırılmış HTTP üstbilgilerinin ve hassas bilgiler içeren ayrıntılı hata mesajlarının bir sonucudur. Tüm işletim sistemlerinin, frameworks’lerin, library’lerin ve uygulamaların güvenli bir şekilde yapılandırılması değil, aynı zamanda güncel tutulması gerekir.

İstismar Edilme: 3Yaygınlık: 3Tespit Edilme: 3Teknik: 2

Nasıl Önleyebiliriz?

  • Gereksiz özellikler, bileşenler, belgeler ve örnekler içermeyen minimal bir platform kurun. Kullanılmayan özellikleri ve framework’leri kaldırın veya kurmayın.
  • Tüm ortamlarda yapılandırmaların ve ayarların etkinliğini doğrulamak için otomatize edilmiş bir süreç oluşturun.
  • Kullanıcılara güvenlik direktifleri gönderin veya uyarın.

7) Cross-Site Scripting XSS

XSS kusurları, bir uygulama yeni bir web sayfasında uygun doğrulama veya çıkış olmadan güvenilir olmayan veriler içerdiğinde veya HTML veya JavaScript oluşturabilen bir tarayıcı API’si kullanarak kullanıcı tarafından sağlanan verilerle mevcut bir web sayfasını güncellediğinde ortaya çıkar. XSS, saldırganların kurbanın tarayıcısında kullanıcı oturumlarını ele geçirebilecek, web sitelerini tahrif edebilecek veya kullanıcıyı kötü amaçlı sitelere yeniden yönlendirebilecek komut dosyaları yürütmesine olanak tanır.

İstismar Edilme: 3Yaygınlık: 3Tespit Edilme: 3Teknik: 2

Nasıl Önleyebiliriz?

  • Her frameworks’ün XSS korumasının sınırlamalarını öğrenin ve kapsanmayan kullanım durumlarını uygun şekilde ele alın.

8) Insecure Deserialization

Insecure deserialization genellikle uzaktan kod yürütülmesine yol açar. Bu zafiyet uzaktan kod yürütülmesine neden olmasa bile, bunlar yeniden replay attack, injection saldırıları ve ayrıcalık yükseltme saldırıları dahil olmak üzere saldırıları gerçekleştirmek için kullanılabilir.

İstismar Edilme: 1Yaygınlık: 2Tespit Edilme: 2Teknik: 3

Nasıl Önleyebiliriz?

  • Tüm serileştirilmiş nesneler üzerinde dijital imzalar gibi bütünlük kontrollerinin uygulanması
  • Mümkün olduğunca düşük ayrıcalıklı ortamlarda deserializes işlemini çalıştırın.
  • Deserialization olayını izleyin, bir kullanıcı sürekli olarak deserializes  işlemi yapıyorsa uyarı oluşturun.

9) Using Components with Known Vulnerabilities

Component’ler, kütüphaneler, framework’ler ve diğer yazılım bileşenleri, uygulama ile aynı ayrıcalıklarla çalışır. Savunmasız bir bileşenden yararlanılırsa, bu tür bir saldırı, ciddi veri kaybını veya sunucunun ele geçirilmesini kolaylaştırabilir. Güvenlik açıkları olduğu bilinen bileşenleri kullanan uygulamalar ve API’ler, uygulama savunmalarını zayıflatabilir ve çeşitli saldırılara ve etkilere olanak sağlayabilir.

İstismar Edilme: 2Yaygınlık: 3Tespit Edilme: 1Teknik: 2

Nasıl Önleyebiliriz?

  • Kullanılmayan dependency, gereksiz özellikleri, bileşenleri, dosyaları ve belgeleri kaldırın.
  • Değiştirilmiş, kötü amaçlı bir bileşen dahil etme olasılığını azaltmak için imzalı paketleri tercih edin.
  • Bakım yapılmayan veya eski sürümler için güvenlik yamaları oluşturmayan kütüphane ve bileşenleri izleyin. Yama uygulamak mümkün değilse, keşfedilen sorunu izlemek, tespit etmek veya buna karşı korumak için sanal bir yama dağıtmayı düşünün.

10) Insufficient Logging & Monitoring

Yetersiz log toplama ve log izleme, saldırganların sistemlere daha fazla saldırmasına, kalıcılığı sürdürmesine, daha fazla sisteme dönmesine ve verileri kurcalamasına, çıkarmasına veya yok etmesine olanak tanır. Çoğu ihlal araştırması, bir ihlali tespit etme süresinin 200 günden fazla olduğunu ve genellikle dahili süreçler veya izleme yerine harici taraflarca tespit edildiğini göstermektedir.

İstismar Edilme: 3Yaygınlık: 2Tespit Edilme: 3Teknik: 3

Nasıl Önleyebiliriz?

  • Tüm oturum açma, erişim kontrolü hataları ve sunucu tarafı giriş doğrulama hatalarının, şüpheli veya kötü niyetli hesapları tanımlamak için yeterli kullanıcı bağlamıyla günlüğe kaydedilebildiğinden ve gecikmeli adli analize izin vermek için yeterli süre tutulduğundan emin olun.
  • Günlüklerin, merkezi bir günlük yönetimi çözümleri tarafından kolayca tüketilebilecek bir biçimde oluşturulduğundan emin olun.
  • Şüpheli faaliyetlerin tespit edilmesi ve zamanında yanıtlanması için etkili izleme ve uyarılar oluşturun.

Buraya kadar olan kısımda sizlere OWASP Top 10 hakkında detaylı bilgi vermeye çalıştım. Bunlardan nasıl korunmanız gerektiği hakkında da açıklamaları bulunmaktadır.

Ben bu yazıyı yazarsak kullandığım bilgileri OWASP resmi sitesinden çevirerek sizlerin anlayabileceği bir dile çevirdim. Resmi sitede konu ile ilgili daha detaylı bilgilere ulaşabilirsiniz.

Şimdiden okuyan herkese teşekkür ederim. Bir sonraki yazımda görüşmek üzere…

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s

WordPress.com'da Blog Oluşturun.

Yukarı ↑

%d blogcu bunu beğendi: