npm Tedarik Zinciri Saldırılarından Nasıl Korunulur?

By Codefacture••6 dk okuma

npm Tedarik Zinciri Saldırılarından Nasıl Korunulur?

 

Tipik bir Next.js veya Node.js uygulaması, kendi ekibinin yazdığından çok daha fazla yabancıların yazdığı kod içerir. Her bağımlılık kendi bağımlılıklarını getirir ve tek bir npm install komutu, hiç tanışmayacağınız kişilerin bakımını yaptığı yüzlerce paketi çekebilir. Saldırganlar için bu bir fırsattır: tek bir şirkete sızmak yerine yaygın kullanılan bir paketi ele geçirir ve normal güncelleme sürecinin kodlarını binlerce kuruluşa taşımasına izin verirler. Bu tedarik zinciri saldırıları giderek daha karmaşık hale geldi ve 2026'da paketten pakete otomatik olarak bulaşan, kendi kendine yayılan solucanlarla yeni bir seviyeye ulaştı.

 

ChainDrop'ta Ne Oldu?

Ağustos 2026'nın başında ChainDrop olarak bilinen bir tedarik zinciri solucanı npm kayıt deposunda yayıldı. Saldırı bir bakımcının GitHub hesabının ele geçirilmesiyle başladı. Saldırgan zararlı dosyaları doğrudan projelerin ana dallarına gönderdi ve ardından projelerin kendi meşru GitHub Actions iş akışları üzerinden yeni sürümler yayınladı. Sürümler gerçek pipeline'lar tarafından derlendiği için geçerli provenance bilgisi taşıyordu; bu yüzden yalnızca provenance kontrolleri onları işaretlemezdi.

Virüslü her pakete kurulum sırasında otomatik çalışan bir preinstall betiği eklendi. Bu betik ayrı bir JavaScript çalışma ortamı indirip onunla ortam değişkenlerini, yerel yapılandırma dosyalarını, GitHub ve npm token'larını, CI gizli bilgilerini ve bulut sağlayıcıları, veritabanları ile Stripe ve Slack gibi servislerin kimlik bilgilerini toplayan bir bilgi hırsızı çalıştırdı. Solucan çalınan npm token'larıyla diğer paketlerin virüslü sürümlerini yayınlayarak daha da yayıldı. Raporlar, toplamda aylık milyarlarca indirmeye sahip yüzlerce ila binden fazla etkilenmiş paket saydı. Saldırı, ilk kez 2025'te Shai-Hulud solucanında görülen tekniklerin üzerine kuruluydu.

 

npm Tedarik Zinciri Saldırıları Nasıl İşler?

Saldırıların çoğu birkaç tekrarlayan kalıbı izler:

  • Hesap ele geçirme: saldırganlar bir bakımcının kimlik bilgilerini çalar veya oltalamayla ele geçirir ve meşru bir paketin zararlı sürümünü yayınlar.
  • Kurulum betikleri: preinstall ve postinstall betikleri npm install sırasında otomatik çalışır ve zararlı koda geliştiricinin bilgisayarına veya CI ortamına anında erişim sağlar.
  • Typosquatting: popüler paketlere benzer isimli paketler, birinin yazım hatası yapmasını bekler.
  • Bağımlılık karışıklığı: şirket içi özel paketlerle aynı isme sahip herkese açık paketler, derleme araçlarını saldırganın sürümünü kurmaya kandırır.
  • Solucan yayılımı: çalınan token'lar diğer paketlerin virüslü sürümlerini otomatik yayınlamak için kullanılır ve tek bir ele geçirme yüzlercesine dönüşür.

Hedef genellikle uygulamanın kendisi değil, etrafındaki kimlik bilgileridir. Geliştirici bilgisayarları ve CI çalıştırıcıları kaynak koda, bulut hesaplarına, canlı veritabanlarına ve ödeme sistemlerine erişim barındırır; bu da onları son derece değerli kılar.

 

