GitHub.dev'deki VS Code düzenleyicisinin web sürümünde, saldırganların özel depolar da dahil olmak üzere kurbanın tüm depolarını ele geçirmesine olanak tanıyan bir güvenlik açığı vardı. Ek kötü amaçlı kodlarla tedarik zinciri saldırıları başlatmış olabilirler veya bir bakımcıyı hedef almış olabilirler.
Duyurudan sonra devamını okuyun
Herhangi bir GitHub kullanıcısı, kötü amaçlı bir bağlantı yoluyla hızla kurban haline gelebilir. Saldırganlar, JavaScript tarafından oluşturulan tuş vuruşlarıyla entegre edilmiş önizleme pencerelerinin bir kombinasyonunu kullanarak, kurbanın erişebildiği tüm depolar için erişim jetonunu çalan bir uzantıyı fark edilmeden yüklemiş olabilir. Masaüstü sürümü de önemli ölçüde etkilendi ancak daha yüksek engellerle karşılaştı. Microsoft artık karşı önlemler aldı ve artık saldırganların güvenilmeyen bir ortamda uyarıyı devre dışı bırakmasını engelliyor.
Kırık iframe korumalı alanı
Güvenlik araştırmacısı Ammar Askar, blogunda saldırıyı ayrıntılarıyla anlattı: GitHub, VS Code'un bir sürümünü web üzerinde github.dev adresinde sunuyor. (Daha kesin olmak gerekirse, VS Code aslında masaüstünde Electron aracılığıyla çalışan bir web uygulamasıdır.) Herhangi bir GitHub kullanıcısı, depolarını ile paylaşabilir. github.dev/user/repo yerine github.com/user/repo Doğrudan tarayıcınızdaki VS Code ortamında açın, düzenleyin ve yönetin.
Askar, web uygulamasının “TypeScript kod tabanındaki milyonlarca satırın neredeyse tüm yükünü çalıştırdığından, onu VS Code'da hata arayan herkes için harika bir hedef haline getirdiğine” dikkat çekiyor. Ancak prensipte editör, çeşitli sanal alan mekanizmaları aracılığıyla kullanıcıları JavaScript işlevlerinin hakimiyetinden korur.
Saldırı, örneğin Markdown'ı oluşturmak veya Jupyter not defterlerini düzenlemek için bir iframe'deki sanal alanda harici içeriği çalıştıran Webview işlevini kullanıyor. Dahili olarak web görünümlerinin farklı bir kod kaynağı vardır: vscode-webview://... yerine vscode-file://... ve bu nedenle VS Code'un temel aldığı Node.js API'sine erişim yoktur. Ancak ana ana sayfa ile mesaj yoluyla bilgi alışverişi söz konusudur. Web görünümünün düğme olaylarını nasıl kabul ettiği aşağıda açıklanmıştır (keydown) ana pencere için, örneğin VS Code komut paletini açmak için Ctrl-Shift-P. Bunları kullanarak uzantıları yükleyebilirsiniz. Daha sonra, her zaman bir mesajın varsayılan düğmesini seçen Ctrl-Shift-A eklentisinin kurulumunu onaylamak için, burada uzantılar için “Yükle” seçeneğini seçin.
Bir saldırgan artık bir uzantının kurulumunu tetiklemek için klavye girişini JavaScript koduyla kolayca taklit edebilir. Askar, kurbanı yeni bir uzantı yayıncısının bir şey yüklemek istediği konusunda uyarmak da dahil olmak üzere diğer güvenlik mekanizmalarının nasıl kolayca atlatılabileceğini gösteriyor. Askar'a göre Askar, Microsoft'un daha sonra yamaladığı bir güvenlik açığı olan yerel çalışma alanının güvenilir bir uzantısı gibi davranarak bu incelemeden kaçmayı başardı.
Duyurudan sonra devamını okuyun
Araştırmacı, benzer bir github.dev bağlantısı üzerinden erişilen bir Jupyter not defterini kullanarak saldırıyı gösteriyor https://github.dev/angreifer/blob/main/README.ipynb veya bir yönlendirme yoluyla yükler. Kötü amaçlı uzantı daha sonra fark edilmeden harekete geçer ve belirteci çalar, bu da ona kurbanın da erişebildiği tüm depolara erişim sağlar: GitHub tüm dizinler için yalnızca bir belirteç yayınlar.
Yalnızca github.dev'i henüz kullanmamış veya uzun süredir kullanmayan kullanıcılar “'GitHub Repository' uzantısı GitHub kullanarak erişmek istiyor” uyarısını alacaktır. Askar'ın blogunda bir demo bağlantısı var ancak Haberler geliştiricisinin editör ekibi bunun güvenliğini kontrol etmedi.
Ayrıca okuyun
(DSÖ)

Bir yanıt yazın