Microsoft'un Visual Studio Kodu (VS Kod) Kod Düzenleyici ve Geliştirme Ortamı, kötü niyetli uzantıların Windows, Linux ve MacOS kimlik bilgisi yöneticilerinde depolanan kimlik doğrulama jetonlarını almasını sağlayan bir kusur içerir.
Bu jetonlar, GIT, GitHub ve diğer kodlama platformları gibi çeşitli üçüncü taraf hizmetleri ve API'larla entegre etmek için kullanılır, bu nedenle bunları çalmak, tehlikeye giren bir kuruluşun veri güvenliği için önemli sonuçlar doğurabilir, potansiyel olarak yetkisiz sistem erişimine, veri ihlallerine yol açabilir. vesaire.
Kusur, Microsoft'a ve geliştirdikleri çalışan bir kavram kanıtı (POC) ile bildiren Sycode araştırmacıları tarafından keşfedildi. Yine de, teknoloji devi, uzantıların çevrenin geri kalanından kum havuzuna girmesi beklenmediğinden, sorunu çözmeye karar verdi.
Sycode tarafından keşfedilen güvenlik sorunu, VS kodunun 'Gizli Depolama' adlı kimlik doğrulama jetonlarının izolasyon eksikliğinden kaynaklanır, uzantıların kimlik doğrulama belirteçlerini işletim sisteminde saklamasına izin veren bir API. Bu, Windows Kimlik Yöneticisi (Windows'ta), Keychain (macOS'ta) veya Keyring (Linux için) ile iletişim için KeyTar, VS Code'un sargısı kullanılarak yapılır.
Bu, VS kodunda çalışan herhangi bir uzantının, hatta kötü niyetli olanlar bile, depolama ve istismar anahtarına erişebileceği ve depolanan jetonları almak için taciz edebileceği anlamına gelir.
Sorunu keşfettikten sonra, Sycode'un araştırmacıları, VS kod uzantılarına sahip popüler bir kodlama platformu olan Circleci için tokenleri çalmak için kötü niyetli bir uzantı oluşturarak denemeye başladılar. Bunu, Circleci'nin uzantısını güvenli jetonunu açığa çıkaracak ve hatta doğrudan araştırmacının sunucusuna gönderecek bir komut çalıştırmak için değiştirerek yaptılar.
Yavaş yavaş, hedef uzantının koduna müdahale etmeden bu sırları çıkarmak için daha çok yönlü bir saldırı yöntemi geliştirdiler.
Bu sürecin anahtarı, işletim sisteminin anahtar zincirine zaten erişim sağladığı uygulama içinden çalıştığı için herhangi bir vs kod uzantısının anahtarlığa erişme yetkisi olduğunu keşfetmekti.
Daha sonra, alınan jetonların şifresini çözmesi gerekiyordu ve sycode, jetonları şifrelemek için kullanılan algoritmanın genellikle güvenli olan AES-256-GCM olduğunu buldu. Bununla birlikte, belirteçleri şifrelemek için kullanılan anahtar, geçerli yürütülebilir yoldan ve makine kimliğinden türetilmiştir, bu da anahtarı yeniden oluşturmayı kolaylaştırır.
Alınan jetonlar, VS Code'un Electron Yürütülebilir dosyasında çalıştırılan özel bir JS komut dosyası tarafından şifre çözüldü, yerel olarak yüklü uzantıların tüm şifrelerini deşifre etti ve yazdırdı.
Sycode'un araştırmacıları tarafından keşfedilen ikinci bir kusur, 'Getfullkey' işlevinin, uzantının adından ve yayıncısından türetilen belirli bir 'ekstansiyonu' ile sırları almasıydı.
Bu sorun, herkesin bu alanları değiştirmesini ve kodu başka bir uzantının güvenli jetonlarına erişmelerini sağlamak için kandırmasını sağlar.
Sycode bunu Circleci'yi tekrar taklit eden bir POC uzantısı kullanarak test etti; Bununla birlikte, başka bir uzantının çoğaltılmasının ve sırlarına erişmenin önemsiz olacağını belirttiler.
Sycode'un analistleri sorunu iki ay önce Microsoft'a açıkladı, hatta POC uzantılarını ve depolanan uzantı jetonlarını çalma yeteneğini gösterdi.
Ne olursa olsun, Microsoft'un mühendisleri bunu bir güvenlik endişesi olarak görmediler ve VS Code'un Gizli Depolama Yönetimi çerçevesinin mevcut tasarımını sürdürmeye karar verdiler.
BleepingComputer, yukarıdakiler hakkında bir yorum için Microsoft ile iletişime geçti, ancak sorularımıza bir yanıt almadı.
Microsoft Ağustos 2023 Patch Salı 2 sıfır gün, 87 kusur uyarıyor
Yeni Microsoft Azure AD CTS özelliği yanal hareket için kötüye kullanılabilir
IoT ürün yazılımı analizi hizmeti için Microsoft Önizleme Defender
Microsoft Temmuz 2023 Patch Salı 6 sıfır gün, 132 kusur uyardı
Microsoft, veri ihlalini, 30 milyon müşteri hesabının hırsızlığını reddediyor
Kaynak: Bleeping Computer