npm Neleri Değiştirdi?

npm kayıt deposu buna karşılık güvenliği sıkılaştırdı. 2025 sonunda npm klasik token oluşturmayı kapattı ve mevcut olanları iptal etti, yazma yetkili granüler token'ların ömrünü en fazla 90 günle sınırladı, yeni yazma token'ları için iki faktörlü doğrulamayı varsayılan hale getirdi ve uzun ömürlü yerel yayın token'larını kısa ömürlü oturum token'larıyla değiştirdi. OpenID Connect ile güvenilir yayınlama (trusted publishing), CI pipeline'larının hiç uzun ömürlü token saklamadan yayın yapmasını sağlıyor. Bu değişiklikler çalınan token'ların değerini azaltıyor, ancak ChainDrop'un gösterdiği gibi ele geçirilmiş bir bakımcı hesabı ve meşru bir pipeline ile başlayan bir saldırıyı durduramıyor.

 

Projelerinizi Korumak İçin Pratik Adımlar

  • Lock dosyaları ve tekrarlanabilir kurulumlar kullanın. Lock dosyanızı commit'leyin ve CI'da npm ci kullanın; böylece derlemeler en son yayınlanan sürümü değil, tam olarak incelenmiş sürümleri kurar.
  • Kurulum betiklerini kontrol altına alın. Mümkün olan yerlerde yaşam döngüsü betiklerini --ignore-scripts ile veya .npmrc içinde ignore-scripts=true ile kapatın ve yalnızca gerçekten ihtiyaç duyan az sayıdaki pakete izin verin. pnpm'in güncel sürümleri gibi bazı paket yöneticileri artık bağımlılıkların kurulum betiklerini varsayılan olarak çalıştırmıyor.
  • Yeni sürümlere acele etmeyin. Zararlı sürümlerin çoğu saatler veya günler içinde tespit edilir. Yeni yayınlanan sürümleri benimsemeden önce kısa bir süre beklemek ve bağımlılık güncellemelerini otomatik birleştirmek yerine incelemek birçok saldırıyı önler.
  • Bağımlılıkları sürekli tarayın. Yalnızca bilinen CVE'lere değil, paket davranışına da bakan yazılım bileşen analizi ve zararlı paket tespit araçları kullanın.
  • CI'daki gizli bilgileri sınırlayın. Her pipeline'a yalnızca ihtiyaç duyduğu kimlik bilgilerini verin, derleme işlerini dağıtım işlerinden ayırın ve gizli bilgi olarak saklanan uzun ömürlü token'lar yerine OpenID Connect ile kısa ömürlü kimlik bilgilerini tercih edin.
  • Geliştirici ve bakımcı hesaplarını koruyun. GitHub ve npm'de güçlü iki faktörlü doğrulama veya passkey zorunlu tutun ve kodun inceleme olmadan doğrudan ana dala gönderilememesi için dal koruması uygulayın.
  • Envanter tutun. Yeni bildirilen bir zararlı paketin sistemlerinizin herhangi bir yerinde kullanılıp kullanılmadığını hızla yanıtlayabilmek için bir yazılım malzeme listesi (SBOM) tutun.

 

Ele Geçirilmiş Bir Paket Kurduysanız

Kullandığınız bir paketin ele geçirildiği bildirildiğinde hızlı hareket edin ve en kötüsünü varsayın. Etkilenen bir sürümü kuran her geliştirici bilgisayarını veya CI çalıştırıcısını, paket sonradan kaldırılmış olsa bile ele geçirilmiş kabul edin. npm, GitHub, bulut, veritabanı ve üçüncü taraf API anahtarları dahil o ortamın erişebildiği tüm kimlik bilgilerini değiştirin. Yetkisiz erişim için logları, beklenmeyen commit veya sürümler için depoları gözden geçirin. Etkilenen bilgisayarları ve çalıştırıcıları bilinen temiz bir durumdan yeniden kurun ve ilgili saldırı için güvenlik araştırmacılarının yayınladığı ele geçirme göstergelerini (IOC) kontrol edin.

 

