DEV Community

Cover image for Axios NPM Tedarik Zinciri Saldırısı Nasıl Çalışır? (API Projelerinizi Nasıl Korursunuz?)
Tobias Hoffmann
Tobias Hoffmann

Posted on • Originally published at apidog.com

Axios NPM Tedarik Zinciri Saldırısı Nasıl Çalışır? (API Projelerinizi Nasıl Korursunuz?)

TL;DR

31 Mart 2026'da haftalık 83 milyon indirme ile en popüler JavaScript HTTP istemcisi Axios'un ana sürüm yöneticisinin npm hesabı ele geçirildi. Saldırganlar, geliştirici makinelerinden kimlik bilgileri, SSH anahtarları ve bulut tokenlerini çalan, platformlar arası bir RAT (Uzaktan Erişim Truva Atı) içeren kötü niyetli sürümler (1.14.1 ve 0.30.4) yayınladı. Hemen Axios'u 1.14.0 sürümüne düşürün, tüm gizli bilgilerinizi değiştirin ve sisteminizde ihlal göstergeleri olup olmadığını tarayın.

Apidog'u bugün deneyin

Giriş

Axios, JavaScript dünyasında en çok kullanılan HTTP istemcilerinden biri. Son beş yılda herhangi bir API istemcisi oluşturduysanız, uç noktaları test ettiyseniz veya bir ön ucu bir arka uca bağladıysanız, muhtemelen Axios kullandınız.

31 Mart 2026 UTC 00:21'de, bir tehdit aktörü ele geçirilmiş bir sürüm yöneticisi hesabı ile Axios 1.14.1 sürümünü yayınladı. Paket, yasal sürüme neredeyse tamamen benziyordu. Fark: 86 dosya arasında yalnızca package.json değişmişti. Bu tek dosya, npm install çalıştıran her makinede bir uzaktan erişim truva atı dağıtan plain-crypto-js adlı hayalet bir bağımlılık enjekte etti.

Kötü niyetli sürümler, npm tarafından kaldırılmadan önce yaklaşık 2-3 saat aktif kaldı. Haftalık 83 milyon indirme arasında 2-3 saat.

💡Eğer API'ler oluşturuyor veya test ediyorsanız, bu saldırı doğrudan araç zincirinizi hedef aldı. Apidog'un yerleşik HTTP istemcisi, API test iş akışınızda üçüncü taraf HTTP kütüphanelerine olan ihtiyacı ortadan kaldırarak bu tüm saldırı yüzeyini kaldırır. Aşağıdaki güvenlik denetimi adımlarını takip etmek için Apidog'u ücretsiz indirin.

Bu rehberde, saldırının teknik detaylarını, sistemlerinizin etkilenip etkilenmediğini tespit etme yollarını ve API ekiplerinin uzun vadede bağımlılık yönetimi stratejilerini nasıl değiştirmesi gerektiğini bulacaksınız.


Axios Tedarik Zinciri Saldırısı Nasıl Gelişti?

Zaman Çizelgesi

Saldırganlar operasyonu 18 saatlik bir pencerede hassas şekilde yürüttü:

  • 30 Mart, UTC 05:57: Temiz bir yem paketi olan plain-crypto-js@4.2.0 npm'de yayınlandı.
  • 30 Mart, UTC 23:59: Kötü niyetli plain-crypto-js@4.2.1 sürümü yayınlandı ve postinstall kancası eklendi.
  • 31 Mart, UTC 00:21: axios@1.14.1 ele geçirilmiş hesapla yayınlandı.
  • 31 Mart, UTC 01:00: axios@0.30.4 yayınlandı.
  • 31 Mart, ~UTC 03:15: npm, iki Axios sürümünü yayından kaldırdı.
  • 31 Mart, UTC 04:26: npm, plain-crypto-js için bir güvenlik tutucu paylaştı.

