Microsoft, VBS enklavlarının güven sınırını sertleştirmek için


Microsoft, VBS enklavlarının güven sınırını sertleştirmek için

Microsoft kısa süre önce sanallaştırma tabanlı güvenlik (VBS) kuşaklarıyla çalışan geliştiriciler için kapsamlı rehberlik yayınladı ve farklı sanal güven seviyeleri arasındaki güven sınırını güçlendirmek için kritik güvenlik önlemlerini vurguladı.

Microsoft güvenlik ekibinin rehberliği, kullanıcı modu işlemleri içinde bellek ve kod yürütme bölgelerini izole etmek için hipervizörün sanal güven seviyelerini kullanan VBS enklavlarını uygularken ortaya çıkan temel güvenlik zorluklarını ele almaktadır.

VBS enklavları, şifreleme anahtarları gibi hassas verilerin kötü niyetli yöneticiler tarafından bile erişimden korunan güçlü güvenilir yürütme ortamları (TEES) sağlar.

Bununla birlikte, bu korumalar VTL1 yerleşimi ile VTL0 ana bilgisayar işlemi arasında benzersiz bir güven sınırı getirir.

Yüksek ayrıcalıklı varlıkların daha düşük ayrıcalıklı varlıkların dış olduğu geleneksel güven sınırlarının aksine, ev sahibi sürecinde bir yerleşim yeri var ve geliştiricilerin yeni bir güvenlik perspektifi benimsemelerini gerektiriyor.

Vurgulanan birincil güvenlik ilkesi, çevrelerin asla VTL0’a güvenmemesi gerektiğidir.

Ana bilgisayar süreçleri yerleşim bölgesinin bellek bölgesinde okuyamaz veya yazamazken, bir yeryüzü ana bilgisayarının belleğine erişebilir ve uygun şekilde yönetilmezse güvenlik güvenlik açıkları oluşturabilir.

Microsoft araştırmacıları, kritik bir önerinin ana bilgisayar işleminden geçirilen işaretçilerin VTL1 yerleşiminin adres aralığının dışında olduğunu doğrulamak olduğunu belirtti.

Çeklerden önce VTL1’de VTL0 yapılarını yakalayın (kaynak – Microsoft)

Microsoft, kötü amaçlı ana bilgisayarların işaretçi değerlerini nasıl değiştirebileceğini gösteren kod örnekleriyle bu güvenlik açığını göstermektedir. Bir örnekte, ana bilgisayar hazırlanmış bir adres parametresine sahip bir yerleşim fonksiyonu çağırıyor:-

LPVOID GetState(LPVOID lpParam) {
    State* state = (State*)lpParam;
    if (state == nullptr) {
        return (LPVOID)E_INVALIDARG;
    }
    *state = g_State;
    return (LPVOID)S_OK;
}

Doğru doğrulama olmadan, bu işlev yanlışlıkla bir ana bilgisayarın hassas yerleşim belleğinin üzerine yazmasına izin verebilir.

Güvenli Uygulama Desenleri

Geliştiricilere, yerleşim sınırlarını belirlemek ve ana bilgisayar tarafından sağlanan tüm işaretçilerin bu sınırların dışına düştüğünü doğrulamak için başlatma sırasında EnclavetEnclaveInformation API’sini kullanmaları tavsiye edilir.

Critical_section Locks (Kaynak – Microsoft)

Ek olarak, VTL0’dan yapılan yapılar, kullanım süresinin (Tactou) saldırılarını önlemek için validasyondan önce VTL1 belleğine kopyalanmalıdır.

Rehberlik, sırların her zaman yerleşim içinde üretilmesi ve asla güvenli kanalların dışına maruz kalmadığını vurgulamaktadır.

Geliştiriciler, Windows Uygulama Kütüphanesi ve RAII sarmalayıcılarının kullanımını önererek güvenlik ilkellerinin yeniden keşfedilmesine karşı uyarılır.

İlginç bir şekilde, Microsoft, enklav gelişimi için Rust’u keşfettiğinden bahsediyor ve son zamanlarda yapılan bir Morse hackathon sırasında dilin hafıza güvenliği özelliklerinden yararlanan bir kavram kanıtı not ediyor.

Collect Threat Intelligence on the Latest Malware and Phishing Attacks with ANY.RUN TI Lookup -> Try for free



Source link