İnternet ve GüvenlikYazılım

TeamPCP Operasyonu: Shai-Hulud Şüphelileri Gözaltında

Avustralya Federal Polisi (AFP), 26 Ağustos 2026’da Batı Avustralya’da iki kişiyi TeamPCP adlı siber suç grubuyla bağlantılı olarak gözaltına aldı. FBI ve Batı Avustralya Eyalet Polisi’nin (WAPF) katıldığı ortak operasyon, açık kaynak yazılım paketlerine zararlı kod yerleştirerek 1.000’den fazla kuruluşa sızan bir kampanyayı hedef aldı. Grubun kullandığı Shai-Hulud adlı kendi kendini çoğaltan zararlı yazılım, 500 binden fazla kimlik bilgisinin çalınmasıyla ilişkilendiriliyor.

Operasyonun Detayları

Gözaltına alınan kişiler 21 ve 23 yaşında. AFP’nin açıklamasına göre soruşturma, tehdit istihbaratı şirketlerinin zararlı kod yerleştirme kampanyasını tespit etmesinin ardından Nisan 2026’da başlatıldı ve yaklaşık dört ay sürdü.

ŞüpheliSuçlama SayısıÖne Çıkan Suçlamalar
21 yaşındaki şüpheli8 suçlamaBilgisayar suçları için veri bulundurma/tedarik etme, yetkisiz veri değiştirme, 100 bin doların üzerinde suç geliriyle işlem yapma
23 yaşındaki şüpheli6 suçlamaBilgisayar suçları için veri bulundurma/tedarik etme, yetkisiz veri değiştirme

Suçlamalar için öngörülen üst sınır cezaları 3 ilâ 20 yıl arasında değişiyor. Her iki kişi de bu aşamada şüpheli konumunda; yargılama süreci henüz tamamlanmadı.

TeamPCP Nasıl Bir Grup?

Grubu inceleyen güvenlik araştırmacısı Charlie Eriksen, TeamPCP’yi “sınıflandırması zor” olarak tanımlıyor. Ne devlet destekli bir aktör, ne klasik organize suç örgütü, ne de ideolojik motivasyonlu bir grup profiline tam olarak oturuyorlar.

Araştırmacılara göre grubun asıl gücü teknik yenilikten değil, kamuya açık istismar yöntemlerini çok hızlı operasyonel hâle getirebilmelerinden geliyor. Yani sıfırıncı gün açıkları geliştirmek yerine, halihazırda bilinen teknikleri ölçeklendirip otomatikleştiriyorlar. Bu profil, savunma tarafında şu anlama geliyor: bilinen bir açığın yamalanmasındaki gecikme, doğrudan saldırı yüzeyine dönüşüyor.

Shai-Hulud Solucanı Ne Yapıyordu?

Kampanyanın merkezindeki Mini Shai-Hulud, kendi kendini çoğaltan bir solucan olarak tasarlanmıştı. Çalışma mantığı şöyleydi:

  1. Ele geçirilmiş bir pakete yerleştirilen kod, geliştirici makinesinde veya CI/CD ortamında çalışıyordu.
  2. Ortamdaki kimlik bilgilerini (npm token’ları, API anahtarları, bulut erişim bilgileri) topluyordu.
  3. Çalınan token’ları kullanarak geliştiricinin yayınlama yetkisi olan başka paketlere de aynı zararlı kodu ekliyordu.
  4. Toplanan sırlar herkese açık GitHub depolarına aktarılıyor, bazı özel depolar da herkese açık hâle getiriliyordu.

Eylül 2025’teki dalgada 180’den fazla npm paketinin bu şekilde ele geçirildiği bildirilmişti. Yayılmanın otomatik olması, bir tek ele geçirilmiş hesabın kısa sürede onlarca pakete dönüşmesine yol açıyordu.

Kampanyanın Bilançosu

  • Dünya genelinde 1.000’den fazla kuruluş etkilendi
  • 500 binden fazla kimlik bilgisi çalındı
  • En az 300 gigabayt veri dışarı sızdırıldı
  • Küresel ölçekte yüz milyonlarca dolarlık iyileştirme maliyeti oluştu
  • Hedefler arasında GitHub, Telnyx, LiteLLM, Aqua’nın Trivy’si, Checkmarx’ın KICS’i, TanStack, MistralAI ve Red Hat yer aldı

Tedarik Zinciri Saldırısı Neden Bu Kadar Etkili?

Klasik bir saldırıda hedefin savunmasını aşmanız gerekir. Tedarik zinciri saldırısında ise hedefin zaten güvendiği bir bileşeni zehirlersiniz. Modern bir web projesi yüzlerce, bazen binlerce dolaylı bağımlılık içerdiği için, geliştiricinin bu paketlerin tamamını tek tek incelemesi pratikte mümkün değil.

İşin ölçek boyutu da burada devreye giriyor: tek bir popüler paketin ele geçirilmesi, onu kullanan binlerce projeye aynı anda ulaşmak anlamına geliyor. Aynı örüntüyü daha önce ele aldığımız sahte Cloudflare kimlik avıyla ele geçirilen npm paketleri vakasında da görmüştük.

Neden Fark Edilmesi Zor?

