Atac Supply Chain npm Axios: Sumar & Indicatori de Compromitere
Pe 31 martie 2026, versiuni malițioase ale axios au fost publicate pe npm, instaland un Remote Access Trojan cross-platform. Ce s-a intamplat, cum detectezi și ce trebuie să faci.
Ce s-a intamplat
Pe 31 martie 2026, un atacator a compromis contul npm al maintainerului principal axios, Jason Saayman. Emailul asociat contului a fost schimbat in ifstap@proton.me, iar un token npm clasic furat a fost folosit pentru a publica doua versiuni malițioase: axios@1.14.1 (etichetata latest) și axios@0.30.4 (etichetata legacy).
Ambele versiuni au introdus o dependință ascunsa pe plain-crypto-js@4.2.1, un pachet publicat de pe un alt cont al atacatorului (nrwise@proton.me). Acest pachet conținea un hook postinstall care instala un Remote Access Trojan cross-platform, capabil de execuție arbitrara de comenzi pe Windows, Linux și macOS.
Tokenul npm clasic a ocolit protecțiile GitHub Actions OIDC care erau in vigoare pentru publicarile legitime. Fereastra de expunere a durat aproximativ trei ore (00:21 - 03:15 UTC) inainte ca npm sa intervina și sa retragă ambele versiuni.
Ultima versiune legitimă, axios@1.14.0, a fost publicată pe 27 martie prin GitHub Actions OIDC și ramane sigura.
Ai nevoie de ajutor să verifici dacă infrastructura ta este afectată? Echipa noastră poate audita mediile tale, scana pentru IOC-uri și securiza pipeline-ul CI/CD. Vezi Servicii IT Administrate sau Externalizare IT pentru protecție continuă.
Cronologie
| Ora (UTC) | Eveniment |
|---|---|
| 27 mar, 19:01 | axios@1.14.0 publicat legitim prin GitHub Actions OIDC |
| 30 mar, 05:57 | plain-crypto-js@4.2.0 publicat (decoy curat) |
| 30 mar, 23:59 | plain-crypto-js@4.2.1 publicat cu hook postinstall malițios |
| 31 mar, 00:21 | axios@1.14.1 publicat de pe contul compromis |
| 31 mar, 01:00 | axios@0.30.4 publicat de pe contul compromis |
| 31 mar, 03:15 | npm a retras ambele versiuni malițioase |
Indicatori de compromitere
Pachete malițioase
| Pachet | Versiune | SHA-1 |
|---|---|---|
| axios | 1.14.1 | 2553649f232204966871cea80a5d0d6adc700ca |
| axios | 0.30.4 | d6f3f62fd3b9f5432f5782b62d8cfd5247d5ee71 |
| plain-crypto-js | 4.2.1 | 07d889e2dadce6f3910dcbc253317d28ca61c766 |
Infrastructura C2
| Indicator | Tip |
|---|---|
sfrclak.com:8000 | Domeniu C2 |
142.11.206.73 | Adresa IP C2 |
6202033 | ID campanie |
Conturi email atacator
| Utilizare | |
|---|---|
ifstap@proton.me | Schimbat pe contul compromis al maintainerului axios |
nrwise@proton.me | Publicatorul plain-crypto-js |
Artefacte payload etapa 2
Windows:
%PROGRAMDATA%\wt.exe(copie PowerShell deghizata)%TEMP%\6202033.vbs(loader VBScript)%TEMP%\6202033.ps1(payload PowerShell)
Linux:
/tmp/ld.py(script Python RAT)
macOS:
/Library/Caches/com.apple.act.mond(binar Mach-O 657 KB, x86_64)
Detecție
1. Verifică lockfile-urile
Linux/macOS (Bash):
bashgrep -E "axios@1\.14\.1|axios@0\.30\.4|plain-crypto-js" package-lock.json yarn.lock pnpm-lock.yaml
Windows (PowerShell):
powershellSelect-String -Pattern "axios@1\.14\.1|axios@0\.30\.4|plain-crypto-js" -Path package-lock.json,yarn.lock,pnpm-lock.yaml
2. Caută dependința malițioasă
Linux/macOS (Bash):
bashfind node_modules -type d -name "plain-crypto-js" 2>/dev/null
npm ls axios
Windows (PowerShell):
powershellGet-ChildItem -Path node_modules -Recurse -Directory -Filter "plain-crypto-js" -ErrorAction SilentlyContinue
npm ls axios
3. Scanează mai multe proiecte simultan
Linux/macOS (Bash):
bashfind /path/to/projects -maxdepth 5 \( -name "package-lock.json" -o -name "yarn.lock" -o -name "pnpm-lock.yaml" \) -exec grep -l "axios.*1\.14\.1\|axios.*0\.30\.4\|plain-crypto-js" {} \;
Windows (PowerShell):
powershellGet-ChildItem -Path C:\path\to\projects -Recurse -Depth 5 -Include package-lock.json,yarn.lock,pnpm-lock.yaml | Select-String -Pattern "axios.*1\.14\.1|axios.*0\.30\.4|plain-crypto-js" -List | Select-Object Path
4. Verifică artefacte pe disc
Windows (PowerShell):
powershellTest-Path "$env:ProgramData\wt.exe"
Test-Path "$env:TEMP\6202033.vbs"
Test-Path "$env:TEMP\6202033.ps1"
Linux:
bashls -la /tmp/ld.py 2>/dev/null
macOS:
bashls -la /Library/Caches/com.apple.act.mond 2>/dev/null
5. Verifică conexiunile de rețea
Windows (PowerShell):
powershellGet-DnsClientCache | Where-Object Entry -match "sfrclak"
Get-NetTCPConnection | Where-Object { (Resolve-DnsName $_.RemoteAddress -ErrorAction SilentlyContinue).NameHost -match "sfrclak" }
Linux:
bashss -tnp | grep -i sfrclak
grep "sfrclak" /var/log/syslog /var/log/dns*
macOS:
bashlsof -i -nP | grep -i sfrclak
log show --predicate 'process == "mDNSResponder"' --last 24h | grep sfrclak
Remediere
Pași imediați
- Verifică expunerea: verifică daca vreun sistem a rulat
npm installintre 00:21 și 03:15 UTC pe 31 martie 2026 - Cauta IOC-uri: verifică artefactele de pe disc și logurile DNS/firewall pentru conexiuni catre
sfrclak.comsau142.11.206.73 - Verifică registrele private: inspectează mirror-urile Verdaccio, Artifactory sau GitHub Packages pentru versiuni malițioase stocate in cache
Daca se gasesc IOC-uri
Tratează sistemul afectat ca complet compromis:
- Rotește toate credențialele, cheile API, tokenurile și cheile SSH de pe mașinile afectate
- Reconstruiește imaginile Docker și mediile CI/CD de la zero
- Verifica logurile de acces pentru mișcare laterala
Curațare
- Fixează axios la v1.14.0 și verifică checksum-urile
- Rulează
npm uninstall plain-crypto-js - Rulează
npm cache clean --force
Hardening
- Folosește lockfile-uri consecvent cu
npm ciin loc denpm install - Seteaza
npm config set min-release-age 3pentru a respinge pachetele publicate de mai puțin de 3 zile - Inlocuiește tokenurile npm clasice cu tokenuri granulare limitate la pachete specifice
- Aplica restricții IP pe tokenuri
- Activează npm provenance pentru pachetele publicate
- Implementeaza monitorizare a dependințelor (Socket, Snyk sau Dependabot)
Analiza completa
Aceasta pagina este un sumar cu IOC-uri și pași de detecție. Pentru analiza tehnica completa, inclusiv deobfuscarea payload-ului, analiza protocolului C2 și maparea MITRE ATT&CK, citește articolul complet pe blogul nostru:
Atac Supply Chain npm Axios: Analiza Completa pe Blogul Salt Data
Ești ingrijorat de atacurile supply chain in organizația ta?
Ajutam companiile sa implementeze monitorizarea dependințelor, politici de lockfile și securizarea CI/CD pentru a preveni incidente ca acesta.