Ayrıcalık yükseltme saldırısında saldırgan, kimliği, hesabı veya cihazıyla ilişkili olarak amaçlanan düzeyin ötesinde yükseltilmiş haklar, izinler veya yetkiler elde eder. Sistemler; hatalar, insan hatası, yanlış yapılandırmalar, sistem kusurları ve yetersiz erişim kontrolleri gibi çeşitli faktörler nedeniyle bu tür saldırılara karşı savunmasızdır. İki ana ayrıcalık yükseltme türü vardır:
- Dikey ayrıcalık yükseltme: Bu, normal bir kullanıcının yönetici hakları veya kök düzeyinde erişim elde etmesi gibi bir saldırganın ayrıcalıklarını yükselttiğinde meydana gelir.
- Yatay ayrıcalık yükseltme: Bu durum, bir saldırganın farklı bir kullanıcı veya hesap bağlamında aynı veya benzer düzeyde ayrıcalıklara sahip olması durumunda ortaya çıkar.
Hemen hemen her çoklu hesap uygulaması, erişim kontrolüne yönelik derinlemesine savunma yaklaşımını benimser. Bu katmanlı güvenlik duruşu nedeniyle 8. Yıllık Hacker Destekli Güvenlik Raporurapor edilen ayrıcalık yükseltme güvenlik açıklarına ilişkin platform ortalaması, gönderimlerin yalnızca %2’sini oluşturuyor. Bu düşük oran kısmen, ilk uzlaşmadan sonra testin durdurulmasını gerektiren hata ödül programı kurallarına bağlanabilir. Ayrıca ayrıcalık yükseltme geniş bir kategoridir ve diğer güvenlik açığı sınıflarından yararlanılması, saldırganın yükseltilmiş ayrıcalıklar elde etmesine neden olabilir.
Ancak bu saldırılar meydana geldiğinde sonuçları ağır olabilir. Güvenlik açığı sistematikse veya saldırgan üst düzey ayrıcalıklar elde ediyorsa tüm hesapları tehlikeye atabilir. Ayrıcalık yükseltme güvenlik açıkları, abonelik katmanlarının yükseltildiği durumlarda olduğu gibi saldırganların ödeme duvarlarını atlamasına da olanak tanıyabilir. Aşırı durumlarda saldırganlar, kötü amaçlı yazılım veya arka kapı yükleyerek cihazları tamamen ele geçirebilir.
Ayrıcalık yükseltme saldırıları riskini azaltan çok çeşitli savunma kontrolleri olsa bile, uygulamadaki gözetimler ihtiyaç duyulan saldırı vektörünü tam olarak sağlayabildiğinden, istismar hala etkili bir şekilde karşı koymak için ayrıntılara gereken özenin gösterilmesi gereken sürekli bir tehdit oluşturmaktadır.
Kimlik doğrulama
Kimlik doğrulama, gönderilen kimlik parametrelerine göre kullanıcının iddia ettiği kişi olup olmadığını kontrol eder. Hacker-Powered Security Report’a göre HackerOne’a gönderilen tüm raporların %2’si uygunsuz kimlik doğrulama güvenlik açıklarıyla ilgiliydi.
Muhtemelen daha yüksek bir ayrıcalık düzeyi elde etmenin en kolay yolu, kimlik doğrulama süreçlerinden yararlanmaktır.
Bir hesabı ele geçirmek için kullanılabilecek çok sayıda güvenlik açığı vardır, örneğin:
- Zayıf veya varsayılan kimlik bilgilerinin kullanılması, ayrıcalıklı bir kimliğe sahip olmanın kolay bir yolunu sağlayabilir.
- Hız sınırlamasının olmaması, geçerli kimlik bilgileri veya tek kullanımlık şifreler (OTP’ler) bulunur.
- Çok adımlı kimlik doğrulama süreçleri, kritik adımların atlanmasına izin veren iş mantığı kusurları içerebilir. çok faktörlü kimlik doğrulama (MFA) belirteci sağlanır.
- SQL enjeksiyonu gibi saldırılar, geçerli kimlik bilgilerinin yer aldığı tüm veritabanlarının sızdırılmasına neden olabilir.
- Parola sıfırlama işlevi de hatalı olabilir. Örneğin, zamana dayalı olarak oluşturulmuşsa veya geçerli isteklerden oluşan önceden hazırlanmış bir havuzdan alınmışsa, birden fazla isteğe aynı token verilebilir.
- Doğrulama süreçleri de hatalı olabilir. Örneğin, bir jeton yalnızca sunucu tarafından alındığında değerlendirilebilir ve hassas bir işlevi korumak için kullanılabilir. Bu senaryoda, belirteci tamamen hariç tutmak, erişim kontrolünün atlanmasına izin vererek işlevin yetkisiz yürütmeye maruz kalmasına neden olabilir. Belirteçlerin farklı isteklerde veya uygulamanın alanlarında yeniden kullanılabildiği durumlarda da güvenlik sorunları ortaya çıkabilir.
Güvenlik açığından bağımsız olarak, kimlik doğrulama istismarlarının nihai sonucu aynı: bir saldırganın güvenliği ihlal edilmiş bir hesaba doğrudan erişim elde etmesi.
Rol Tabanlı Erişim Kontrolü
Rol tabanlı erişim kontrolü (RBAC), yöneticilerin hangi tür kullanıcıların belirli kaynaklara erişme veya belirli eylemleri gerçekleştirme yetkisine sahip olduğunu tanımlamasına olanak tanıyan bir güvenlik önlemidir. RBAC’deki “roller”, kullanıcılara verilen atanmış ayrıcalıklar kümesini ifade eder. Bu roller bireysel kullanıcıya veya belirli bir kullanıcı grubuna atanabilir.
RBAC önemli bir savunma hattı sağlasa da herkese uyacak tek bir çözüm yoktur. Rolleri tanımlamaktan sorumlu olanlar, belirli kullanıcıların neler yapabileceği konusunda derinlemesine bir anlayışa sahip olmalıdır. Bu farkındalık olmadan roller aşırı hoşgörülü olabilir. Rol tanımları, kullanıcıların hayal kırıklığı ve şikayetlerinden bile etkilenebilir. Belirli bir işlevsellik çok kısıtlayıcıysa, onu koruyan güvenlik yapılandırmaları sürtünmeyi veya sıkıntılı noktaları önlemek için gevşetilebilir.
Ayrıca, kullanıcının rolünün belirlenmesinde güvenlik açıkları bulunabilir:
- Başlık gibi istemci tarafı bir parametreye göre belirlenen roller isteğe bağlı olarak değiştirilebilir.
- Belirsizlik yoluyla güvenliğe dayanan gizli alanlar da keşfedilebilir; bu da ayrıcalık artışıyla sonuçlanan toplu atama saldırılarına yol açabilir.
- Bir erişim belirtecinin ortak bir kodlama dönüşümüyle maskelenmesi veya kriptografik olarak güvenli olmayan algoritmaların kullanılması gibi zayıf gizleme teknikleri, kullanıcının rolünü belirleyen gömülü değerleri açığa çıkarabilir. Daha sonra, atanan değerin yerine istenen değeri sağlamak için basit eşleştir ve değiştir kuralları veya tersine mühendislik teknikleri kullanılabilir.
En kötü senaryoda, RBAC bir varlıkta veya uç noktada tamamen eksik olabilir ve bu da sınırsız erişime veya işlev çağrılarına izin verebilir.
Uygunsuz erişim kontrolü güvenlik açıklarına ilişkin raporlar, HackerOne platformuna yapılan tüm gönderimlerin %9’unu temsil ediyor.
En Az Ayrıcalık İlkesi
en az ayrıcalık ilkesi (POLP) RBAC ile el ele gider ve kullanıcılara ve bağlı sistemlere yalnızca kesinlikle gerekli olan izinlerin verilmesi gerektiği fikrini savunan bir güvenlik konseptidir; ne daha fazlası ne daha azı. Örnek olarak, bir kullanıcı yalnızca kendisine ait dosyalara erişebilmelidir; birden fazla kullanıcıdaki dosyalara erişmesi gereken bir yönetici ise ekibindeki veya sorumlu olduğu dosyalarla sınırlandırılmalıdır. Bir saldırgan diğer kullanıcıların dosyalarına erişebilirse uygulama, gönderilen tüm raporların %6’sını oluşturan güvenli olmayan doğrudan nesne referansına karşı savunmasız kalır.
Ancak bulut ortamlarında birçok ayrıcalık ve eylem varsayılan olarak verilir ve bunları iptal etmek için açık yapılandırma gerekir. Bu varsayılan yetenekler hem kullanıcı rolleri hem de sanal makineler gibi bulut kaynakları için geçerlidir. Kuruluşa özel değişiklikler yapılmadan ayrıcalık yükseltme saldırıları, ağ bölümlerinin atlanmasına veya düşük düzeyli kullanıcıların kritik işlemler gerçekleştirmesine neden olabilir.
İstismar
27 Haziran 2021’de güvenlik araştırmacısı @stapia, Google’da keşfettikleri bir ayrıcalık yükseltme güvenlik açığını açıklayan bir rapor sundu. https://stocky.shopifyapps.com/. Doğrudan bir istek göndererek /kullanıcılar/create_admin uç nokta, ayrıcalıklı olmayan bir kullanıcı bir yönetici hesabı oluşturabilir ve bu hesapta oturum açabilir.
Çoğaltmanın Adımları
1. Ayrıcalıklı olmayan bir kullanıcı hesabı oluşturuldu.
2. Bu hesapta kimlik doğrulaması yapıldıktan sonra şuraya gidin: /kullanıcılar/ben uç nokta, güvenlik açığı bulunan uç noktayla da uyumlu olan çerezleri ve bir kimlik doğrulama belirtecini içeren bir istek üretecektir.
3. Bu istek durduruldu, istek satırı şu şekilde değiştirildi: POST /kullanıcılar/create_admin HTTP/2ve aşağıdaki gövde verileri dahil edildi:
utf8=%E2%9C%93&authenticity_token=[REPLACE TOKEN]&user%5Bfirst_name%5D=[FIRST NAME]&user%5Blast_name%5D=[LAST NAME]&kullanıcı%5Bemail%5D=[EMAIL ADDRESS]&şifre=[PASSWORD]&commit=Oluştur+%26+Giriş Yap |
4. Bu isteğin iletilmesi, yönetici hesabının başarıyla oluşturulmasıyla sonuçlandı. Yönetici ayrıcalıklarına sahip bir kullanıcı, kuruluşun Shopify hesabı bağlamında envanteri, stoğu, satıcıları güncelleyebilir, satın alma siparişleri verebilir vb.
Ayrıcalık Yükseltme Saldırılarına Karşı Koruma
Bu örnekte Shopify, birden fazla uç noktada geçerli olan bir jeton yayınladı. Belirtecin kapsamını uç noktaya özgü olacak şekilde ayarlasalardı, kullanımı kabul edilmeyecekti. /kullanıcılar/create_admin uç nokta.
Genel olarak konuşursak, ayrıcalık yükseltme saldırıları çeşitli güvenlik hatalarının sonucudur. Savunmaya yönelik katmanlı bir yaklaşım benimsemek ve alınan önlemlerin doğru şekilde uygulanmasını ve yapılandırılmasını sağlamak hayati önem taşımaktadır:
- Oluşturulan tüm jetonların kapsamı özel olarak belirlenmeli, güvenilir şekilde güvenli gizleme teknikleri kullanılmalı ve tek kullanımlık olmalıdır.
- Parola gücünün güçlendirilmesi ve MFA kullanımı gibi temel parola yönetimi uygulamalarını izleyin.
- Makul olmayan miktarda oturum açma girişimi yapılmasına izin veren tüm zayıflıklar için kimlik doğrulama sürecini tamamen inceleyin.
- Enjeksiyon saldırılarına karşı savunma sağlamak için kullanıcı girişini temizleyin ve doğrulayın.
- Uygulamada değişiklik yapıldığında güncellemeler yapılarak, rollere atanan izinlerin düzenli aralıklarla kapsamlı bir incelemesini gerçekleştirin.
- Saldırı vektörleri olarak kullanılabilecek toplam hesap sayısını azaltmak için etkin olmayan kullanıcıların veya grupların rollerini iptal edin.
- Talebin nereden geldiğine bakılmaksızın her istek için izinlerin uygun şekilde doğrulanması gerekir.
Çözüm
@stapia’nın çabaları 1.600 ABD doları tutarında ödülle sonuçlandı ve Shopify ekibi 25 Ağustos 2021’de soruna yönelik bir düzeltme yayınladı. Programları test ederken, uygulamayı, soruna yol açabilecek tartışılan güvenlik kusurları açısından analiz ettiğinizden emin olun. ayrıcalıklardan.
Ayrıcalık yükseltmeyi içeren raporlarla ilgili diğer örnekleri burada görebilirsiniz.
Bu rapor, özellikle Shopify gibi e-ticaret ortamları ve araçlarıyla ilgilenen uygulamalarda ayrıcalık yükseltme saldırılarına karşı güvenliğin sağlanmasının önemini vurgulamaktadır. Kötü niyetli bir saldırgan bu güvenlik açığını sorumlu bir şekilde rapor edilmeden önce keşfetmiş olsaydı, büyük mali kayıplar yaşanabilirdi. HackerOne tarafından sağlanan kitle kaynaklı güvenliğin gücüyle bu güvenlik açığı hızla giderildi ve Shopify’ın kullanıcı tabanının güvenliği iyileştirildi.