Sıkça Sorulan Sorular

npm tedarik zinciri saldırısı nedir?

Zararlı kodun bir uygulamaya doğrudan saldırmak yerine npm kayıt deposundaki bir paket aracılığıyla ulaştırıldığı bir saldırıdır. Geliştiriciler veya derleme sistemleri paketi kurduğunda zararlı kod onların erişim yetkileriyle çalışır.

ChainDrop neydi?

ChainDrop, Ağustos 2026'da npm'de yayılan kendi kendine çoğalan bir solucandı. Ele geçirilmiş bir bakımcı hesabıyla başladı, meşru CI iş akışları üzerinden virüslü sürümler yayınladı, kurulum sırasında geliştirici ve CI kimlik bilgilerini çaldı ve çalınan token'ları başka paketlere bulaşmak için kullandı.

Next.js uygulamaları npm tedarik zinciri saldırılarından etkilenir mi?

Next.js, React ve Node.js projeleri dahil npm'den paket kuran her uygulama etkilenebilir. Asıl risk, kurulum sırasında geliştirici bilgisayarlarına ve CI ortamlarına ve bunların erişebildiği gizli bilgilere yöneliktir.

Paket provenance'ı bu saldırılara karşı koruma sağlar mı?

Provenance, bir paketin belirli bir pipeline tarafından derlendiğini doğrular; bu değerlidir ama kodun güvenli olduğunu kanıtlamaz. ChainDrop saldırısında zararlı sürümler meşru iş akışlarıyla derlendi ve geçerli provenance taşıyordu.

npm kurulum betiklerini kapatmalı mıyız?

Mümkün olan yerlerde evet. Kurulum betikleri, zararlı paketlerin otomatik kod çalıştırmasının yaygın bir yoludur. Bunları varsayılan olarak kapatıp yalnızca gerçekten ihtiyaç duyan paketlere izin vermek riski önemli ölçüde azaltır.

Zararlı bir paket kurduysak ne yapmalıyız?

Etkilenen bilgisayarları ve CI çalıştırıcılarını ele geçirilmiş kabul edin, erişebildikleri tüm kimlik bilgilerini değiştirin, şüpheli etkinlik için logları ve depoları inceleyin ve ortamları temiz bir durumdan yeniden kurun.

 

Sonuç

npm tedarik zinciri saldırıları ara sıra görülen zararlı paketlerden saatler içinde binlerce şirkete ulaşabilen otomatik solucanlara dönüştü. Tek bir önlem onları durduramaz, ancak katmanlı savunmalar durdurabilir: tekrarlanabilir kurulumlar, kontrol altındaki kurulum betikleri, yeni sürümlerin dikkatli benimsenmesi, sürekli tarama, asgari CI gizli bilgileri, güçlü hesap güvenliği ve bir şeyler ters gittiğinde net bir müdahale planı. Node.js veya Next.js projelerinizin tedarik zinciri riski açısından incelenmesini ya da derleme ve dağıtım pipeline'larınızın sıkılaştırılmasını istiyorsanız, ekibimiz yapınızı değerlendirip bu güvenlik önlemlerini hayata geçirebilir.

npmtedarik zinciri güvenliğinode.jsnext.jsgüvenlik

Bu yazıyı paylaş

Benzer Yazılar

Benzer yazı bulunamadı.

İlgili Hizmetimiz

Next.js Yazılım Hizmetimiz

Bu konuda profesyonel destek almak ister misiniz?

Hizmeti İncele

İletişim Formu

Bu form üzerinden tarafımıza ulaşabilirsiniz

© 2024-2026 Codefacture Yazılım A.Ş.Tüm Hakları Saklıdır
Hızlı Teklif

Aynı iş günü içinde dönüş yapıyoruz