Güvenlik

Aynı npm saldırısını beş ülkenin kaynağından okudum — beş ayrı hikâye çıktı

keyv olayını önce ABD kaynaklarından okudum, sonra aynı olay ailesini Çin, Rus, Fransız ve İsrail kaynaklarında aradım. Aynı olay değil, aynı olaya sorulan dört ayrı soru çıktı.

Bu yazının İngilizcesi: English version.

Yazdığım şeylerin çoğu, bir paket yöneticisinin indirdiği kodun üstünde duruyor. Tedarik zinciri saldırıları bu yüzden "sektör haberi" değil: npm install yazan herkes için, doğrudan kendi makinesinde çalışacak kod meselesi.

Ağustosta keyv düştüğünde haberi okudum, paketlerimi kontrol ettim, geçtim. Sonra fark ettim ki okuduğum her şey tek bir yerden geliyordu: ABD merkezli güvenlik şirketlerinin blogları. Kendi kendime sordum, aynı olayı Çin'de, Rusya'da, Fransa'da, İsrail'de kim nasıl yazıyor?

Oturup baktım. Beklediğim şey "aynı haber, farklı dil" idi. Çıkan şey o değildi.

ABD: saatine kadar adli zaman çizelgesi

Wiz'in keyv analizi olayı saat saat yazıyor. 4 Ağustos 2026, 09:00 UTC'de saldırgan ele geçirdiği bakıcı hesabıyla zararlı sürümü yayımlıyor; 13:45'te ilk bulgular yayımlanıyor; 15:00'te C2 adreslerinin bir Ethereum akıllı sözleşmesinden eth_call ile çekildiği tespit ediliyor; 19:50'de yük ayrıntısı çıkıyor. Etkilenen paket sayısı 400'ün üzerinde.

Yükün ne topladığı listesi bence olayın en önemli kısmı: bulut kimlik bilgileri, geliştirici kimlik bilgileri, kripto cüzdanları, CI/CD sırları, /etc/shadowve yapay zekâ yapılandırma dosyaları: Claude, OpenAI, Codex, Cursor, Gemini.

Bu liste bir yıl önce böyle değildi. Saldırgan artık geliştiricinin makinesinde ajan kimlik bilgilerinin durduğunu biliyor.

ABD kaynaklarının güçlü olduğu yer bu: mekanik. Nasıl girdi, ne yaptı, nereye bağlandı, hangi IoC. Zayıf olduğu yer de aynı yerden çıkıyor — olay bittiğinde yazı da bitiyor.

Çin: olay değil, sistem arızası

Aynı ailenin daha eski bir halkası olan axios zehirlenmesi için 安全内参'daki analiz (31 Mart 2026) farklı bir yerden tutuyor. Teknik kısım aynı: axios@1.14.1 ve eski dalda axios@0.30.4, sahte bir bağımlılık (plain-crypto-js@4.2.1), postinstall ile inen ve macOS/Windows/Linux için ayrı yükleri olan bir uzaktan erişim truva atı, iş bitince kendini silen bir indirici.

Vurgu farkı burada başlıyor. Yazı saldırganın iki dala 18 saate yayılmış planlı dağıtımını ve anonim ProtonMail hesabı kullanımını öne çıkarıyor — yani beceriyi ve disiplini ölçüyor. Sonra olayı tek bir cümleye indiriyor: npm install = keyfi kod çalıştırma. Olayı bir kaza değil, açık kaynak yönetişimindeki tek-nokta-arıza riskinin doğal sonucu olarak sunuyor.

Bir de şu var, ve bunu yazarken şaşırdım: analiz isnat konusunda ısrarla temkinli. Dört motivasyon kategorisi sayıyor (ekonomik, casusluk, fidye, APT) ve hiçbirini seçmiyor. Devlet aktörü iması yok. Batı kaynaklarında bu ölçüde çekingen bir isnat bölümü nadiren görüyorum.

Rusya: tedarik zinciri, ulusal tehdit raporunun bir satırı

Rus tarafında npm saldırısı kendi başına haber değil. Positive Technologies'in yıllık tehdit derlemesinde npm olayları, Rus şirketlerine yönelen saldırı manzarasının içinde birer madde olarak geçiyor: Haziran 2025'te geliştirici hesapları ele geçirilip eslint tarafındaki paketlere Scavenger stealer sokulması, Eylül 2025'te kitlesel oltalamayla debug, chalk ve 16 kütüphanenin daha kompromize edilip pano hırsızı dağıtılması.

Raporun asıl derdi başka: kimin saldırdığı. En aktif gruplar olarak Thor, PhantomCore, Fluffy Wolf ve Cloud Atlas sayılıyor; Thor için 2024'te sıfır olan bildirim sayısı 2025'te 107. Ve birkaç yıllık aradan sonra sıfır-gün kullanımının geri döndüğü söyleniyor — Team46'nın bir Chrome açığını, GOFFEE'nin bir WinRAR açığını kullanması örnek veriliyor.

