EresusSecurity
Araştırmalara Dön
DevSecOps

VS Code Eklenti Güvenliği: VSIX, Marketplace ve Tedarik Zinciri Riski

Eresus Security ResearchGüvenlik Araştırmacısı
31 Temmuz 2026
Güncellendi: 11 Ağustos 2026
7 dk okuma
GuideDevSecOpsKaynak: VS Code Extension Runtime SecurityKaynak tarihi: 2026

VS Code Eklenti Güvenliği: Neden Kaynak Kod Tek Başına Yetmez?

Bir eklentinin GitHub deposu temiz görünebilir; fakat kullanıcının cihazına yüklenen şey repository değil, Marketplace'in dağıttığı pakettir. Bu paket farklı derlenmiş kod, bağımlılık, source map veya çalıştırma yapılandırması içerebilir. Ayrıca bugün güvenli görünen bir sürüm, normal güncelleme kanalıyla değişebilir.

Bu, tüm eklentilerin riskli olduğu anlamına gelmez. Güven modeli yalnızca "yayıncı güvenilir mi?" sorusundan oluşmamalıdır: paket, kaynak, sürüm ve davranış birlikte değerlendirilmelidir.

Dört Katmanlı Güven Kontrolü

Katman Sorulacak soru Örnek kontrol
Yayıncı Kim yayınladı; hesap geçmişi ve domaini tutarlı mı? Yeni/benzer isimli publisher'lar için ek inceleme
Dağıtılan paket Yüklenen VSIX beklenen işlev ve bağımlılıkları içeriyor mu? Manifest, entry point ve package hash kaydı
Kaynak eşleşmesi Açık kaynak deposu yayınlanan artifact ile uyumlu mu? Release tag, build süreci ve artifact karşılaştırması
Çalışma zamanı Eklenti hangi process, dosya ve network eylemini başlatıyor? EDR/telemetry ile IDE child-process ve egress takibi

Knostic'in iki araştırması, kaynak deposu ile dağıtılan paket arasındaki farkın ve startup'ta çalışan download/execute davranışının neden ayrıca incelenmesi gerektiğini gösteriyor. Bu raporlar belirli örneklerin statik analizidir; eklenti adı veya IOC'ler zamanla değişebileceği için kendi envanterinizde yeniden doğrulama yapın. Paket-kaynak farkı ve WordPress aracı görünümündeki örnekler.

VS Code eklentisi hangi yetkilerle çalışır?

VS Code’un resmi güvenlik dokümanı kritik bir noktayı açıkça belirtir: extension host, VS Code’un sahip olduğu yetkilerle çalışır. Bu nedenle bir eklenti dosya okuyup yazabilir, ağ isteği başlatabilir, harici process çalıştırabilir ve workspace ayarlarını değiştirebilir. “Eklenti yalnızca editörde bir ikon ekliyor” varsayımı, manifest ve çalışma zamanı davranışı görülmeden kabul edilmemelidir. VS Code Extension Runtime Security

Bu model, Cursor gibi VS Code tabanlı ürünlerde de benzer bir inceleme sorusu doğurur: eklenti hangi host process içinde çalışıyor, hangi workspace’e erişiyor ve terminal/agent yetkileriyle nasıl kesişiyor? Ürünler aynı güvenlik arayüzünü kullanmayabilir; bu yüzden her IDE için kendi politika ve telemetri ayarını ayrıca doğrulamak gerekir.

VSIX paketini kaynak depodan bağımsız inceleyin

Bir eklentiyi değerlendiren ekip, GitHub deposuna bakmakla yetinmemeli. İnceleme sırası şu şekilde kurulabilir:

  1. Marketplace publisher kimliği, doğrulanmış domain, yayın geçmişi ve son sürüm tarihi kaydedilir.
  2. İndirilen VSIX arşivi hash’lenir; package.json, activation event, contribution point, entry point ve bağımlılıklar çıkarılır.
  3. Repository’deki release tag, commit ve build talimatı ile VSIX içeriği karşılaştırılır.
  4. Paket içinde kaynak depoda bulunmayan minified JavaScript, binary, downloader, şüpheli script veya beklenmeyen .env/credential kalıntısı aranır.
  5. Eklenti izole bir profilde çalıştırılır; dosya, process, DNS, HTTP(S), child-process ve workspace değişiklikleri gözlemlenir.

Bu kontroller “paket kötü” sonucunu otomatik üretmez. Ama kaynak–artifact farkını, build zincirinin tekrarlanabilirliğini ve sürüm güncellemesinin gerçek etkisini ölçülebilir hâle getirir.

Marketplace kontrolleri güvenlik garantisi değildir

VS Code Marketplace malware taraması, dinamik davranış analizi, publisher doğrulaması, secret scanning, imza kontrolü ve block list gibi kontroller uygular. Bunlar önemli savunma katmanlarıdır; ancak kurumun kendi kullanım bağlamını, özel repository’lerini, token erişimini veya eklentinin iş akışına verdiği yetkiyi değerlendirmez. Marketplace güvenlik ve güven modeli