Hesap Nasıl Ele Geçirildi?

  • Saldırgan, ana Axios sürüm yöneticisi olan jasonsaayman npm hesabını ele geçirdi ve kayıtlı e-postayı değiştirdi.
  • Meşru sürümler OIDC ve GitHub Actions ile yayınlanırken, kötü niyetli sürümlerde OIDC bağlamı ve gitHead alanı yoktu.
  • Saldırgan, CI/CD üzerinden değil, çalınan uzun ömürlü npm belirteçleriyle manuel olarak yayın yaptı.

Bu detaylar, bağımlı olduğunuz npm paketlerinin yayınlanma kaynağını düzenli olarak doğrulamanın önemini gösterir.

Bağımlılık Enjeksiyon Tekniği

Saldırganlar Axios kaynak kodunu değiştirmedi, sadece package.json'da plain-crypto-js@^4.2.1'i runtime bağımlılığına ekledi. Paket Axios kodunda hiçbir yerde kullanılmadı, sadece npm install sırasında postinstall kancasını tetiklemek için eklendi.

86 dosyalık pakette temiz 1.14.0 ile kötü 1.14.1 arasında sadece package.json farklıydı.


Kötü Niyetli Yük Ne Yapıyor?

Bırakıcı Mekanizması

plain-crypto-js içindeki postinstall kancası, gizlenmiş bir setup.js dosyasını çalıştırdı. Kod iki katman gizleme içeriyordu:

  1. XOR şifreleme ("OrDeR_7077" anahtarı ile)
  2. Base64 + karakter ters çevirme

Çözüldüğünde, bırakıcı işletim sistemini belirliyor ve uygun platforma özel yükleri indiriyordu.

Platforma Özel Saldırı Yolları

macOS:

AppleScript'i /tmp/6202033 dizinine yazar
osascript aracılığıyla yürütür
Yükü /Library/Caches/com.apple.act.mond dizinine indirir
Enter fullscreen mode Exit fullscreen mode

Windows:

PowerShell'i %PROGRAMDATA%\wt.exe adresine kopyalar
cscript ile VBScript bırakıcıyı çalıştırır
Enter fullscreen mode Exit fullscreen mode

Linux:

Python RAT'ı /tmp/ld.py'e indirir
nohup python3 ile yürütür
Enter fullscreen mode Exit fullscreen mode

Her üç platform da aşağıdaki C2 adresleriyle iletişime geçti:

  • macOS: packages.npm.org/product0
  • Windows: packages.npm.org/product1
  • Linux: packages.npm.org/product2

RAT Yetenekleri

  • Keyfi kabuk komut yürütme
  • Dosya sistemi tarama ve dışa aktarma
  • İşlem listeleme/enjeksiyonu
  • Bellek içi ikili enjeksiyon (dosyasız yürütme)
  • 60 saniyede bir C2 iletişimi

Yani, saldırgan geliştirme makinenizin tam kontrolüne sahip olabilir; .env dosyalarını, SSH anahtarlarını ve bulut belirteçlerini kolayca çalabilir.

Adli Tıp Karşıtı: Kendi Kendini Temizleyen Yük

Yürütüldükten sonra bırakıcı:

  1. setup.js dosyasını sildi,
  2. Kötü niyetli package.json'u kaldırdı,
  3. Temiz bir package.md dosyasını package.json olarak yeniden adlandırdı.

Böylece, npm list ile bakıldığında yüklenmiş sürüm 4.2.0 gibi görünüyordu.


Bu Saldırının Arkasında Kim Var?

Google Tehdit İstihbarat Grubu, saldırıyı Kuzey Kore merkezli UNC1069 grubuna atfetti. macOS için kullanılan zararlı yazılım, Mandiant'ın WAVESHAPER arka kapısıyla önemli ölçüde örtüşüyor.

Bu tür gelişmiş saldırılar, kripto para çalmak ve bulut altyapısına erişmek için geliştirici araçlarını hedef alan iyi kaynaklı operasyonlara işaret ediyor.


