deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak dev.to (home feed)

Yeniden inşa edilen GitHub Trending hattı, yalnızca README içeren dört malware repositorisini ortaya çıkardı

Bir dev.to yazısı, Trending sayfası sessizce bozulduktan sonra GitHub Trending'i Search API üzerinden yeniden inşa etmeyi ve README'lerinden PowerShell malware servis eden, yıldız toplayan dört tek dosyalık repository keşfetmeyi anlatıyor.

Yeniden inşa edilen GitHub Trending hattı, yalnızca README içeren dört malware repositorisini ortaya çıkardı

Temeli olmayan bir trending hattı

GitHub'ın Trending özelliğinin bir API'si yok; tek bir HTML sayfası olarak var. dev.to'da felixwang007 adıyla paylaşım yapan bir geliştirici, günlük özet hattı sessizce bozulduğunda bunun ne kadar kırılgan olduğunu fark etti: trending sayfasına yapılan istek yaklaşık 19 saniye asılı kaldı ve ne yönlendirme, ne engelleme sayfası, ne de yanıt gövdesi olmadan başarısız oldu. Ardından denedikleri bir ayna site her şeyi istemci tarafında işliyor ve boş bir kabuk döndürüyordu.

Çözüm, trending'i GitHub'ın Search API ile yaklaşık olarak taklit etmekti: yakın bir tarihten sonra oluşturulmuş repository'leri yıldız sayısına göre sıralamak. Bu yaklaşım stabil ve kimlik doğrulamalı, ama trending değil. Yazı üç kör nokta ölçüyor. Ham yıldız sayıları hızdan çok üne ödül veriyor — aynı sorgu daha eski repository'ler üzerinden çalıştırıldığında freeCodeCamp gibi kalın devler ortaya çıkıyor, bugünle bir ilgisi yok. Yeni-oluşturulmuş filtresi, aniden ivmelenen eski bir repository'yi yapısal olarak göremiyor. Ve tek sayılık bir sıralama, bir repository'nin gerçek kod içerip içermediğine dair hiçbir sinyal taşımıyor.

Tek dosyadan oluşan dört repository

Pencere 72 saate daraltıldığında, en hızlı yükselen on yeni repository'den dördü tam olarak tek dosyadan oluşuyordu: iki ila dört kilobaytlık bir README. Bu dördü — Blockadezoshack/Microsoft-Project, BlackCrewmanFringe/AutoCad, AxeEradicate/Fps-Booster-for-Windows ve beachbladesmanloop/Hwid-Spoofer — fork'u, sürümü, lisansı yoktu ve yazıya göre, bariz biçimde içermeyedikleri ticari ürünler için cilalı pazarlama diliyle yazılmış açıklamalara sahipti. Her biri 3 ve 4 Ekim 2026'da iki küme halinde, beş saniye arayla oluşturulmuş ve son push yapılmıştı — bu da, yazarın iddiasına göre, tek seferde işlenip push edilen bir şablonun imzası.

Payload ve ekildiğinin kanıtı

Tüm README'ler aynı hostu, PowerShell loader servis eden ps-ps.cc'yi gösteriyordu. Yazar erişilebilirliği yalnızca bir HEAD isteğiyle doğruladı; hiçbir şey indirmedi veya çalıştırmadı. Yemler tanıdık bir örüntü izliyor: uzak bir betiği indirip execution policy atlanarak çalıştırma talimatı, okuyuculara gerçek zamanlı antivirüs taramasını kapatmalarını söyleyen bir sorun giderme bölümü ve alışılmadık derecede açık sözlü biçimde, repository'nin sıralanmak üzere tasarlandığı arama sorgularını listeleyen bir bölüm. Bu repository'ler geliştiriciler için değil, arama keşfi için mühendislik edilmişti.

Yıldız sayıları da üretilmişti. Events verisi, yaklaşık 100 yıldızın dört saniye içinde tek bir patlamayla geldiğini ve fork'ların sıfır olduğunu gösteriyor — yazar bu şekli insan ilgisi değil, betiklerle yıldız tarlalcılığına bağlıyor.

Yazıdan iki pratik not: stargazers endpoint'inde yıldız zaman damgaları için belgelenen media type testlerde 404 döndürdü; 90 günlük pencereye sahip events endpoint ise WatchEvent zaman damgalarını ortaya koyuyor. Ve yıldız zamanları repository payload'ının parçası olmadığından, patlama tespiti her repository için her zaman ek bir isteye mal oluyor.

Kontrol vakası

Yazar filtreyi aşırı uydurmamaya özen gösteriyor. Aynı ilk 25'teki meşru bir proje — 1.394 yıldızlı, 2B ve 3B kat planı editörü — yalnızca beş dosya içeriyor; dolayısıyla az dosyayı dolandırıcılıkla eşitleyen saf bir kural hedefi ıskalardı. Vakaları ayıran şey fork'lar artı geliş şekli: gerçek proje 287 fork ve üç güne yayılmış yıldızlar gösterirken, sahteler üç haneli yıldızları sıfır fork ve tek bir patlamayla eşleştiriyor.

Yeniden inşa edilen özetin adayları artık yayından önce küçük bir kural setinden geçiyor. Bu set; markdown dışında kodu olmayan repository'leri, fork'suz yıldızları, watch event'lerinin patlamalı gelişini, kullanıcıları uzak betik çalıştırmaya ya da antivirüsü kapatmaya yönlendiren README'leri, neredeyse anlık oluştur-ve-push yaşam döngülerini ve aynı gün oluşturulmuş repository'ler arasında paylaşılan payload domain'lerini reddediyor. Son kural, yazarın en genel bulduğu kural; çünkü her sahte repository tek başına sıradan görünüyor ve yalnızca kümeler koordinasyonu ele veriyor.

Neden önemli

Trending listeleri insanlar, bültenler ve araçlar tarafından bir kürasyon sinyali olarak tüketiliyor ve bu olay o sinyalin ne kadar ucuza taklit edilebileceğini gösteriyor: kodu sıfır olan repository'ler, tarlanmış yıldız patlamasının da yardımıyla bir gün içinde yeni repository'lar sıralamasının zirvesine ulaştı. Hedeflenen kurbanlar, ticari yazılımların ücretsiz veya crack'li sürümlerini arayan insanlar — uzun süredir var olan bir malware dağıtım kanalı. dev.to yazısının daha geniş dersi şu: trending, kimsenin size teslim etmediği bir türevdir — bir yıldız sayısını güven olarak kabul etmeden önce her gün anlık görüntü almanız, yıldız deltalarını hesaplamanız ve geliş şekli ile repository bileşimini incelemeniz gerekir.

  • #github
  • #malware
  • #security
  • #powershell
  • #open-source

İlgili yazılar