Verified Publisher işareti domain sahipliği ve Marketplace geçmişi için bir sinyaldir; kodun her satırının güvenli olduğu anlamına gelmez. İndirme sayısı da tek başına güvenlik kanıtı değildir. Yeni sürümde paket hash’i, bağımlılık ağacı veya activation davranışı değişebilir.

Kurumsal allowlist nasıl tasarlanır?

Kurumsal ekipler “her şeyi yasakla” ile “her şey serbest” arasında kanıtlanabilir bir orta yol kurabilir:

  • Publisher ve extension ID bazında onaylı katalog oluşturun; kritik eklentilerde sürüm ve platform bilgisini de tutun.
  • Yeni sürüm yayımlandığında manifest, dependency, activation event ve paket hash farkını incelemeye alın.
  • İzinli eklentileri mümkünse özel Marketplace veya yönetilen policy üzerinden dağıtın.
  • code, cursor ve extension host process’lerinden doğan anormal shell, script host, downloader ve beklenmeyen dış bağlantıları EDR/SIEM’e taşıyın.
  • Geliştirici makinelerinde GitHub, cloud ve production credential’larını aynı profile yığmayın.
  • Bilinmeyen eklentileri önce izole test profili, disposable workspace veya sandbox içinde deneyin.

VS Code, kurumsal ortamlarda publisher, eklenti, sürüm ve platform bazında seçici izin politikalarını destekler. Enterprise extension management

Şüpheli eklenti için olay müdahalesi

Eklentiyi kaldırmak yalnızca görünen bileşeni ortadan kaldırır. İnceleme sırası şu olmalı:

  1. Etkilenen cihazı ve ilgili kullanıcı oturumlarını izole edin.
  2. Extension host, IDE, shell, process creation, DNS/proxy ve EDR kayıtlarını zaman çizelgesine alın.
  3. Eklentinin yazdığı dosyaları, indirilen payload’ları ve persistence izlerini koruyun.
  4. GitHub, GitLab, cloud, package registry ve CI/CD token’larını revoke/rotate edin.
  5. Aynı publisher, extension ID ve sürümün kurulu olduğu makineleri envanterden tarayın.
  6. Temiz profil veya yeniden kurulum sonrası allowlist politikasını ve retest sonucunu kaydedin.

SEO için hedeflenen arama niyeti

Bu konuya gelen okuyucu genellikle üç sorudan birini sorar: “VS Code eklentisi güvenli mi?”, “VSIX dosyası nasıl incelenir?” veya “Kurumsal olarak hangi eklentilere izin vermeliyim?” Cevap bu üç seviyeyi birlikte kapsar: kullanıcı kurulumu, güvenlik ekibinin paket/telemetri analizi ve yöneticinin allowlist politikası.

Kısa cevaplar

VS Code eklentileri dosyaları okuyabilir mi? Evet. Extension host, eklentinin çalıştığı bağlama göre dosya, ağ ve harici process yetkilerine erişebilir; bu yüzden publisher güveni tek başına yeterli değildir.

Marketplace’te olması güvenli olduğu anlamına gelir mi? Hayır. Marketplace kontrolleri riski azaltır; paket, sürüm ve çalışma zamanı davranışı yine kurum tarafından değerlendirilmelidir.

Otomatik güncellemeyi kapatmalı mıyım? Genel olarak amaç güncellemeyi durdurmak değil, değişikliği görünür ve geri alınabilir kılmaktır. Kritik eklentiler için sürüm pinleme, test profili ve kontrollü rollout daha sağlıklıdır.

Amaç geliştirici üretkenliğini düşürmek değil; IDE’yi yönetilen bir yazılım tedarik zinciri yüzeyi olarak görünür kılmaktır.

VS Code eklentisi değerlendirme checklist’i

Bir eklentiyi onaylamadan önce aşağıdaki kayıtları aynı inceleme kartında tutun:

  • Publisher adı, doğrulanmış domain ve Marketplace extension ID
  • Son yayın tarihi, sürüm geçmişi, indirme/kurulum bağlamı ve destek kanalı
  • VSIX hash’i, package.json, entry point ve activation event’leri
  • Runtime bağımlılıkları, harici binary’ler, script’ler ve network domain’leri
  • Dosya, terminal, process, secret ve workspace erişim ihtiyacı
  • Repository–artifact eşleşmesi ve build/release kanıtı
  • İş etkisi, veri sınıfı, onay sahibi ve geri alma adımı

Bu kart, “eklenti güvenli mi?” sorusunu tek kelimelik bir karara indirgemez. Kurumun hangi nedenle izin verdiğini, hangi varsayımla risk kabul ettiğini ve yeni sürümde neyin yeniden kontrol edileceğini gösterir.

Onay kararını risk sınıfına bağlayın