Etkilenip Etkilenmediğinizi Nasıl Kontrol Edersiniz?

Adım 1: Axios Sürümünüzü Kontrol Edin

Her projede aşağıdakini çalıştırın:

npm list axios 2>/dev/null | grep -E "1\.14\.1|0\.30\.4"
Enter fullscreen mode Exit fullscreen mode

Sonuç çıkıyorsa, projeniz tehlikeli sürümü yüklemiş.

Adım 2: Kötü Niyetli Bağımlılığı Kontrol Edin

ls node_modules/plain-crypto-js 2>/dev/null && echo "POTANSİYEL OLARAK ETKİLENMİŞ"
Enter fullscreen mode Exit fullscreen mode

Klasör varsa, bırakıcı yüklenmiş ve çalışmış olabilir.

Adım 3: Sisteminizde RAT Yapılarını Kontrol Edin

macOS:

ls -la /Library/Caches/com.apple.act.mond 2>/dev/null
Enter fullscreen mode Exit fullscreen mode

Linux:

ls -la /tmp/ld.py 2>/dev/null
Enter fullscreen mode Exit fullscreen mode

Windows (PowerShell):

Test-Path "$env:PROGRAMDATA\wt.exe"
Enter fullscreen mode Exit fullscreen mode

Adım 4: Ağ Göstergelerini Kontrol Edin

Aşağıdaki adresleri engelleyin ve geçmiş erişimleri tarayın:

  • C2 alanı: sfrclak.com
  • C2 IP: 142.11.206.73
  • C2 URL: http://sfrclak.com:8000/6202033

Adım 5: CI/CD Derleme Günlüklerini Kontrol Edin

31 Mart UTC 00:21 – 03:15 arasında çalışan tüm CI/CD işlerini inceleyin. Bu süreçte Axios çözüldüyse, derleme ortamınız da etkilenmiş olabilir.


Acil İyileştirme Adımları

Etkilendiyseniz, sistemi tamamen ele geçirilmiş kabul edin ve aşağıdaki adımları uygulayın:

1. Axios'u Hemen Düşürün

npm install axios@1.14.0
Enter fullscreen mode Exit fullscreen mode

0.x dalı için:

npm install axios@0.30.3
Enter fullscreen mode Exit fullscreen mode

2. package.json'a Sürüm Geçersiz Kılmaları Ekleyin

npm için:

{
  "overrides": {
    "axios": "1.14.0"
  }
}
Enter fullscreen mode Exit fullscreen mode

Yarn için:

{
  "resolutions": {
    "axios": "1.14.0"
  }
}
Enter fullscreen mode Exit fullscreen mode

3. Kötü Niyetli Paketi Kaldırın

rm -rf node_modules/plain-crypto-js
Enter fullscreen mode Exit fullscreen mode

4. Tüm Kimlik Bilgilerini Değiştirin

Aşağıdakilerin tamamını değiştirin:

  • npm belirteçleri
  • AWS/GCP/Azure kimlik bilgileri
  • SSH anahtarları
  • GitHub tokenleri
  • .env dosyası API anahtarları
  • Veritabanı kimlik bilgileri
  • Ortam değişkenlerindeki tüm gizli bilgiler

5. Ağa Seviyesinde C2'yi Engelleyin

echo "0.0.0.0 sfrclak.com" | sudo tee -a /etc/hosts
Enter fullscreen mode Exit fullscreen mode

6. Yapıtlar Bulunursa, Makineyi Yeniden Oluşturun

RAT yapıtı bulursanız, makineye güvenmeyin ve temiz bir imajdan yeniden kurun.


API Geliştirme Ekipleri İçin Uzun Vadeli Savunmalar

Kilit Dosyaları ve Kesin Sürümleri Sabitleyin

