Broken Access Control - CWE-200

Yüklenme Tarihi: 2023-03-18


Broken Access Control (bozuk erişim kontrolü), bir web uygulamasındaki güvenlik açıklarından biridir. Erişim kontrolü, bir web uygulamasının kullanıcıların yalnızca belirli kaynaklara (veriler, sayfalar, özellikler vb.) belirli bir izin seviyesine sahip olmalarını sağlayan bir mekanizmadır.

Broken Access Control, bu erişim kontrolünün yanlış yapılandırılmasından veya eksik uygulanmasından kaynaklanır. Bu durumda, bir saldırgan normalde erişemeyeceği kaynaklara erişebilir veya bu kaynaklara daha yüksek bir izin seviyesinde erişebilir. Bu saldırı türü, saldırganın kurbanın kimliğini sahtecilik veya bir hata oluşturarak elde etmesiyle gerçekleştirilebilir.

Örneğin, bir uygulamanın yönetici paneli, normal kullanıcılardan gizlenmelidir. Ancak, uygulama geliştiricisi, panelin URL'sini doğrudan tarayıcı adres çubuğuna yazarak veya bir güvenlik açığını kullanarak erişebilir. Böylece, uygulamanın erişim kontrolü mekanizması bozulmuş olur ve gizli kaynaklar bir saldırgan tarafından erişilebilir hale gelir.

Bu nedenle, uygulama geliştiricileri, erişim kontrollerinin doğru bir şekilde yapılandırıldığından ve uygulandığından emin olmalıdır.

 

CWE-200: Exposure of Sensitive Information to an Unauthorized Actor
(Yetkisiz Bir Aktöre Hassas Bilgi Açığa Çıkarma)

 

Bu güvenlik açığı, web uygulamalarında hassas bilgilerin (örneğin kullanıcı adları, parolalar, kredi kartı numaraları, kişisel bilgiler vb.) yetkisiz kişiler tarafından görülebilecek şekilde saklandığı durumlarda ortaya çıkabilir. Bu tür bilgilerin açığa çıkması, kullanıcıların kimlik hırsızlığı, dolandırıcılık veya diğer kötü niyetli faaliyetler için hedef haline gelmelerine neden olabilir.

Bu nedenle, web uygulaması geliştiricileri, hassas bilgilerin doğru bir şekilde saklandığından ve yalnızca yetkili kullanıcılara erişim sağlandığından emin olmak için uygun güvenlik önlemleri almalıdır. Bu önlemler arasında verilerin şifrelenmesi, kullanıcı kimlik doğrulama süreçlerinin sağlamlaştırılması ve hassas bilgilerin sadece gerekli olduğu durumlarda kullanılması gibi önlemler bulunur. Ayrıca, düzenli güvenlik taramaları ve güncellemeleri uygulamak da bu tür güvenlik açıklarının tespit edilmesi ve önlenmesi açısından önemlidir.

Örneğin, bir web uygulaması, kullanıcıların hesaplarına giriş yapmak için kullanacakları bir kullanıcı adı ve şifre gerektirir. Bu kullanıcı adı ve şifre, web uygulaması tarafından doğru bir şekilde saklanmalı ve yalnızca yetkili kullanıcılar tarafından erişilebilir olmalıdır. Ancak, uygulamanın doğru şekilde yapılandırılmadığı durumlarda, bir saldırgan, kullanıcı adı ve şifre kombinasyonlarını denemek için kaba kuvvet saldırısı yapabilir.

Eğer uygulama doğru şekilde yapılandırılmamışsa veya kullanıcıların hesaplarına erişmek için kullanılan şifreler yeterince karmaşık değilse, saldırganın sonunda doğru kullanıcı adı ve şifre kombinasyonunu tahmin etmesi mümkündür. Böylece saldırgan, kullanıcının hassas bilgilerine (örneğin kişisel bilgiler, ödeme bilgileri vb.) erişebilir veya hesabı kötüye kullanabilir.

Bunu bir örnekle açıklayalım.

Bir web uygulamasında saldırgan, kullanıcı adı alanına yanlış bir kullanıcı adı girerek veya var olan bir kullanıcı adı girmek için uygulamanın verdiği farklı hata mesajlarını karşılaştırarak doğru kullanıcı adını belirleyebilir.