Bu saldırıların tespit edilmesini zorlaştıran birkaç yapısal neden var. Zararlı kod genelde paketin normal işlevini bozmuyor; proje çalışmaya devam ettiği için bir arıza sinyali oluşmuyor. Kod çoğunlukla küçültülmüş (minified) veya kodlanmış hâlde ekleniyor, bu da gözle incelemeyi pratik olmaktan çıkarıyor. Ayrıca zararlı davranış çoğu zaman kurulum betiklerinde (postinstall) tetikleniyor; yani paketi projeye eklemek bile kodun çalışması için yeterli oluyor.

Bir başka zorluk, etkinin gecikmeli ortaya çıkması. Çalınan bir token günler veya haftalar sonra kullanıldığında, olayı ilk sızıntıya bağlamak güçleşiyor. Bu nedenle güvenlik ekipleri yalnızca “şu an bir anormallik var mı” sorusuna değil, “geçmişte hangi kimlik bilgileri hangi ortamlarda bulundu” sorusuna da cevap verebilmek zorunda.

Geliştirici Ekipler İçin Kontrol Listesi

  1. CI/CD ortamlarında uzun ömürlü token yerine kısa süreli, kapsamı daraltılmış kimlik bilgileri kullanın.
  2. npm kurulumlarında --ignore-scripts kullanmayı değerlendirin; birçok saldırı kurulum betikleri üzerinden çalışıyor.
  3. Bağımlılıkları sürüm sabitleyerek (lockfile) yönetin ve otomatik minor/patch güncellemelerini gözden geçirmeden birleştirmeyin.
  4. Yayınlama (publish) yetkisi olan hesaplarda iki faktörlü doğrulamayı zorunlu kılın.
  5. Bağımlılık tarama araçlarını (SCA) derleme hattına ekleyin ve uyarıları biriktirmeyin.
  6. Eylül 2025 ve sonrasındaki dalgalarda kullanılmış token’larınız varsa hepsini rotasyona alın; sızan bir token yıllar sonra da kullanılabilir.

Sonuç

TeamPCP tutuklamaları, açık kaynak tedarik zincirine yönelik en geniş kapsamlı kampanyalardan birinde somut bir adım anlamına geliyor. Ancak yargı süreci sürüyor ve kampanyanın kullandığı teknikler kamuya açık durumda; benzer saldırıların tekrarlanma ihtimali ortadan kalkmış değil. Ayrıntılar için Help Net Security’nin haberine göz atabilirsiniz.

Sık Sorulan Sorular

Projemin etkilenip etkilenmediğini nasıl anlarım?

Lockfile’ınızdaki paket sürümlerini, güvenlik firmalarının yayımladığı ele geçirilmiş paket ve sürüm listeleriyle karşılaştırın. Bağımlılık tarama araçları bu kontrolü otomatikleştirebilir. Şüphe hâlinde CI/CD ortamınızdaki tüm token’ları yenilemek en güvenli yaklaşımdır.

Tutuklamalar tehdidin bittiği anlamına mı geliyor?

Hayır. Kullanılan teknikler kamuya açık ve otomatikleştirilebilir durumda. Ayrıca grubun tüm üyelerinin yakalanıp yakalanmadığı bilinmiyor. Savunma önlemlerini gevşetmek için erken.

Sadece npm mi risk altında?

Hayır. Aynı mantık PyPI, RubyGems, Packagist, NuGet ve Go modülleri gibi tüm paket ekosistemleri için geçerli. Bu kampanya npm ağırlıklı ilerlemiş olsa da yöntem ekosistemden bağımsız.

Lockfile kullanmak beni korur mu?

Lockfile, kontrol etmediğiniz bir sürümün sessizce projenize girmesini engellediği için önemli bir katman. Ancak zararlı kod zaten sabitlediğiniz sürümde yer alıyorsa koruma sağlamaz. Bu nedenle lockfile’ı bağımlılık taraması ve token rotasyonu gibi diğer önlemlerle birlikte düşünmek gerekir.

Küçük bir projede de bu önlemleri almalı mıyım?

Evet, çünkü saldırılar hedef seçerek değil otomatik tarama ile ilerliyor. Küçük bir projede sızan bir bulut anahtarı da faturalandırılabilir kaynaklara erişim anlamına gelebilir. Token rotasyonu ve iki faktörlü doğrulama gibi adımlar düşük maliyetli önlemlerdir.

Kaynaklar ve İleri Okuma

Resmî dokümantasyon

Sitedeki ilgili rehberler

Suçlama mahkûmiyet değildir; grubun geçmiş dalgaları ve gözaltındaki kişilere isnat edilen somut eylemleri aynı kapsam gibi sunmayın. –ignore-scripts kurulum betiklerini engeller ama uygulama import sırasında çalışan kötü kodu durdurmaz, bazı meşru paketleri bozabilir. Lockfile zararsızlık sertifikası değildir. Şüpheli paketi kaldırmak sızmış anahtarı iptal etmez; temiz ortamda yeniden build, erişim kaydı, token iptali ve kısa süreli scoped kimlik bilgisi birlikte gerekir.

özgür BAYRAM

Özgür Bayram, WordPress, Laravel, yapay zekâ ve web performansı alanlarında çalışan bir yazılım geliştiricisidir. Bilim Meraklısı’nda teknoloji, yazılım, hosting, SEO ve dijital araçlar hakkında anlaşılır, uygulanabilir rehberler hazırlar. Amacı, teknik konuları sade bir dille anlatarak okuyucuların doğru kararlar vermesine ve sorunlarını güvenle çözmesine yardımcı olmaktır.

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu