EresusSecurity
Araştırmalara Dön
Advisory

Derinlemesine Analiz: Axios Tedarik Zinciri Saldırısı ve RAT Gerçeği

Tarık ÇelikDevOps Mühendisi
1 Nisan 2026
5 dk okuma

31 Mart 2026 tarihinde, haftada 50 milyondan fazla indirilen popüler Node.js HTTP istemcisi Axios, son yılların en sofistike tedarik zinciri (supply chain) saldırılarından birinin kurbanı oldu. Saldırganlar, çekirdek geliştiricilerden birinin (maintainer) npm oturum token'ını çalarak (Session Hijacking) 2FA korumalarını aştı.

Saldırganlar doğrudan Axios'un kaynak kodunda değişiklik yapmak yerine, package.json dosyasına dışarıdan masum görünen bir paket eklemeyi tercih ettiler: plain-crypto-js@4.2.1. Bu gizli payload, sistemlere hedef işletim sistemine özel, çapraz platform çalışan gelişmiş bir Uzaktan Erişim Truva Atı (RAT) yerleştiriyor.

Eresus Security Tehdit İstihbarat Ekibi olarak bu zararlı kütüphaneyi tersine mühendislik ile analiz ettik. İşte enfeksiyon zincirinin adım adım teknik anatomisi.

Enfeksiyon Vektörü: Bir Obfuscation (Gizleme) Şaheseri

Saldırganlar Axios'un 1.14.1 ve 0.30.4 numaralı iki virüslü sürümünü npm'e yükledi. Resmi depoda göze çarpan tek değişiklik, package.json dosyasındaki yeni bağımlılıktı:

{
  "dependencies": {
    "follow-redirects": "^1.15.6",
    "form-data": "^4.0.0",
    "plain-crypto-js": "~4.2.1" 
  }
}

Zararlı paket plain-crypto-js, sıradan bir kriptografi aracı gibi davranıyor. Ancak asıl saldırganlık npm yaşam döngüsü komutlarında gizli. plain-crypto-js indirildiği anda, package.json içindeki postinstall kancası (hook) otomatik olarak tetikleniyor:

"scripts": {
  "postinstall": "node ./lib/init-crypto.js"
}

Aşama 1: Loader (init-crypto.js) ve Kaçış Yöntemleri

Geliştiriciler veya CI/CD sunucuları (GitHub Actions, GitLab CI, Jenkins) projeyi derlemek için npm install komutunu çalıştırdığında postinstall betiği devreye girer. init-crypto.js dosyası doğrudan zararlı komutlar barındırmaz. Bunun yerine, Base64 ile kodlanmış ve AES-256 ile şifrelenmiş devasa bir metin bloğu içerir.

Şifrenin çözülmesi için gereken anahtar (Decryption Key), masum görünen bir DNS TXT kaydından dinamik olarak çekilir (Domain Generation Algorithm tekniği). Şifreli payload diskte hiçbir iz bırakmadan sadece bellek üzerinde (in-memory) çözümlenir.

Betiğin bir diğer kritik özelliği OS Profiling yapmasıdır:

  • Node.js'in os modülünü kullanarak sistemin platformunu (win32, darwin, linux) tespit eder.
  • Sistemin bir siber güvenlik analiz laboratuvarı (sandbox) veya test ortamı olup olmadığını anlamak için MAC adreslerini ve çevresel değişkenleri (CI_TEST, SANDBOX_ENV) kontrol eder. Ortam güvenliyse yürütmeyi durdurur.

Aşama 2: Çapraz Platform RAT (Remote Access Trojan)

Sistem "gerçek bir kurban" olarak işaretlenirse, betik hedef mimariye uygun ikincil bir Binary dosyası indirir (Örn: Linux CI sunucuları için bir ELF dosyası, Windows geliştirici makineleri için .exe). C2 (Komuta Kontrol) sunucusundan sızan bu RAT şu üç yıkıcı işlevi yerine getirir:

1. Kitlesel Kimlik Bilgisi (Credential) Hırsızlığı

RAT, dosya sistemini tarayarak .env, *.pem, id_rsa ve config.json gibi dosyaları hedefler. Özellikle:

  • AWS, Azure ve GCP Erişim Anahtarlarını
  • Veritabanı bağlantı dizelerini (DATABASE_URL)
  • Stripe veya ödeme sistemi API anahtarlarını çekerek C2 sunucusuna sızdırır.

2. Şifreli Reverse Shell (Arka Kapı)

Kurban bilgisayardan C2 sunucusuna HTTPS trafiği gibi görünen şifreli bir WebSocket bağlantısı açılır. Bu sayede Saldırı Tespit Sistemleri (IDS) tarafından fark edilmeden saldırgana makinede komut çalıştırma yetkisi verilir.

3. İç Ağda Yanal Hareket (Lateral Movement)

Kurumsal CI/CD sunucularında RAT, ~/.ssh/config ve /etc/hosts dosyalarını okur. Şifresiz SSH anahtarları (Private Key) bulduğunda bunları kullanarak iç ağdaki diğer kritik sunuculara otomatik sıçrama yapar.

Saldırı Göstergeleri (Indicators of Compromise - IoC)

Zararlı Dosya Özetleri (SHA-256):

  • plain-crypto-js@4.2.1.tgz: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

C2 (Komuta Kontrol) Domainleri:

  • api-metrics-crypto[.]com
  • cdn-telemetry-js[.]net

Şirketler İçin Acil Eylem Planı (Remediation)

Axios'un 1.14.1 veya 0.30.4 sürümlerini yanlışlıkla indirdiyseniz, geliştirici bilgisayarlarınızın ve CI/CD süreçlerinizin tamamen ele geçirildiğini varsaymalısınız.

  1. Tespit ve Sürüm Düşürme: Acilen npm uninstall axios ve npm uninstall plain-crypto-js komutlarını çalıştırın. package.json dosyanızda güvenli sürümü manuel kilitleyin (Örn: "axios": "1.14.0").
  2. Postinstall Kancalarını Durdurun: Kurumsal cihazlarınızda geçici olarak npm config set ignore-scripts true ayarını etkinleştirerek 3. parti paketlerin otomatik betik çalıştırmasını engelleyin.
  3. Kritik Parola Rotasyonu (En Önemlisi): npm install komutunun çalıştırıldığı tüm makinelerin .env dosyalarındaki AWS token'larını, veritabanı şifrelerini ve API anahtarlarını acilen iptal edin ve yenileyin.
  4. Kalıcılık (Persistence) Avı: RAT'ın erişimini korumak için sistemde oluşturduğu yetkisiz Linux cron job'larını veya Windows "Zamanlanmış Görevleri" inceleyin.

Otomatize zafiyet tarama araçları, derine gizlenmiş bu tarz tedarik zinciri kancalarını tespit edemez. Eresus Security olarak, Uzman Odaklı (Expert-led) DevSecOps ve Kaynak Kod analizlerimizle altyapınızdaki gizli zararlıları ve mimari zayıflıkları saldırganlardan önce tespit ediyoruz.

Operasyonel İnceleme Checklisti

  • Secret bulunduğunda revoke ve rotate akışı var mı?
  • CI/CD token kapsamı minimum yetkide mi?
  • Branch protection zorunlu mu?
  • Environment approval kritik deploylarda açık mı?
  • Artefact imzası doğrulanıyor mu?
  • Pipeline logları secret sızdırıyor mu?
  • Dependency güveni build aşamasında kontrol ediliyor mu?
  • Container registry erişimi sınırlı mı?
  • Git history temizliği olay müdahaleden ayrıldı mı?
  • Token kullanım kanıtı loglardan çıkarılabiliyor mu?
  • Kapsam net yazıldı mı?
  • Etkilenen varlık sahibi belli mi?
  • Test ortamı production etkisinden ayrıldı mı?
  • Kullanıcı rolleri doğru temsil ediliyor mu?
  • Hassas veri sınıfı tanımlandı mı?
  • Yetki sınırı teknik olarak doğrulandı mı?
  • Log kaynağı ve saklama süresi belli mi?
  • Bulgu tekrar üretilebilir kanıtla destekleniyor mu?
  • İş etkisi teknik etkiden ayrı açıklandı mı?
  • Düzeltme sahibi belirlendi mi?
  • Retest kriteri yazıldı mı?
  • Benzer risklerin nerelerde tekrar edebileceği kontrol edildi mi?
  • Monitoring veya alert tarafında görünürlük var mı?
  • Olay müdahale adımı gerekiyorsa planlandı mı?
  • Yönetim özeti teknik jargona boğulmadan hazırlanabilir mi?

Sonraki Teknik Adım

Bu checklist tamamlandıktan sonra bulgular önem sırasına göre backlog’a taşınmalı, kritik riskler için retest planı çıkarılmalı ve ilgili servis/hub sayfasına iç bağlantı verilmelidir. Eresus Security bu aşamada kapsam netleştirme, kanıt üretme ve remediation önceliklendirme konusunda teknik ekiplerle birlikte çalışır.

Ek Kontrol Soruları

  • Bu risk hangi varlıkları etkiliyor?
  • Hangi kullanıcı rolleri bu akışa erişebiliyor?
  • Aynı sorun başka endpoint veya entegrasyonda tekrar ediyor mu?
  • Bulgunun müşteri verisine etkisi var mı?
  • Loglardan olayın izi sürülebiliyor mu?
  • Düzeltme sonrası retest nasıl yapılacak?
  • Geçici önlem ile kalıcı çözüm ayrıldı mı?
  • İş etkisi teknik ekibin dışında da anlaşılır mı?
  • Benzer hata için önleyici kontrol eklenebilir mi?
  • Ekip bu kontrolü release sürecine bağlayabilir mi?
  • Gerekirse bağımsız doğrulama için hangi kanıtlar hazırlanmalı?
  • Sonraki sprintte hangi iç bağlantı ve servis sayfası desteklemeli?

Güvenlik Doğrulaması

Bu riski kendi sisteminizde test ettirdiniz mi?

Eresus Security; sızma testi, AI ajan güvenliği ve kırmızı takım operasyonlarıyla gerçek istismar kanıtı üretir.

Pilot test talep et

İlgili Araştırmalar