1 puan yazan GN⁺ 2025-02-27 | 1 yorum | WhatsApp'ta paylaş
  • VS Code kullanıcıları, equinusocio.vsc-material-theme eklentisinin 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 .vscode veya .vscode-insiders/extensions içindeki eklenti klasörünün ve extensions.json girdilerinin 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-you eklentisini ö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_compromised gö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ı, .vscode dizininden 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ü silip extensions.json iç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/extensions içinden equinusocio.vsc-material-theme-34.7.9 klasörünü silip extensions.json içindeki ilgili nesneyi kaldırdıktan sonra yeniden çalıştığını söyledi
  • Örnek komutlar arasında, cat extensions.json | jq | grep eq ile equinusocio.vsc-material-theme girdisini bulma ve rm -rf equinusocio.vsc-material-theme-34.7.9 ile eklenti klasörünü silme adımları yer alıyor

1 yorum

 
GN⁺ 2025-02-27
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.

    • VSCode bu eklentiyi kaldıramıyor. Kaldırmamı isteyen bir uyarı çıkıyor; onaylayınca pencere yenileniyor ama eklenti olduğu gibi kalıyor ve aynı “sorun var” uyarısı tekrar çıkıp sonsuz döngüye giriyor.
      Eklentiler panelinden normal yöntemle kaldırınca da aynı şey oluyor.
      Sonunda %USERPROFILE%\.vscode\extensions içinden eklenti klasörünü elle silmem ve %USERPROFILE%\.vscode\extensions\extensions.json dosyasından da girdisini kaldırmam gerekti.
      VSCode 1.97.2, commit e54c774e0add60467559eb0d1e229c6452cf8447
    • Bu çelişkiyi biraz açıklamanızı isterim. Marketplace sorunlarını bildirmek için topluluğa güveniliyorsa, Microsoft popüler eklentileri bizzat denetlemeye yeterince yatırım yapmıyor demek değil mi?
      VSCode’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.
    • Yeniden yüklemeleri de takip etmek gerekebilir.
      https://marketplace.visualstudio.com/items?itemName=t3dotgg....
    • Open VSX tarafında da bu eklentinin kötü amaçlı olarak işaretlenip işaretlenemeyeceğini incelemek isterim. Kötü amaçlı kod içeren sürüm aralığını bilip bilmediğinizi merak ediyorum.
      https://open-vsx.org üzerinde bu eklentinin kapalı kaynak hâline geçmesinden sonraki sürümleri bulunmadığı için soruyorum.
    • Yanlış pozitifler gerçekten zor ve gerçekleştiğinde büyük darbe vuruyor.
      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-lock idi.
    Başka biri denetlemek isterse depo burada: https://github.com/t3dotgg/vsc-material-but-i-wont-sue-you

    • Bir temanın analiz kodu ve bu kadar çok bağımlılık biriktirebilmesi başlı başına saçma görünüyor. Tema normalde kendi kendine yeterli bir renk/stil paketi olmalı.
      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.
    • Depoda ya da Marketplace sayfasında nasıl göründüğünü gösteren tek bir ekran görüntüsünün bile olmamasının nedenini anlamıyorum. Ben mi kaçırdım?
  • İ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...

    • Ne istediğinize dikkat etmelisiniz.
      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.

    • Pantone’un bu konuda söyleyecek bir sözü olabilir gibi.
    • Birisi onu lunatic diye nitelemişti ama bu bir güvenlik meselesi. Dünyanın dört bir yanındaki geliştiricilerin IDE’lerine kötü amaçlı kodu başarıyla sokan birinin sadece dengesiz ya da deli olduğunu varsaymamak gerekir.
      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....

    • Asıl yazar geliştirme/bakım maliyetlerinden çok söz ettiği için, tam olarak neyin bakımının yapılması gerektiğini merak ettim.
      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ır
      TypeScript: 32 dosya, 2026 satır, 1650 satır kod, 243 satır yorum, 133 boş satır
      HTML: 2 dosya, 59 satır, 49 satır kod, 1 satır yorum, 9 boş satır
      Toplam 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/specific altı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.ts iç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ı.
    • Alternatif eklentiyi yapan kişi teknoloji YouTuber’ı theo gibi görünüyor (https://m.youtube.com/@t3dotgg)
    • Ah, o benim. Açıkçası bu kişinin biraz kafayı sıyırmış olması şaşırtıcı değil.
  • 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.

    • Popüler olan ve gelire dönüştürme potansiyeli taşıyan her şeyde böyle oluyor gibi.
  • 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

    • Genel olarak, katkıların genelde mevcut lisans altında sunulduğu varsayılır
      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
    • Material baştan onun çalışması mıydı ki?
    • Red Hat veya Terraform gibi, ağırlıklı olarak şirketlerin yönettiği birçok açık kaynak projenin ticari olmayan kullanıma dönmesiyle benzer
  • 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

    • Bir temanın güvenlik riski olabilmesi başlı başına ilginç
      Belli ki yalnızca basit renk kodları ve tanımlardan ibaret değil
      Muhtemelen tema sistemini daha sıkı hale getirmek gerekiyor