Material Theme, VS Code Marketplace’ten kaldırıldı
(web.archive.org)- VS Code kullanıcıları,
equinusocio.vsc-material-themeeklentisinin problematic olarak bildirildiği mesajıyla kaldırıldığını; yeniden kurulumun engellenmesi veya tekrarlayan açılır bildirimler gibi sorunlar yaşadıklarını paylaştı - GitHub Q&A’deki soru, Marketplace yorumlarının güvenilirliğini sorgulayarak başladı; seçilen yanıt ise t3dotgg’nin alternatif eklentisi bağlantısına yönlendiriyor
- Tartışmanın merkezinde, eklentinin closed-source’a geçmesi, kodun obfuscate edildiği iddiaları ve geliştiricinin inceleme yorumlarına verdiği yanıtların güveni sarsması yer alıyor
- Bazı kullanıcılar, silinmiş commit ve tartışma kayıtları ile 6 ay önceki bir Reddit gönderisini gerekçe göstererek geçmişte de eklentinin compromised olup olmadığı konusunun tartışıldığını paylaştı
- Tekrarlayan açılır bildirimlerden kurtulmak için
.vscodeveya.vscode-insiders/extensionsiçindeki eklenti klasörünün veextensions.jsongirdilerinin elle silinmesi, hatta bazı durumlarda VS Code’un yeniden kurulması gerektiğine dair örnekler aktarıldı
VS Code’un gösterdiği sorun mesajı
- Bir kullanıcı, VS Code’un
We have uninstalled 'equinusocio.vsc-material-theme' which was reported to be problematic.mesajını gösterdiğini paylaştı - VS Code’u kapatıp yeniden açtığında eklentinin tekrar kuruluyormuş gibi göründüğünü, elle kaldırdıktan sonra bile aynı mesajın görünmeye devam ettiğini söyledi
- Başka bir kullanıcı, VS Code’un eklentinin yeniden kurulmasını da engellediğini belirtti
- Settings Sync’in neden olabileceği yönünde görüşler de vardı; ancak sorunu yaşayan kullanıcı, Code’u yakın zamanda temiz kurduğunu ve yalnızca minimum eklenti ayarladığını belirterek bundan emin olmadığını söyledi
Seçilen yanıt ve alternatif eklenti
- Seçilen yanıt, Visual Studio Marketplace’teki
t3dotgg.vsc-material-theme-but-i-wont-sue-youeklentisini öneriyor - Soruyu soran kişi, bu yanıt bağlantısının t3dotgg’nin deposu ile desteklendiğini metne ekledi
- Bir kullanıcı, “Artık gerçek bir sonuç var ve bugün çalışmam gereken bir gündü” şeklinde tepki verdi
Güveni sarsan kod ve lisans tartışması
- Bir kullanıcı, yakın zamandaki closed-source’a geçişi ve önceden uyarı yapılmamasını sorun olarak gösterdi; endişelenen kullanıcılara geliştiricinin kaba yanıtlar verdiği review cevaplarını gördükten sonra artık güvenmediğini belirtti
- Aynı kullanıcı, obfuscate edilmiş kodun
obfuscator.ioçıktısına benzediğini ekledi - Başka bir kullanıcı, eklenti geliştiricisinin ürünlerinde Material Theme kullanan kişileri tehdit ettiğini ve bunun başlangıçta Apache License 2.0 olduğunu unutmuş gibi davrandığını iddia etti
- Bu kullanıcı, eski lisans dosyası gibi görünen bir bağlantı ekledi
- Aynı yorum, commit geçmişinin silinerek sanki en baştan farklı bir lisans varmış gibi gösterildiğini ileri sürdü
Silinen kayıtlar ve geçmiş şüpheler
- Bir kullanıcı, Git deposundan çok sayıda commit ve tartışma kaydının silinmiş gibi göründüğünü söyledi
- Aynı kullanıcı, 6 ay önce Reddit’teki
has_the_material_theme_extension_been_compromisedgönderisini bulduğunu ve bu gönderinin söz konusu depodaki bozuk bir discussion bağlantısına yönlendirdiğini paylaştı - Başka bir kullanıcı bunun “VSCode’da sevdiğim tek tema” olduğunu söyledi; bir diğer kullanıcı ise hâlihazırda çok sayıda fork bulunduğunu belirtti
Tekrarlayan açılır bildirimleri kaldırmak için denenen yöntemler
- Bir Linux kullanıcısı,
.vscodedizininden eklenti klasörünü elle sildiğini ancak sorunun çözülmediğini; VS Code’u yeniden kurunca açılır bildirimin kaybolduğunu söyledi - Bir Windows kullanıcısı,
%USERPROFILE%/.vscode/altında eklenti klasörünü silipextensions.jsoniçinden ilgili eklenti tanımını elle kaldırarak açılır bildirimi yok ettiğini paylaştı - Visual Code Insiders kullanan bir kullanıcı,
.vscode-insiders/extensionsiçindenequinusocio.vsc-material-theme-34.7.9klasörünü silipextensions.jsoniçindeki ilgili nesneyi kaldırdıktan sonra yeniden çalıştığını söyledi - Örnek komutlar arasında,
cat extensions.json | jq | grep eqileequinusocio.vsc-material-themegirdisini bulma verm -rf equinusocio.vsc-material-theme-34.7.9ile eklenti klasörünü silme adımları yer alıyor
1 yorum
Hacker News yorumları
Silinen gönderi burada görülebilir: https://web.archive.org/web/20250226020241/https://github.co...
VS Code ekibinden Isidor. Topluluktan bir üye bu eklenti hakkında derinlemesine bir güvenlik analizi yaptı ve kötü niyetli bir amacı düşündüren çeşitli tehlike işaretleri bulup bildirdi.
Microsoft güvenlik araştırmacıları bu iddiaları doğruladı ve ayrıca başka şüpheli kodlar da buldu.
Bu yayıncıyı VS Marketplace’te engelledik, ilgili tüm eklentileri kaldırdık ve bu eklentinin çalıştığı tüm VS Code örneklerinden kaldırılmasını sağladık.
Açıkça belirtmek gerekirse, bu işlem telif hakkı ya da lisansla ilgili değil; yalnızca potansiyel kötü niyetlilik nedeniyle yapıldı.
Yakında https://github.com/microsoft/vsmarketplace/ adresinde daha ayrıntılı bir duyuru yayımlayacağız.
Ayrıca VS Marketplace güvenliğe yatırım yapmayı sürdürüyor; eklenti çalışma zamanı güveniyle ilgili bilgiler https://code.visualstudio.com/docs/editor/extension-runtime-... adresinde görülebilir.
Eklentiler panelinden normal yöntemle kaldırınca da aynı şey oluyor.
Sonunda
%USERPROFILE%\.vscode\extensionsiçinden eklenti klasörünü elle silmem ve%USERPROFILE%\.vscode\extensions\extensions.jsondosyasından da girdisini kaldırmam gerekti.VSCode 1.97.2, commit
e54c774e0add60467559eb0d1e229c6452cf8447VSCode’un güven modelinin de temelden bozuk olduğunu düşünüyorum. İstemci makinede, herhangi bir sandbox olmadan, rastgele üçüncü taraf kodu çalıştırılıyor.
Azure’da bu düzeyde bir güvenliği dağıtmazdınız; peki VSCode’da “başkalarının makinesinde rastgele üçüncü taraf kod çalıştırmak” neden uygun görülüyor?
VSCode ekibinin çalışmalarını takdir ediyorum ve gerçekten kullanıyorum, ama sandbox yokluğu beni hep rahatsız etti.
https://marketplace.visualstudio.com/items?itemName=t3dotgg....
https://open-vsx.org üzerinde bu eklentinin kapalı kaynak hâline geçmesinden sonraki sürümleri bulunmadığı için soruyorum.
Material Theme ve Material Theme Icons’ın yayıncı hesabı Equinusocio yanlışlıkla işaretlendi ve artık geri yüklendi.
Güvenlik için hızlı hareket ettik ama hata yaptık. Bu temalar Microsoft içindeki çeşitli kötü amaçlı yazılım tespit göstergelerini tetikledi ve soruşturma sonucunda yanlış bir sonuca vardık.
VS Code ekosisteminin güvenliğini çok önemsiyoruz ve kullanıcıları korumak için hızlı davrandık.
Equinusocio eklenti yazarının hayal kırıklığını ve sert tepkisini anlıyoruz; sesini duyduk. Kötü bir durum, ama bazen böyle şeyler olabiliyor. Elimizden gelenin en iyisini yapıyoruz ama biz de insanız; şimdi bu işi toparlayıp ilerlemeyi umuyoruz.
Obfuscation uygulanmış koda ilişkin politikamızı netleştirecek, tarayıcılarımızı ve soruşturma süreçlerimizi güncelleyerek bunun yeniden yaşanma olasılığını azaltacağız.
Bu eklentiler güvenlidir ve VS Code topluluğunun kullanabilmesi için geri yüklenmiştir.
Material Theme: https://marketplace.visualstudio.com/items?itemName=Equinuso...
Material Theme Icons: https://marketplace.visualstudio.com/items?itemName=Equinuso...
Yazarın bu sonuçların ortasında kalması nedeniyle tekrar özür diliyoruz; gelecekteki tema ve eklentilerini de sabırsızlıkla bekliyoruz. Kendisiyle iletişime geçip telafi adımlarını görüştük ve gösterdiği sabır için teşekkür ettik.
Scott Hanselman ve Visual Studio Code Marketplace ekibi - @shanselman
Bu eklentinin en öne çıkan fork’u olan “Material Theme (But I Won't Sue You)”yu oluşturdum.
Asıl bakımcı geçen yıl çizgiyi tamamen aştı. Başta Apache 2 olan kaynak kodunu çevrimdışına aldı ve alternatif sürümler barındıran ya da bunu başka IDE’lere dahil eden kişileri dava etmekle tehdit etmeye başladı.
Yeterince temkinli olmak adına fork’umda şu önlemleri aldım. VS Code ekibi şu anda denetim yapıyor ve kötü amaçlı koddan tek bir parça bile bulunursa Marketplace’ten hemen kaldırmalarına ve kullanıcılardan zorla kaldırmalarına tamamen izin verdim.
Kod tabanını da kapsamlı biçimde denetledim; kötü amaçlı görünen bir kısım yoktu. Değişiklik günlüğü, analiz, Open Collective ve HTML render etme ile ilgili tüm kodları kaldırdım.
Biraz endişe verici olan tek şey değişiklik günlüğü için kullanılan HTML ve Sanity yükleyicisiydi; bu yüzden onları tamamen söküp attım. İki PR ile neredeyse tüm bağımlılıkları ve 7.000’den fazla satırı kaldırdım; bunların çoğu
package-lockidi.Başka biri denetlemek isterse depo burada: https://github.com/t3dotgg/vsc-material-but-i-wont-sue-you
Daha da akıl almaz olan, birinin benim makinemden herhangi bir şeyi “zorla kaldırabilmesi”.
VS Code kullanıcısı olmadığıma seviniyorum. Marketplace ve eklentilerde tipik kurumsal gürültünün tamamı yaşanıyor gibi.
İlginç biçimde Reddit’te biri 7 ay önce bu eklentideki şüpheli değişiklikleri fark etmiş [1]. Açık kaynakta obfuscation genellikle çok büyük bir tehlike işaretidir.
Microsoft, VS Code eklenti güvenlik modelini ciddi biçimde yeniden düşünmeli. Mevcut haliyle saldırı hedefi olmak için fazla kârlı hale geldi.
Bir geliştiriciyi engelleseniz bile ardından 10 yeni kötü amaçlı eklenti gelecektir.
[1] https://www.reddit.com/r/vscode/comments/1eq40o2/has_the_mat...
VS Code, Microsoft’un çıkardığı neredeyse en iyi ürün olabilir ve bunun büyük nedenlerinden biri eklenti Marketplace’i.
Microsoft Marketplace’i daha sıkı denetlerse VS Code’un kalitesinin kötüleşme ihtimali yüksek.
Gerekçe şu: Marketplace incelemesi sıkılaşırsa giriş bariyeri yükselir ve toplam eklenti sayısı azalır. Eklentiler azalırsa Microsoft’un özellikleri doğrudan VS Code’un kendisine ekleme motivasyonu oluşur. Microsoft ne kadar çok özellik eklerse VS Code o kadar şişkinleşir.
Sonuçta eklenti Marketplace’inde güvenlik denetimini artırmak daha şişkin bir VS Code’a yol açabilir.
Elbette eklenti Marketplace’inde daha iyi güvenlik kontrolleri olsa güzel olurdu, ama Microsoft’un bunu gerçek kullanıcılar için ürünü iyileştirecek şekilde yapacağına inanmıyorum.
İlgili şeyleri okuyunca bu kişi dengesiz görünüyor. Kelimenin tam anlamıyla onaltılık renk kodlarını kendi mülkü sanıyor gibi.
Teknik olarak da pek iyi değil ve iyi insanları hep uzaklaştırmış.
Yazılımını kullanmıyorum, ama bu olaydan bir an önce sıyrılmasını ve Material’ı kendisinin icat etmediğini öğrenmesini umarım.
Aksine kurnaz ve aldatıcı olabileceğini, hatta bir istihbarat kurumunun piyonu olabileceğini düşünmek gerekir.
Geliştirici araçlarına kötü amaçlı kod yerleştiren biri hakkında bu tür şüpheler taşımak paranoya değildir.
Birisi alternatif eklenti olan Material Theme (But I Won't Sue You)’yu yayımlamış.
https://marketplace.visualstudio.com/items?itemName=t3dotgg....
https://github.com/t3dotgg/vsc-material-but-i-wont-sue-you deposunu klonlayıp baktım; kod satırı özeti şöyle:
CSS: 2 dosya, 142 satır, 119 satır kod, 0 satır yorum, 23 boş satırTypeScript: 32 dosya, 2026 satır, 1650 satır kod, 243 satır yorum, 133 boş satırHTML: 2 dosya, 59 satır, 49 satır kod, 1 satır yorum, 9 boş satırToplam 36 dosya, 2227 satır, 1818 satır kod, 244 satır yorum, 165 boş satır
Bunun içindeki 622 satır TypeScript,
scripts/generator/settings/specificaltındaki varyantlara göre onaltılık renk tanımları.Kalanı da genel olarak boilerplate gibi görünüyor; örneğin
scripts/generator/color-set.tsiçindeki 599 satır böyle.Bu yüzden soru hâlâ duruyor: Tam olarak neyin bakımı yapılmalı da birkaç dakikadan fazlası gerekiyor?
Yıllarca çok daha ciddi açık kaynak projeler yayımlayıp bakımını yaptım ama maddi katkı beklediğim hiç olmadı.
Material temasında insanları böyle yapan ne var acaba? Yaklaşık 5 yıl önce IntelliJ tarafında da benzer bir şey olmuştu.
Yine de o, kelimenin tam anlamıyla sadece renklerden ibaret değildi.
Depodaki kötü amaçlı kısmın nerede olduğunu gösterebilecek biri var mı? Bulamadım
Karartılmış kodu burada buldum: https://web.archive.org/web/20250226020241/https://github.co...
Bu kişinin başkalarının katkılarını aldıktan sonra kapalı kaynaka çevirmesi gerçekten tuhaf. Doğru bir şey gibi gelmiyor ama telif hakkı uzmanı değilim
Bakım sorumlusu lisansı değiştirebilir, ancak bu geçmiş katkıları etkilemez. Temelde lisans değişikliğine kadar olan her şey eski lisansını korur
Popüler yazılımların lisans değiştirse bile fork'lanabilmesinin nedeni budur
Lisansı geriye dönük değiştirmek için katkıda bulunanların onayı gerekir ya da böyle bir yetki veren bir belge olmalıdır
Katkıda Bulunan Lisans Sözleşmesi (CLA), bakım sorumlusuna geçmiş kısımların lisansını da istediği gibi değiştirme hakkı verebilir; ancak her CLA böyle değildir
Lisansını değiştiren ünlü yazılımlar arasında Redis ve Terraform var. Bu durumlarda bile hâlihazırda dağıtılmış yazılım hâlâ eski lisansla kullanılabilir ve o eski lisans fork'a izin verir
Günümüzde çoğu araçta varsayılan olarak oldukça iyi hazırlanmış temalar bulunması güzel
Bu tür riskleri azaltmak ve kurulan uzantı/eklenti sayısını en aza indirmek istiyorsanız oldukça gerçekçi bir seçenek oluyor
Elbette yazılımların bu düzeyde temalandırılabilmesi ve bazı durumlarda kullanılabilirliği ve erişilebilirliği iyileştirebilmesi de güzel
Ancak izin kısıtlama ile ilgili özellik taleplerinin ele alınması gerekiyor
Belli ki yalnızca basit renk kodları ve tanımlardan ibaret değil
Muhtemelen tema sistemini daha sıkı hale getirmek gerekiyor