Saldırı, ^ semver aralıklarını istismar etti. Bağımlılıkları kesin sürüme sabitleyin ve kilit dosyalarını commit edin. CI/CD'de şu komutu kullanın:

npm ci
Enter fullscreen mode Exit fullscreen mode

Kilit dosyası çözümünü zorunlu kılmak için.

CI/CD'de postinstall Betiklerini Devre Dışı Bırakın

Tüm saldırı, postinstall kancasına bağlıydı. Bunu devre dışı bırakmak için:

npm ci --ignore-scripts
Enter fullscreen mode Exit fullscreen mode

Gerekiyorsa .npmrc'de:

ignore-scripts=true
Enter fullscreen mode Exit fullscreen mode

Bağımlılıkları Düzenli Olarak Denetleyin

npm audit
npx socket-security/cli audit
Enter fullscreen mode Exit fullscreen mode

CI/CD'de zorunlu kılın. Kritik/High zafiyet varsa derlemeyi engelleyin.

HTTP İstemci Bağımlılık Yüzeyinizi Azaltın

API test iş akışınızda üçüncü taraf HTTP kütüphanelerine neden bağımlı olduğunuzu sorgulayın. Apidog, API testi, hata ayıklama ve dokümantasyon için yerleşik HTTP istemcisi sunar; Axios, node-fetch veya got'a ihtiyacınız kalmaz.

  • API testi: Apidog'un görsel test oluşturucusunu kullanın.
  • API hata ayıklama: Yerleşik istek inceleyici ile hata ayıklayın.
  • Sahte sunucular: Akıllı sahte sunucuyu kullanın.
  • CI/CD entegrasyonu: Apidog CLI ile npm HTTP bağımlılığı olmadan otomatik API testleri yapın.

HTTP istemcisi bağımlılığını kaldırmak için Apidog'u ücretsiz deneyin.

Paket Kaynağını Doğrulayın

npm, Sigstore ile paket kaynağı doğrulaması sunar:

npm audit signatures
Enter fullscreen mode Exit fullscreen mode

Bağımlı olduğunuz paketlerin OIDC kaynağı ve imzası olduğundan emin olun.


Bu, JavaScript Ekosistemi İçin Ne Anlama Geliyor?

Güven Modeli Bozuldu

npm'in güven modeli, sürüm yöneticisi hesaplarının güvenliğine dayanıyor. Tek bir ele geçirilmiş kimlik bilgisi, haftalık 83 milyon indirme alan bir paketi tehlikeye atabilir. 2FA yardımcı olur, ancak uzun ömürlü erişim belirteçleri hala bir risk.

Topluluk önerileri:

  • OIDC tabanlı yayıncılığın zorunlu olması
  • Kritik paketler için çift sürüm onayı
  • Çalışma zamanı izin kapsamlandırması (örn. Deno modeli)

Tedarik Zinciri Saldırıları Yavaşlamıyor

Her dil ekosistemi saldırı altında. API geliştiricileri için bağımlılık ağacı bir konfor değil, bir saldırı yüzeyidir.

Reddit yorumu: "NPM bugün internetin en büyük zayıflığıdır ve devasa bir felakete yol açacaktır." Axios saldırısı, riskin gerçek olduğunu gösteriyor.


Karşılaştırma: HTTP İstemci Bağımlılık Yaklaşımları

Yaklaşım Tedarik zinciri riski Bakım yükü Test yeteneği
Axios + özel betikler Yüksek (üçüncü taraf bağımlılığı) Yüksek (sürüm yönetimi) Manuel kurulum gerekli
Node.js yerel fetch Düşük (çalışma zamanına yerleşik) Düşük Sınırlı test özellikleri
Apidog yerleşik istemci Yok (npm bağımlılığı yok) Yok (platform tarafından yönetilir) Tam test, sahteleme, dokümanlar
curl/httpie betikleri Düşük (sistem düzeyinde araç) Orta Sınırlı otomasyon

Sıkça Sorulan Sorular