Her eklenti aynı inceleme derinliğini gerektirmez. Sadece dil renklendirme veya görsel tema sağlayan bir paket ile terminal, dosya sistemi, Git provider, cloud API veya AI agent erişimi isteyen paket aynı sınıfa konmamalıdır. Basit bir karar matrisi kullanılabilir:

Risk sınıfı Örnek Onay koşulu
Düşük Tema, ikon, salt görsel yardımcı Publisher ve paket bütünlüğü kontrolü
Orta Kod analizi, formatter, repository erişimi Sürüm/hash kaydı ve izole test
Yüksek Terminal, shell, network, secret veya agent erişimi Security owner onayı, EDR görünürlüğü ve rollout
Kritik Production credential, deploy veya geniş workspace yetkisi Özel istisna, süreli erişim ve periyodik retest

Bu sınıflandırma geliştiricinin hızını kesmek için değil, inceleme maliyetini gerçek etkiyle eşleştirmek içindir. Publisher güveni, paket bütünlüğü ve runtime davranışı aynı sınıfta değerlendirildiğinde “çok indirildi” gibi tek bir sinyal kararın tamamını belirlemez.

Bir eklenti ne zaman yeniden incelenmeli?

Yeniden değerlendirme yalnızca güvenlik açığı duyurusunda yapılmamalıdır. Publisher hesabı değiştiğinde, paket boyutu veya bağımlılık ağacı beklenmedik biçimde büyüdüğünde, yeni bir activation event eklendiğinde, dış domain listesi değiştiğinde veya eklenti production credential’larına erişmeye başladığında review tetiklenmelidir.

Kurumsal katalog için pratik bir politika şu olabilir: düşük riskli yardımcı eklentiler periyodik örneklemeyle, repository veya network erişimi olan eklentiler her sürümde, terminal/agent/secret erişimi isteyenler ise onaylı rollout ve retest ile güncellenir. Bu yaklaşım otomatik güncellemeyi yasaklamaz; değişikliğin görünür, sahipli ve geri alınabilir olmasını sağlar.

İlgili güvenlik kontrolleri

Eklenti incelemesi tek başına endpoint güvenliği yerine geçmez. Şüpheli bir token veya secret bulunduğunda secret sızıntısı olay müdahalesi, IDE içinde agent/MCP kullanılıyorsa agent yetki güvenliği ve kurumsal dış erişim görünürlüğü için external attack surface yönetimi birlikte değerlendirilmelidir.

Geliştiriciler İçin Hızlı Kontrol Listesi

  1. Eklentiyi yalnızca doğrulayabildiğiniz yayıncıdan kurun; benzer isimli kopyalara dikkat edin.
  2. Eklentinin işleviyle ilgisiz terminal, shell veya geniş network izni istemesini sorgulayın.
  3. Otomatik güncellemeyi kapatmak yerine sürüm değişikliklerini görünür hale getirin; kritik eklentilerde release notu ve hash kaydı tutun.
  4. IDE içinde kişisel GitHub/cloud oturumu açıkken yeni eklenti denemeyin; mümkünse izole profil veya test makinesi kullanın.
  5. Eklenti şüpheliyse kaldırın; ardından cihazı ve bağlı hesapları olay müdahalesi kapsamında değerlendirin.

Kurumlar İçin Yönetim Modeli

Serbest kurulum modeli, her geliştiricinin kendi tedarik zinciri değerlendirmesini yapmasını bekler. Daha güvenli model şunları içerir:

  • Onaylı eklenti kataloğu ve gerekçeli istisna süreci
  • Publisher, eklenti kimliği, sürüm ve hash içeren merkezi envanter
  • Yeni sürümde manifest, bağımlılık ve izin farkı uyarısı
  • code veya cursor süreçlerinden doğan anormal script host, shell veya downloader süreçleri için EDR kuralı
  • IDE ve Git sağlayıcısı oturumları için en az yetki, MFA ve ayrı iş profili

Şüpheli Eklentide Olay Müdahalesi

Eklentiyi kaldırmak ilk adımdır; ancak yeterli son adım değildir. Çalışma zamanı davranışına göre indirilen dosyalar, kalıcılık mekanizmaları ve hesap yetkileri incelenmelidir. GitHub token veya secret etkilenmiş olabilecekse secret incident response rehberindeki revoke, log review ve kalıcı erişim denetimini uygulayın.

Amaç geliştirici üretkenliğini düşürmek değil; IDE'yi, diğer kurumsal endpoint'ler gibi yönetilen bir tedarik zinciri yüzeyi haline getirmektir.

Güvenlik Doğrulaması

Bu riski kendi sisteminizde test ettirdiniz mi?

Eresus Security; sızma testi, AI ajan güvenliği ve kırmızı takım operasyonlarıyla gerçek istismar kanıtı üretir.

Pilot test talep et

İlgili Araştırmalar

İlgili Hizmetler