Uygulama, kullanıcılara "Geçersiz şifre" şeklinde bir hata mesajı veriyorsa, saldırgan doğru kullanıcı adını girdiğinde bu hata mesajını alacak, yanlış kullanıcı adı girdiğinde ise farklı bir hata mesajı alacaktır. Bu sayede, saldırgan doğru kullanıcı adını belirleyebilir ve ardından parolayı tahmin etmeye çalışabilir.

Bu nedenle, bir web uygulaması geliştiricisi, hata mesajlarının doğru şekilde ayarlandığından ve kullanıcı adı keşfini önlemek için uygun güvenlik önlemleri alındığından emin olmalıdır.

Bu açığı kapatmak için alınabilecek önlemler şunlardır:

  1. Hata mesajları standartlaştırılmalı: Uygulama, tüm kullanıcı adı ve şifre kombinasyonları için aynı hata mesajını vererek kullanıcı adı keşfini önleyebilir. Bu, saldırganların hangi kullanıcı adlarının doğru olduğunu belirlemelerini zorlaştırır.
  2. Güvenlik testleri yapılmalı: Uygulama geliştirme sürecinde, güvenlik testleri yaparak kullanıcı adı keşfi açığına karşı testler yapılmalıdır. Bu, uygulama geliştiricilerinin açığı tespit ederek önlem almalarına yardımcı olabilir.
  3. Güvenli parola politikaları benimsemeli: Uygulama, güvenli parola politikaları benimseyerek, saldırganların parola tahminlerinin başarısız olmasını sağlayabilir. Örneğin, parola uzunluğu ve karmaşıklığı gereksinimleri gibi güvenli parola politikaları benimsenebilir.

Bu örneği “Hydra” aracını kullanarak görselleştirelim.

Hydra aracı, açık kaynaklı bir şifre kırma aracıdır.

Mr.Robot dizisinden esinlenerek hazırlanmış olan MR-ROBOT:1 sanal makinesi üzerinden işlemleri gerçekleştireceğiz.

Sanal makineyi bu bağlantı adresinden indirebilirsiniz.

https://www.vulnhub.com/entry/mr-robot-1,151/

Sanal makinenin çözümü için bu bağlantı adresimi inceleyebilirsiniz.

http://www.siberguvenlikportali.com/mr-robot-1-sanal-makinesinin-cozumu-hydra-ile-wordpress-saldiri-ataklari-385

 

Bu noktada kullanıcı adı ve parola yazacağımız iki alana birden sözlüğü verip saldırı gerçekleştirebiliriz fakat bu işlem çok uzun sürecektir. Burada parolayı sabit bir değer tutarak sadece kullanıcı adını tespit etme yoluna gidiyoruz. Wordpressin login sayfası kullanıcı adı ve parola yanlış olduğunda bir hata mesajı döndürüyor (“Invalid username” gibi) . Sadece parola yanlış olduğunda ise farklı bir hata mesajı dönüyor olabilir. (“… kullanıcısının parolası yanlış” gibi) Farklı olan hata mesajını sözlük içerisinde hangi kelimede verdiğini tespit edersek kullanıcı adını elde edebiliriz.

Elliot kullanıcısında istediğimiz sonucu elde ettik. 

Kullanıcı adına Elliot yazıp parolayı rastgele bir değer vererek tekrar deneme yaptım. Burp ile gönderilen post istediğini yakaladım ve geri dönen yeni hata mesajını aldım.

Bu sefer kullanıcı adını Elliot olarak, parola kısmına sözlüğü vererek, hata mesajına da yeni dönen hata kodunu yazıp tekrar Hydra saldırısı gerçekleştirdim. 

Böylece Elliot kullanıcısına ait parolayı da elde etmiş oldum.

 

UYARI

Bu sitede anlatılanlar tamamen eğitim ve korunma amaçlıdır.

Anlatılan yöntemlerin yasa dışı ve kanuna aykırı şekilde kullanılması durumunda şahsım ve sitem sorumlu tutulamaz.

Buradaki bilgiler kullanılarak herhangi bir şahsın veya kurumun uğrayabileceği ya da uğradığını iddaa edebileceği kayıp ya da zararlara karşı sorumluluk kabul edilemez!

SİTEDE ARAMA YAP
SOSYAL MEDYA
social-medya-icon social-medya-icon social-medya-icon social-medya-icon
REKLAM ALANI
Vatan İnşaat

Aytekin UZUN | System Network Administrator

info@siberguvenlikportali.com
Copyright © 2023