- NPM ekosisteminde popüler olan @ctrl/tinycolor dahil 40'tan fazla pakete kendini yayan kötü amaçlı yazılım enjekte edildi; bu da geliştirme ortamlarındaki gizli bilgilerden CI/CD kimlik bilgilerine kadar zincirleme enfeksiyona yol açabilen bir tedarik zinciri saldırısına neden oldu. Enfekte sürümler npm'den kaldırıldı
- Saldırı yükü, npm kurulum sürecinde Webpack bundle'ını (
bundle.js, ~3.6MB) eşzamansız olarak çalıştırıyor ve ortam değişkenleri, dosya sistemi ve bulut SDK'ları üzerinden geniş kapsamlı kimlik bilgisi toplama gerçekleştiriyor
- Kötü amaçlı mantık, NpmModule.updatePackage ile diğer paketleri zorla yamalayıp yayımlayarak kademeli yayılım sağlıyor; ayrıca GitHub Actions'a shai-hulud workflow'unu enjekte ederek kurumsal secret'ları toJSON(secrets) ile sızdırıyor
- Toplanan veriler, halka açık GitHub deposu 'Shai-Hulud' oluşturularak dışarı aktarılıyor; süreç meşru geliştirme faaliyetleri gibi gizlendiği için tespit edilmesi zor
- AWS/GCP/Azure/NPM/GitHub token'larına ve metadata endpoint'lerine erişim ile TruffleHog tabanlı secret taraması gibi teknikler gizlice kullanılıyor
- Paketlerin derhal kaldırılması, depoların temizlenmesi ve tüm kimlik bilgilerinin değiştirilmesinin yanı sıra CloudTrail/GCP Audit loglarının incelenmesi, webhook'ların engellenmesi, branch protection/Secret Scanning/cooldown politikalarının devreye alınması gerekiyor
Affected Packages
- Toplam 195 paket/sürüm raporlandı. Öne çıkanlar arasında @ctrl/tinycolor(4.1.1, 4.1.2), çok sayıda @ctrl/ namespace paketi, @crowdstrike/ modül grubu, ngx-bootstrap/ngx-toastr/ng2-file-upload/ngx-color gibi Angular/web UI ekosistemi genelindeki paketler, @nativescript-community/ ve @nstudio/ mobil yığını, teselagen/ yaşam bilimleri araç zinciri, ember-*, koa2-swagger-ui, pm2-gelf-json, wdio-web-reporter yer alıyor
- Her paket için tam sürümler kaynak tablodan kontrol edilmeli ve bu sürümlerin kullanılıp kullanılmadığı dikkatle çapraz doğrulanmalı
- Örnek:
@ctrl/ngx-emoji-mart 9.2.1, 9.2.2, @ctrl/qbittorrent 9.7.1, 9.7.2, ngx-bootstrap 18.1.4, 19.0.3–20.0.5, ng2-file-upload 7.0.2–9.0.1 gibi geniş bir etki alanı söz konusu
Immediate Actions Required
Identify and Remove Compromised Packages
- Projede enfekte paketlerin bulunup bulunmadığını kontrol edin:
npm ls @ctrl/tinycolor gibi komutlarla inceleyin
- Enfekte paketleri hemen kaldırın:
npm uninstall @ctrl/tinycolor gibi komutları çalıştırın
- Bilinen bundle.js hash'lerini arayarak yerel izleri kontrol edin:
sha256sum | grep 46faab8a... kullanın
Clean Infected Repositories
- kötü amaçlı GitHub Actions workflow'unu silin:
.github/workflows/shai-hulud-workflow.yml dosyasını kaldırın
- Uzakta oluşturulan shai-hulud branch'ini tespit edip silin:
git ls-remote ... | grep shai-hulud ardından git push origin --delete shai-hulud komutunu çalıştırın
Rotate All Credentials Immediately
- NPM token'ları, GitHub PAT/Actions secret'ları, SSH anahtarları, AWS/GCP/Azure kimlik bilgileri, DB bağlantı dizeleri, üçüncü taraf token'ları, CI/CD secret'ları dahil olmak üzere her şeyin tamamen değiştirilmesi gerekiyor
- AWS Secrets Manager/GCP Secret Manager içinde saklanan öğeler dahil tam rotasyon gerekli
Audit Cloud Infrastructure for Compromise
- AWS: CloudTrail içinde
BatchGetSecretValue, ListSecrets, GetSecretValue çağrılarının zamanını ve desenlerini inceleyin; IAM Credential Report ile olağandışı anahtar oluşturma ve kullanımını kontrol edin
- GCP: Audit Logs üzerinden Secret Manager erişim kayıtlarını inceleyin, CreateServiceAccountKey olaylarının olup olmadığını doğrulayın
Henüz yorum yok.