Kötü amaçlı uzantılar, kimlik doğrulama belirteçlerini çalmak için VS Code kusurunu kötüye kullanabilir


VS Kodu

Microsoft’un Visual Studio Code (VS Code) kod düzenleyicisi ve geliştirme ortamı, kötü amaçlı uzantıların Windows, Linux ve macOS kimlik bilgisi yöneticilerinde depolanan kimlik doğrulama belirteçlerini almasına izin veren bir kusur içerir.

Bu belirteçler, Git, GitHub ve diğer kodlama platformları gibi çeşitli üçüncü taraf hizmetleri ve API’leri ile entegrasyon için kullanılır, bu nedenle bunların çalınması, güvenliği ihlal edilmiş bir kuruluşun veri güvenliği için potansiyel olarak yetkisiz sistem erişimine, veri ihlallerine yol açabilecek önemli sonuçlar doğurabilir. vesaire.

Kusur, geliştirdikleri çalışan bir kavram kanıtı (PoC) ile birlikte Microsoft’a bildiren Cycode araştırmacıları tarafından keşfedildi. Yine de teknoloji devi, uzantıların ortamın geri kalanından korumalı alana alınması beklenmediğinden sorunu çözmeye karar verdi.

Uzantılarla sır çalmak

Cycode tarafından keşfedilen güvenlik sorunu, uzantıların işletim sisteminde kimlik doğrulama belirteçlerini depolamasına izin veren bir API olan VS Code’un ‘Gizli Depolama’sında kimlik doğrulama belirteçlerinin izolasyon eksikliğinden kaynaklanmaktadır. Bu, Windows kimlik bilgisi yöneticisi (Windows’ta), anahtarlık (macOS’ta) veya anahtarlık (Linux için) ile iletişim için VS Code’un sarmalayıcısı olan Keytar kullanılarak yapılır.

Bu, VS Code’da çalışan herhangi bir uzantının, kötü amaçlı olanlar da dahil olmak üzere, Gizli Depo’ya erişim sağlayabileceği ve depolanan tüm belirteçleri almak için Keytar’ı kötüye kullanabileceği anlamına gelir.

Giriş jetonlarını içeren anahtarlık
Oturum açma parolalarını içeren anahtarlık
Kaynak: Cycode

Sorunu keşfettikten sonra Cycode araştırmacıları, VS Code uzantılarına sahip popüler bir kodlama platformu olan CircleCI için belirteçleri çalmak üzere kötü amaçlı bir uzantı oluşturarak deneyler yapmaya başladı. Bunu, CircleCI’nin uzantısını, güvenli belirtecini açığa çıkaracak ve hatta onu doğrudan araştırmacının sunucusuna gönderecek bir komutu çalıştıracak şekilde değiştirerek yaptılar.

Yavaş yavaş, hedef uzantının kodunu kurcalamadan bu sırları çıkarmak için daha çok yönlü bir saldırı yöntemi geliştirdiler.

Bu sürecin anahtarı, herhangi bir VS Code uzantısının, işletim sisteminin zaten anahtar zincirine erişim izni verdiği uygulamanın içinden çalıştığı için anahtar zincirine erişim yetkisinin olduğunu keşfetmekti.

“Yalnızca diğer uzantılardan değil, aynı zamanda VS Code’un GitHub ve Microsoft hesapları için yerleşik oturum açma ve eşitleme işlevinden de belirteçleri başarıyla alan ve bir “Token Çalma” saldırısı sunan, kavram kanıtı olan kötü amaçlı bir uzantı geliştirdik.” – Cycode.

Ardından, alınan belirteçlerin şifresinin çözülmesi gerekiyordu ve Cycode, belirteçleri ş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ın yeniden oluşturulmasını kolaylaştırır.

Alınan belirteçlerin şifresini çözme
Sırların şifresini çözmeye yardımcı olan bilgiler
Kaynak: Cycode

Alınan belirteçlerin şifresi, VS Code’un Electron yürütülebilir dosyasında çalıştırılan özel bir JS betiği tarafından çözüldü, yerel olarak yüklenen uzantıların tüm şifreleri deşifre edildi ve yazdırıldı.

Alınan belirteçlerin şifresini çözme
Alınan belirteçlerin şifresini çözme
Kaynak: Cycode

Cycode 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 “extensionId” tarafından sırları almasıydı.

Bu sorun, herkesin bu alanları değiştirmesine ve VS Code’u kandırarak başka bir uzantının güvenli belirteçlerine erişim sağlamasına olanak tanır.

Cycode bunu tekrar CircleCI’yi taklit eden bir PoC uzantısı kullanarak test etti; ancak, başka herhangi bir uzantıyı çoğaltmanın ve sırlarına erişmenin önemsiz olacağını belirttiler.

Açıklama ve (değil) düzeltme

Cycode’un analistleri, sorunu iki ay önce Microsoft’a ifşa ettiler, hatta PoC uzantılarını ve saklanan uzantı belirteçlerini çalma yeteneklerini gösterdiler.

Ne olursa olsun, Microsoft 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ı korumaya karar verdiler.

BleepingComputer, yukarıdakilerle ilgili bir yorum için Microsoft ile iletişime geçti, ancak sorularımıza yanıt alamadı.



Source link