Yani soru "ekosistem neden bozuk" değil, "bize kim vuruyor ve neyle". Aynı olay, tamamen başka bir kaba konmuş.

Fransa: hikâye yok, tablo var

CERT-FR'nin 31 Ağustos 2026 tarihli haftalık bülteni anlatı kurmuyor. Bir tablo veriyor: CVE, ürün, CVSS, tür, sömürülüyor mu.

CVEÜrünCVSSTürSömürülüyor
CVE-2026-82078PaperCut9.4Uzaktan kod çalıştırmaEvet
CVE-2026-18963Keycloak9.1Politika atlatmaEvet (PoC herkese açık)
CVE-2026-72899Metabase10.0SQL enjeksiyonuBilgi yok
CVE-2026-60004Gitea9.8Uzaktan kod çalıştırmaEvet

Bu tabloyu okurken, haber okurken hissetmediğim şeyi hissettim: elinizdeki satırlardan biri kullandığınız bir aracı gösterdiği anda metin bir bilgi olmaktan çıkıyor, bir iş emrine dönüşüyor.

İsrail: saldırı yüzeyinin kendisi değişti

İsrail tarafı olayı bambaşka bir eksenden tutuyor. Zenity Labs, 6 Ağustos 2026'da Black Hat USA'de ajan tarayıcılarda tek tık gerektirmeyen bir açık sınıfı sundu: Claude in Chrome, Gemini in Chrome, Perplexity Comet, ChatGPT Atlas, Copilot Edge. Saldırı bazı durumlarda tarayıcıdan taşıp yerel geliştirici araçlarına ve iç servislere uzanabiliyor (CTech'in haberi).

Bunu npm yazısının içine koymamın sebebi şu: ABD analizindeki o yük listesi — Claude, Cursor, Codex yapılandırmalarını toplayan liste — ile İsrail araştırmasındaki yüzey aynı yüzey. Biri "saldırgan ajan kimlik bilgilerini çalıyor" diyor, diğeri "ajanın kendisi kandırılabiliyor" diyor. İki kaynağı yan yana koymadan bu bağlantıyı kurmak zor.

Beş kaynak, dört ayrı soru

Karşılaştırmayı yaptıktan sonra elimde kalan tablo şu:

KaynakSorduğu soruEn iyi olduğu yerTek başına okunursa eksik kalan
ABDNasıl çalıştı?Zaman çizelgesi, IoC, yük analiziOlay kapanınca ders de kapanıyor
ÇinBu ekosistem hakkında ne söylüyor?Sistemik çerçeve, isnat disipliniTek olayın operasyonel ayrıntısı
RusyaBize kim vuruyor?Aktör takibi, bölgesel manzaraKüresel ekosistem tartışması
FransaBugün neyi yamalayacağım?UygulanabilirlikNeden'i hiç anlatmıyor
İsrailHangi yeni yüzeyi kendimiz açtık?Ürün güvenliği araştırmasıVakanın kendisi

Dikkat edin: bunların hiçbiri "daha doğru" değil. Dördü de aynı gerçeği anlatıyor, farklı sorulara cevap verdikleri için farklı görünüyorlar. Tek kaynaktan okumanın maliyeti de bu — yanlış bilgi almıyorsunuz, sadece hep aynı soruyu soruyorsunuz.

Bende neyi değiştirdi

Yazıyı bitirirken rahatsız edici bir şeyin farkına vardım: tipik bir geliştirici makinesinde npm install'ın çalıştığı yer ile ajan kimlik bilgilerinin durduğu yer aynı yerdir. Wiz'in yük listesindeki o beş satır tam olarak orayı hedefliyor.

Bundan sonra iki kural benimsedim, ikisi de bedava:

  1. Ajan kimlik bilgileri ile paket kurulumu aynı güven bölgesinde durmayacak. Bir bağımlılık kurulumu, ajan yapılandırmasını okuyabiliyorsa tedarik zinciri saldırısının kapsamı benim düşündüğümden geniş demektir.
  2. Haftalık okuma listesine CERT-FR bülteni girdi. Haber bana olayı anlatıyor; bülten bana sıramı veriyor. İkisi aynı şey değil.

Bir sonraki yazıda ikinci maddeyi açacağım: bülten formatının haber formatından neden daha kullanışlı olduğunu ve ABD tarafında bu yıl sessizce değişen yama zorunluluğunu.

Bu blogda reklam vermek ya da birlikte iş yapmak

MCALAB bağımsız bir stüdyo. Sponsorluk, çapraz tanıtım ya da bir iş birliği için:

ads@mcalab.com.tr

Ayrıntılar: Reklam & iş birliği. Kullanıcı desteği için destek sayfası.