Kategoriler
Siber Güvenlik

OWASP Top 10 2017 Raporu

OWASP Nedir?

OWASP (Open Web Application Security Project), web uygulamalarının güvenliği için çalışma yapan özgür bir topluluktur. OWASP’a ait dokümanlar ve araçlar herkese açıktır. OWASP’ın hiçbir şirket ve kuruluşla bağı yoktur ve tamamen topluluğun ihtiyaçlarını gidermek üzerine çalışmalar yürütmektedir. OWASP Vakfı, projenin uzun vadeli başarısını sağlayan kar amacı gütmeyen bir kuruluştur. OWASP ile ilişkili hemen hemen herkes, OWASP kurulu, bölüm başkanları, proje liderleri ve proje üyeleri de dahil olmak üzere bir gönüllüdür.

OWASP Top 10 listesi birkaç yılda bir güncellenir. Tüm web açıklarını belli bir puan sistemine göre sıralar ve en popüler on açık listesini yayınlar. Aynı zamanda listede açıklar için öneriler de yer alır.Aşağıda 2017 listesi mevcuttur. Puanlama sistemine yazının devamında yer vereceğim.

OWASP TOP 10 2017 PUAN
A1: Injection 8.0
A2: Broken Authentication( and Session Management) 7.0
A3: Sensitive Data Exposure 7.0
A4: XML External Entities (XXE) 7.0
A5: Broken Access Control 6.0
A6: Security Misconfiguration 6.0
A7: Cross-Site Scripting (XSS) 6.0
A8: Insecure Deserialization 5.0
A9: Using Components with Known Vulnerabilities 4.7
A10: Insufficient Logging & Monitoring 4.0

A1 : Injection

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

SQL, NoSQL, OS, and LDAP enjeksiyon gibi kusurlar, saldırganların verileri izinsiz bir şekilde okumasına ve komut çalıştırmasına sebep olabilir. Keşfedilmesi kolaydır. Enjeksiyon, veri kaybedilmesi, verilerde değişiklik yapılması ve saldırganın admin hesabını elde etmesi ile sonuçlanabilir.

 

A2: Broken Authentication (and Session Management)

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

Tahmini kolay ve brute force sistemi ile kırılabilen şifreler bir web sitesi için tehdit demektir. Aynı zamanda giriş denemelerine kısıtlama konulmaması ve captcha kullanılmaması da zafiyetlerden birisidir. Bu şekilde getirilen sınırlamalar ve önlemler brute force saldırılarından web sitesini büyük oranda kurtaracaktır.

Sitemizi ziyaret eden her kullanıcıya bir değer atarız. Bu değer o kişinin hangi yetkiye sahip olduğunu da belirtir. Ancak bu zaafiyeti de beraberinde getirir. Örnek vermek gerekirse saldırgan, siteye ziyaretçi olarak girer ve ona bir id atanır. Bu id linkte yer alıyorsa linki görebileceği bir sayfa hazırlayarak kurbanın o sayfaya girmesini sağlar. Bu durumda kurbanın id’sini elde eden saldırgan, onun yetkileri ile sitede gezinebilir.

Bazı web siteleri ise parolamı unuttum seçeneğine mail girilmesi halinde direk olarak maile yeni şifreyi gönderir. Saldırgan, sürekli olarak kurbanın mailini bu sisteme girerse, saldırgan söz konusu web sitesine giriş yapamayacaktır.

Şifre yenileme ekranında eski parolanın sorulmaması da bu alandaki zafiyetlerden birisidir. Ayrıca mail aktivasyonu yapılmadan kayıt yapılan siteler ve üye girişi sonrası çıkışı mümkün olmayan sistemler de bu başlık altında incelenebilir.

A3: Sensitive Data Exposure

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

Bu açığın sebebi önemli verilerin saklanmaması, şifrelenmemesi veya bilinen şifreleme algoritmaları ile saklanmasıdır. Kredi kartı, parolalar, adres ve kimlik bilgileri gibi önemli olduğuna inandığımız bilgileri güçlü algroitmalar ile şifrelemek sağlıklı olacaktır.Aynı zamanda bilgiler sunucuya şifrelenmeden ulaşıyorsa bu da bir risk oluşturacaktır. Sunucu ve kullanıcı arasındaki ağı takip eden bir saldırgan önlem alınmayan bu verileri elde edebilir. Bunun için https gibi güvenli protokolleri kullanmak faydalı olacaktır. Diğer yandan sistemdeki default parolaları da değiştirmek gerekir.

A4: XML External Entities (XXE)

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

Bu açık yanlış configure edilmiş XML dosyalarının sabote edilmesine sebep olur. Saldırgan, sunucuya zararlı yazılım yer alan XML dosyası göndererek dosyaları okur, dos saldırısı gerçekleştirir ve komut çalıştırır. Çözüm olarak ise XML kütüphanelerini güncel tutmak, XML External Entity özelliğinin kapatılması ve sunucuda “whilelisting” kontrolünün yapılması gerekir.

A5: Broken Access Control

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

Bu açık kullanıcı yetkilerinin doğru oluşturulmamış olmasından kaynaklanır. Daha açıklayıcı olarak aşağıdaki örnekte açıklayabiliriz.

example.com/app/accountInfo?acct=enes

Biz acct parametresini değiştirelim ve başka bir kullanıcının bilgilerine ulaşmayı deneyelim.

example.com/app/accountInfo?acct=Admin

Verilen linkte kullanıcı adı kısmı değiştirilerek başka kullanıcıların verileri elde edilebilir. Hatta bir wordlist ile farklı kullanıcı varyasyonları da temin edilebilir. Öte yandan admin gibi yetkili kullanıcılar da kullanılabilir. Bu durumda link yapısının doğru yapılması, izinlerin düzgün planlanması ve her açıkta olduğu gibi bunda da log kayıtlarının incelenmesi güvenlik adına önem taşımaktadır.

A6: Security Misconfiguration

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

Gereksiz servis ya da eklentilerin kurulması ve sonrasında unutulmasından kaynaklanan açıktır. Ayrıca OWASP’a göre en çok bulunan açık çeşididir. Bu sistemlerin güncel olmaması, default parolalar ile kalması güvenlik tehditlerini oluşturur. Çözüm olarak ihtiyaç duyulmayan servisler kaldırılmalı, default parolalar değiştirilmeli. Aynı zamanda sistem güncel tutulmalıdır.

A7: Cross-Site Scripting (XSS)

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

Türkçe karşılığı siteler arası betik çalıştırma olan bu zaafiyet, bir web sitesi üzerinde izinsiz olarak HTML, CSS veya Javascript gibi kod parçacıkları çalıştırmaya yaramaktadır. Bir sitenin XSS zaafiyeti bulundurması, o sitenin kullanıcılarının tarayıcılarında zararlı kod çalıştırılmasına zemin hazırlamaktadır.Bu da kullanıcıya ait parola, çerezler vb. bilgilerin ele geçirilmesi ile sonuçlanır. XSS önlemi alan frameworkler kullanılması ve toplum mühendisliği saldırılarına karşı bilinçlendirme çalışmaları alınacak önlemler listesinde yer almaktadır. Aynı zamanda web sitesine dair veriler elde etmek de mümkündür. XSS, kendi içerisinde üçe bölünür.

Reflected XSS : Mevcut zaafiyetin en yaygın alt dalıdır. Saldırgan, bulduğu XSS açığını kötüye kullanarak bir link hazırlar ve bunu kullanıcıya gönderir. Kurban gönderilen linke tıklarsa açığa kurban gider. Bu yüzden diğer çeşitlerine nazaran daha az önem arz ettiği kabul edilmektedir.

Örnek vermek gerekirse, aşağıdaki olağan link ikinci verilen örnekteki kod parçacığı çalıştırılabilir.

http://www.site.com/search.aspx?keyword=caglar

http://www.site.com/search.aspx?keyword=<script>alert(/caglar/)</script>

Stored XSS : Bir önceki örneğimizden farklı olarak yalnızca linki açan kullanıcı değil, o sayfayı görüntüleyen herkes saldırıya uğramış olur. Herhangi bir toplum mühendisliğine başvurmak gerekmeksizin saldırgan, kullanıcılara erişir. Zararları diğer çeşitlerine nazaran daha fazladır.

DOM Tabanlı XSS : Bu XSS çeşidi HTML üzerinden değil de DOM objeleri üzerinden uygulanır. Reflected örneğindeki gibi kullancıya bir link bırakılır fakat kullanıcı linke girdiğinde bilgiler site üzerinden gönderilmez. Kullanıcının oturum bilgileri, saldırganın elinde tuttuğu farklı bir web sitesine gönderilir.

A8: Insecure Deserialization

İstismar Edilebilirlik:1 Yaygınlık: 2

Tespit Edilebilirlik:2

Teknik:3

Bu zaafiyet ile web sitesine dos saldırında bulunmak ve komut göndermek mümkündür. Kullanıcılardan gelen verilerin kontrol edilmemesinden kaynaklanmaktadır.

A9: Using Components with Known Vulnerabilities

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

Security misconfiguration ile benzer olmakla beraber mesele burada biraz daha farklıdır. Bilindik bir exploiti bulunmasına karşın sistem veya uygulamaların aynı sürümünün kullanılması bu zaafiyetin listede yer almasına sebep olmuştur. Çözüm olarak ise sistem ve uygulamaları güncel tutmak gerekmektedir. Kullanılmayan ve gereksiz uygulamalar kaldırılmalıdır. başta exploit-db.com olmak üzere birçok yerden güncel exploitleri temin edebilirsiniz. Güncel olarak ortaya çıkan exploitleri takip ettikten sonra buna göre önlem almak da mümkün.

A10: Insufficient Logging & Monitoring

İstismar Edilebilirlik:2 Yaygınlık: 3

Tespit Edilebilirlik:1

Teknik:2

Log kayıtlarının yeterli oluşturulmaması ve incelenmemesinden kaynaklanan sıkıntılardır. Önemli işlemler ve başarılı/başarısız giriş denemelerinin kayıt altında olması gerekir. Bu durumda arka arkaya yapılan giriş denemeleri bir yerden sonra log kayıtlarını analiz eden sistem veya görevli tarafından dikkat çekecektir ve öncesinde önlem alınacaktır. Brute force saldırılarının yanı sıra listedeki diğer açıkların da tespiti logların izlenmesi sonucunda erkenden önlenebilir.

Detaylı bilgiler ve kaynakça :

 

Hazırladığım sunum PDFine şu linkten ulaşabilirsiniz : https://drive.google.com/file/d/1U7_6uzGO9xvpCC1fGgmjOapX_Fy9ovh7/view?usp=sharing