Axios'u şimdi kullanmak güvenli mi?

Evet. Sürümler 1.14.0 ve 0.30.3 temizdir. Ele geçirilmiş sürümler (1.14.1 ve 0.30.4) üç saat içinde yayından kaldırıldı. npm list axios ile sürümünüzü kontrol edin ve kilit dosyanızda güvenli sürümü sabitleyin.

RAT'ın makinemde çalıştığını nasıl anlarım?

Her platformda ilgili dosya/yapıları kontrol edin:

  • macOS: /Library/Caches/com.apple.act.mond
  • Linux: /tmp/ld.py
  • Windows: %PROGRAMDATA%\wt.exe Ayrıca, node_modules/plain-crypto-js var mı kontrol edin. Bırakıcı kendini temizlediğinden, yapıların olmaması güvende olduğunuzu garanti etmez.

Axios'u tamamen kullanmayı bırakmalı mıyım?

Hayır, zorunlu değil. Axios hâlâ güçlü ve bakımı yapılan bir kütüphane. Ancak, Node.js 18+ ile gelen yerel fetch ve Apidog gibi platformlar ihtiyaçlarınız için bağımlılık yüzeyini azaltabilir.

Projelerimde tedarik zinciri saldırılarını nasıl önleyebilirim?

  • Kesin bağımlılık sürümlerini sabitleyin.
  • Kilit dosyalarını commit edin.
  • CI/CD'de npm ci --ignore-scripts kullanın.
  • Bağımlılıkları düzenli olarak denetleyin.
  • npm audit signatures ile paket kaynağını doğrulayın.
  • API iş akışınızı entegre platformlara taşıyın.

Bu saldırı Claude Code kaynak sızıntısıyla ilgili miydi?

Hayır. Aynı gün olsa da olaylar birbirinden bağımsız. Axios saldırısı tedarik zinciri ihlaliydi, Claude Code sızıntısı derleme hatasından kaynaklandı.

Axios saldırısının arkasında kim vardı?

Google TAG, saldırıyı Kuzey Koreli UNC1069'a atfetti. macOS zararlısı, Mandiant'ın WAVESHAPER arka kapısıyla örtüşüyor.

Kaç geliştirici etkilendi?

Kötü niyetli sürümler 2-3 saat aktiftir. Haftalık 83 milyon indirme ile etki büyük olabilir. npm resmi sayı yayınlamadı. StepSecurity, bırakıcının 1.1 sn içinde C2 ile iletişime geçtiğini tespit etti.

Apidog tedarik zinciri saldırılarını önler mi?

Apidog, yerleşik HTTP istemcisi ile bağımlılık yüzeyinizi minimize eder. Axios, node-fetch gibi ek HTTP paketi yüklemenize gerek kalmaz. Böylece npm bağımlılıklarından kaynaklanan riskleri ortadan kaldırırsınız.


Temel Çıkarımlar

  • Axios tedarik zinciri saldırısı, çalınan tek bir sürüm yöneticisi hesabı ile haftalık 83 milyondan fazla indirmeyi tehlikeye attı.
  • RAT, macOS, Windows ve Linux dahil tüm platformlarda kimlik bilgileri, SSH anahtarları ve bulut belirteçlerini çalabiliyor.
  • Yukarıdaki tespit adımlarını kullanarak sistemlerinizi hemen kontrol edin.
  • Kesin bağımlılık sürümlerini sabitleyin ve CI/CD'de postinstall betiklerini devre dışı bırakın.
  • API testi için Apidog gibi yerleşik araçları kullanarak HTTP istemci bağımlılık yüzeyinizi azaltın.
  • Paket kayıt güvenliği, npm, PyPI ve RubyGems'i etkileyen sistemik bir sorundur.

Axios saldırısı bir uyarıdır: node_modules'daki her bağımlılık bir güven kararıdır. Bu kararı bilinçli verin.

Top comments (0)