Hana โ€” VyuApp Support
Online
20/20 pesan tersisa
๐ŸŒธ Selamat datang di VyuApp! Saya Hana, ada yang bisa saya bantu hari ini?
Semua artikel

Cybersecurity

Supply Chain Security untuk Paket npm dan PyPI: Panduan Lengkap 2026

Serangan supply chain pada ekosistem npm dan PyPI meningkat drastis di 2025-2026. Dari worm Shai-Hulud yang menular otomatis hingga kampanye Hades yang mencuri cloud credentials, pelajari ancaman terk

1 Juli 2026 12 min read#supply-chain-security#npm#PyPI#cybersecurity
Supply Chain Security untuk Paket npm dan PyPI: Panduan Lengkap 2026

Ditulis oleh VyuApp ยท 1 Juli 2026 ยท 12 menit baca

Serangan supply chain pada ekosistem npm dan PyPI meningkat drastis di 2025-2026. Dari worm Shai-Hulud yang menular otomatis hingga kampanye Hades yang mencuri cloud credentials, pelajari ancaman terkini dan strategi pertahanan berlapis untuk melindungi dependensi software Anda.

Visualisasi serangan cybersecurity pada rantai pasok software dengan jaringan node yang saling terhubung

Ekosistem pengembangan software modern bergantung pada kepercayaan. Setiap kali seorang developer menjalankan npm install atau pip install, mereka secara implisit mempercayai ratusan paket yang dikembangkan oleh orang asing di seluruh dunia. Kepercayaan ini telah menjadi celah yang dieksploitasi secara sistematis oleh aktor ancaman pada 2025-2026.

Unit 42 dari Palo Alto Networks melaporkan bahwa sejak September 2025, terjadi akselerasi agresif dalam kompromi supply chain npm. Worm Shai-Hulud menandai berakhirnya era "gangguan kecil" dan dimulainya lanskap ancaman dengan konsekuensi tinggi. Sementara itu, PyPI yang menjadi rumah bagi lebih dari 743.000 paket per Maret 2026 menghadapi kampanye Hades yang mengeksploitasi file .pth Python untuk mengeksekusi kode berbahaya saat interpreter startup.

Artikel ini membahas evolusi ancaman supply chain, teknik serangan terkini, dan strategi pertahanan berlapis yang dapat diterapkan oleh tim pengembang maupun organisasi untuk melindungi pipeline software mereka.

Ancaman Supply Chain: Evolusi dari Typosquatting hingga Worm Self-Replicating

Serangan supply chain pada paket npm dan PyPI telah berevolusi secara dramatis dalam beberapa tahun terakhir. Pada awalnya, teknik seperti typosquatting โ€” di mana penyerang menerbitkan paket dengan nama mirip populer seperti lodash menjadi l0dash โ€” menjadi metode utama. Teknik dependency confusion juga marak, di mana penyerang menerbitkan paket publik dengan nama sama seperti paket internal perusahaan.

Namun, evolusi terjadi pada September 2025 ketika worm Shai-Hulud muncul. Malware self-replicating ini mengotomatiskan proses kompromi: setelah menginfeksi satu paket, ia mencuri token npm dan GitHub dari korban, lalu menggunakannya untuk menginfeksi paket-paket lain secara otomatis. Dampaknya mengkhawatirkan โ€” lebih dari 160 paket termasuk TanStack terinfeksi dalam waktu singkat.

Tiga Pergeseran Taktik Ancaman

Analisis terbaru mengidentifikasi tiga pergeseran signifikan dalam taktik, teknik, dan prosedur (TTP) yang digunakan oleh aktor ancaman:

  • Wormable Propagation โ€” Pencurian token npm dan GitHub untuk infeksi otomatis antar paket, memungkinkan penyebaran malware tanpa intervensi manual.
  • Persistence Level Infrastruktur โ€” Injeksi ke pipeline CI/CD sehingga malware bertahan bahkan setelah paket asli dihapus dari registry.
  • Serangan Multi-Stage Lintas Runtime โ€” Kampanye yang menargetkan beberapa ekosistem sekaligus (npm, PyPI, bahkan Go modules) dalam satu operasi terkoordinasi.
Graf jaringan dependensi paket npm yang saling terhubung dengan node dan edge yang kompleks

Perubahan fundamental ini berarti bahwa pertahanan tradisional โ€” seperti hanya memverifikasi nama paket โ€” tidak lagi cukup. Organisasi membutuhkan pendekatan berlapis yang mempertimbangkan seluruh lifecycle pengembangan software.

Kampanye Hades: Ancaman Terkoordinasi pada Ekosistem PyPI

Pada Juni 2026, peneliti keamanan di Orca Security mengungkap kampanye Hades โ€” serangan supply chain terkoordinasi yang menargetkan 26 paket PyPI di berbagai domain: bioinformatika, graph machine learning, deep learning, dan developer tooling. Yang membuat kampanye ini sangat berbahaya adalah eksploitasi file .pth Python.

File .pth adalah mekanisme Python yang jarang diperhatikan oleh kebanyakan developer. File-file ini dieksekusi secara otomatis setiap kali interpreter Python dimulai, menjadikannya vektor serangan yang sangat efektif untuk persistensi. Kampanye Hades menggunakan mekanisme ini untuk mengumpulkan kredensial cloud secara agresif dari korban.

Kredensial yang Dicuri dalam Kampanye Hades

  • Token AWS, GCP, dan Azure
  • Konfigurasi dan secrets Kubernetes
  • Token GitHub dan PyPI
  • SSH keys dan kredensial npm
  • Environment variables yang mengandung informasi sensitif

Kampanye ini menunjukkan bagaimana penyerang tidak lagi hanya menargetkan kode yang Anda tulis, tetapi juga lingkungan eksekusi dan infrastruktur yang mengelilingi kode tersebut. Informasi lebih lanjut tentang tren keamanan AI dan software terbaru dapat dibaca di artikel kami tentang Claude Sonnet 5.

Worm Shai-Hulud: Ketika Malware Menjadi Self-Replicating

Worm Shai-Hulud merepresentasikan titik balik kritis dalam sejarah keamanan supply chain. Berbeda dengan serangan sebelumnya yang memerlukan intervensi manual untuk setiap paket yang dikompromi, Shai-Hulud mengotomatiskan seluruh proses infeksi dan redistribusi.

Mekanisme kerjanya mengkhawatirkan dalam kesederhanaannya. Setelah menginfeksi sebuah paket, malware ini:

  1. Mencari dan mencuri token autentikasi npm dan GitHub dari sistem korban
  2. Menggunakan token tersebut untuk mengakses paket-paket lain yang dimiliki korban
  3. Menyuntikkan payload berbahaya ke paket-paket tersebut
  4. Menerbitkan versi baru yang terinfeksi ke registry
  5. Mengulangi siklus untuk setiap korban baru

Hasilnya adalah efek domino yang menyebar dengan kecepatan luar biasa. SecurityWeek melaporkan bahwa lebih dari 100 paket npm dan PyPI terinfeksi dalam varian Miasma dan Hades dari serangan Shai-Hulud pada 2026. Infeksi ini mencakup paket-paket populer yang digunakan oleh ribuan proyek di seluruh dunia.

Peringatan Kritis

Jika proyek Anda menggunakan TanStack atau paket populer lainnya, segera periksa versi yang terinstal dan verifikasi integritasnya menggunakan npm audit atau pip-audit.

Strategi Pertahanan Berlapis untuk Ekosistem Python

Bernat Gabor dari PyPA (Python Package Authority) merekomendasikan pendekatan defense in depth โ€” lapisan pertahanan yang saling melengkapi sehingga kegagalan satu kontrol tidak berarti kegagalan total. Berikut adalah strategi yang dapat diterapkan.

Linting dengan Ruff

Ruff adalah linter Python berkecepatan tinggi yang dapat dikonfigurasi dengan aturan keamanan spesifik. Alat ini mendeteksi pola-pola berbahaya dalam kode sebelum dieksekusi.

# Instalasi dan konfigurasi Ruff untuk keamanan
pip install ruff

# Jalankan dengan aturan keamanan
ruff check . --select S  # S = security rules

# Konfigurasi di pyproject.toml
[tool.ruff.lint.select]
select = ["S"]  # Aktifkan semua security rules

# Contoh output yang mendeteksi masalah keamanan:
# S603: subprocess call - check for execution of untrusted input
# S607: starting a process with a partial executable path
# S301: pickle usage - potential arbitrary code execution

Pin Dependencies dengan Hash Kriptografi

Salah satu pertahanan paling efektif adalah mempin semua dependensi beserta hash kriptografinya. Dengan cara ini, bahkan jika sebuah paket dikompromi setelah Anda memverifikasinya, instalasi akan gagal karena hash tidak cocok.

# Menggunakan uv lock untuk menghasilkan lockfile dengan hash
pip install uv
uv lock --hash-algorithm sha256

# Hasilnya file uv.lock yang berisi:
# [[packages]]
# name = "requests"
# version = "2.31.0"
# hash = "sha256:58cd2187c01e70e6e26d8ec..."

# Instalasi dengan verifikasi hash
uv sync --verify-hashes

Scanning Vulnerability Otomatis

Integrasikan scanning vulnerability ke dalam pipeline CI/CD untuk mendeteksi paket yang sudah diketahui rentan sebelum kode diproduksi.

# pip-audit untuk Python
pip install pip-audit
pip-audit --strict --desc

# npm audit untuk Node.js
npm audit --audit-level=high

# Contoh output pip-audit:
# Name    ID           Fixed In  Description
# ------- ------------ --------- ----------------------------
# urllib3 CVE-2023-... 2.0.7     Cookie leakage on redirect...
# requests CVE-2024-... 2.32.0   Unintended leak of Proxy-Authorization...
Gembok digital dan simbol keamanan yang merepresentasikan perlindungan paket software

// Advertisement

Generating SBOM dengan CycloneDX

Software Bill of Materials (SBOM) memberikan visibilitas penuh terhadap semua komponen dalam proyek Anda. CycloneDX adalah standar terbuka yang dapat menghasilkan SBOM secara otomatis.

# Generate SBOM untuk proyek Python
pip install cyclonedx-bom
cyclonedx-py -o sbom.json --format json

# Generate SBOM untuk proyek Node.js
npm install -g @cyclonedx/cyclonedx-npm
cyclonedx-npm --output-file sbom.json

# SBOM memungkinkan Anda:
# 1. Melacak semua dependensi termasuk transitive
# 2. Mendeteksi paket yang terkena CVE baru
# 3. Memenuhi compliance requirement (EU CRA, US EO 14028)

Pertahanan untuk Ekosistem npm

ArmorCode merekomendasikan beberapa strategi spesifik untuk melindungi proyek npm dari serangan supply chain. Pertahanan harus mencakup seluruh siklus hidup pengembangan, dari penulisan kode hingga deployment.

Lockfile Integrity

Gunakan npm ci alih-alih npm install dalam environment produksi dan CI. Perintah npm ci menginstal persis sesuai yang tercatat di package-lock.json, sementara npm install dapat memperbarui dependensi secara tidak terduga.

# Salah โ€” dapat mengupdate dependensi tanpa izin
npm install

# Benar โ€” menginstal persis sesuai lockfile
npm ci

# Verifikasi integritas lockfile
npm audit signatures

# Gunakan .npmrc untuk konfigurasi keamanan
# package-lock=true
# ignore-scripts=true  # Mencegah eksekusi script postinstall berbahaya
# audit=true

Scoped Packages dan Private Registry

Gunakan scoped packages (@namaorganisasi/paket) untuk paket internal dan konfigurasi registry privat. Ini mencegah serangan dependency confusion di mana penyerang menerbitkan paket publik dengan nama sama seperti paket internal Anda.

# .npmrc untuk mengarahkan scoped packages ke registry privat
@mycompany:registry=https://registry.mycompany.com/
//registry.mycompany.com/:_authToken=${NPM_TOKEN}

# npm akan selalu mengambil @mycompany/* dari registry privat
# dan mencegah dependency confusion

Penggunaan npm audit dan Socket.dev

Jalankan npm audit secara teratur dan pertimbangkan untuk menggunakan alat analisis supply chain seperti Socket.dev yang mendeteksi perilaku berbahaya โ€” bukan hanya CVE yang diketahui. Socket dapat mengidentifikasi paket yang mengakses environment variables, membuat koneksi jaringan yang tidak biasa, atau mengirimkan data ke server eksternal.

Trusted Publishing dan Sigstore: Masa Depan Keamanan Paket

Salah satu perkembangan paling signifikan dalam keamanan supply chain adalah Trusted Publishing dengan OpenID Connect (OIDC). Mekanisme ini menggantikan API token berumur panjang yang rentan terhadap pencurian dengan autentikasi berbasis identitas kriptografi.

Proses audit kode dan verifikasi keamanan pada layar komputer dengan tampilan terminal

Cara Kerja Trusted Publishing

  1. Developer mengonfigurasi GitHub Actions (atau CI/CD lain) sebagai trusted publisher di PyPI
  2. Saat kode dipush ke repo, CI/CD secara otomatis meminta token OIDC jangka pendek
  3. Token tersebut digunakan untuk menerbitkan paket โ€” tanpa API token yang disimpan di secrets
  4. Sigstore menghasilkan attestations kriptografi yang mengaitkan paket ke source repo dan commit spesifik

Keuntungan utama dari pendekatan ini adalah eliminasi token berumur panjang yang menjadi target utama pencurian dalam kampanye Shai-Hulud. Jika tidak ada token yang disimpan, tidak ada yang bisa dicuri.

Konfigurasi Trusted Publishing di PyPI

# 1. Di PyPI, tambahkan GitHub Actions sebagai trusted publisher:
#    Owner: nama-organisasi
#    Repository: nama-repo
#    Workflow: publish.yml
#    Environment: pypi

# 2. Buat workflow GitHub Actions (.github/workflows/publish.yml):
name: Publish to PyPI
on:
  release:
    types: [published]

permissions:
  id-token: write  # Diperlukan untuk OIDC

jobs:
  publish:
    runs-on: ubuntu-latest
    environment: pypi
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: '3.12'
      - run: pip install build
      - run: python -m build
      - uses: pypa/gh-action-pypi-publish@release/v1
        # Tidak perlu password โ€” OIDC menangani autentikasi

Respons PyPI terhadap Ancaman yang Meningkat

PyPI telah mengimplementasikan beberapa langkah keamanan baru sebagai respons terhadap serangan yang meningkat:

  • Domain Resurrection Prevention โ€” Mencegah penyerang mendaftarkan ulang paket yang sebelumnya dihapus untuk menyebarkan malware.
  • Login Verification untuk TOTP โ€” Memverifikasi bahwa TOTP berasal dari perangkat yang benar, bukan dari serangan phishing.
  • Invalidasi Token Massal โ€” Kemampuan untuk membatalkan semua token API yang beredar jika terjadi kompromi.
  • Attestations Otomatis โ€” Setiap paket yang diterbitkan melalui Trusted Publishing mendapatkan attestations kriptografi via Sigstore.

Implementasi Trusted Publishing juga relevan untuk pengembangan aplikasi modern. Baca lebih lanjut tentang praktik pengembangan terkini di tutorial Kotlin Multiplatform kami.

Membangun Pipeline Keamanan yang Robust

Pertahanan yang efektif memerlukan integrasi keamanan ke setiap tahap pipeline pengembangan. Berikut adalah rekomendasi untuk membangun pipeline keamanan yang robust.

// Advertisement

Pre-Commit Hooks

Konfigurasi pre-commit hooks untuk mendeteksi masalah keamanan sebelum kode mencapai repository.

# .pre-commit-config.yaml
repos:
  - repo: https://github.com/astral-sh/ruff-pre-commit
    rev: v0.8.0
    hooks:
      - id: ruff
        args: [--select, S]

  - repo: https://github.com/gitleaks/gitleaks
    rev: v8.18.0
    hooks:
      - id: gitleaks

  - repo: https://github.com/Yelp/detect-secrets
    rev: v1.5.0
    hooks:
      - id: detect-secrets
        args: [--baseline, .secrets.baseline]

CI/CD Security Gates

Tambahkan gerbang keamanan dalam pipeline CI/CD yang memblokir deployment jika ditemukan masalah kritis.

# Contoh GitHub Actions workflow dengan security gates
name: Security Check
on: [push, pull_request]

jobs:
  security:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Python Security Scan
        run: |
          pip install pip-audit safety
          pip-audit --strict
          safety check --full-report

      - name: Node.js Security Scan
        run: |
          npm audit --audit-level=critical
          npx socket-security-cli scan

      - name: Generate SBOM
        run: |
          pip install cyclonedx-bom
          cyclonedx-py -o sbom.json --format json

      - name: Upload SBOM Artifact
        uses: actions/upload-artifact@v4
        with:
          name: sbom
          path: sbom.json

Monitoring dan Alerting

Implementasikan monitoring berkelanjutan untuk mendeteksi perubahan mencurigakan pada dependensi yang sudah digunakan:

  • Gunakan GitHub Dependabot atau Renovate untuk mendapatkan notifikasi saat ada update keamanan
  • Konfigurasi Socket.dev atau Snyk untuk monitoring real-time terhadap perilaku berbahaya
  • Pantau advisories dari npm Security dan PyPI Security secara berkala
  • Berlangganan mailing list security seperti OSS-Security untuk CVE baru

Pipeline keamanan yang baik juga mempertimbangkan aspek performa dan skalabilitas. Prinsip serupa diterapkan dalam pengembangan aplikasi cross-platform โ€” baca lebih lanjut di panduan Kotlin Multiplatform.

Langkah Praktis yang Bisa Dilakukan Hari Ini

Menerapkan seluruh strategi pertahanan di atas mungkin terasa overwhelming. Berikut adalah checklist prioritas yang dapat Anda mulai hari ini untuk meningkatkan keamanan supply chain secara signifikan.

Prioritas Tinggi (Minggu Ini)

  • Jalankan npm audit dan pip-audit pada semua proyek aktif
  • Periksa apakah ada dependensi yang menggunakan versi TanStack yang terinfeksi Shai-Hulud
  • Aktifkan ignore-scripts=true di .npmrc untuk mencegah eksekusi script postinstall berbahaya
  • Gunakan npm ci di semua pipeline CI/CD
  • Pastikan file package-lock.json dan uv.lock di-commit ke repository

Prioritas Sedang (Bulan Ini)

  • Konfigurasi Trusted Publishing di PyPI untuk semua paket yang Anda terbitkan
  • Tambahkan pre-commit hooks untuk security linting
  • Generate dan review SBOM untuk proyek-proyek utama
  • Konfigurasi Dependabot atau Renovate untuk notifikasi update keamanan
  • Implementasikan scoped packages untuk paket internal

Prioritas Rendah (Kuartal Ini)

  • Evaluasi dan implementasikan Socket.dev atau Snyk untuk monitoring berkelanjutan
  • Buat kebijakan organisasi untuk review dependensi baru
  • Lakukan audit menyeluruh terhadap semua transitive dependencies
  • Konfigurasi SBOM generation otomatis di CI/CD
Fakta Penting

Rata-rata proyek Python menggunakan lusinan transitive dependencies yang tidak pernah dipilih secara eksplisit oleh developer. Setiap transitive dependency memperluas attack surface secara signifikan โ€” ini mengapa SBOM dan auditing menjadi krusial.

Pertanyaan yang Sering Diajukan (FAQ)

Apa itu serangan supply chain pada paket software?
Serangan supply chain pada paket software terjadi ketika penyerang mengompromikan paket dependensi yang digunakan oleh proyek lain. Ini bisa melalui penerbitan paket berbahaya dengan nama mirip (typosquatting), mengompromikan akun maintainer paket populer, atau menyuntikkan kode berbahaya ke dalam paket yang sah. Efeknya menyebar ke semua proyek yang menggunakan paket tersebut.
Bagaimana cara mengetahui apakah proyek saya terpengaruh oleh serangan Shai-Hulud?
Jalankan npm audit untuk proyek Node.js atau pip-audit untuk proyek Python. Periksa apakah Anda menggunakan versi TanStack atau paket lain yang dilaporkan terinfeksi. Anda juga dapat memeriksa daftar paket yang dikompromikan di advisories keamanan npm dan PyPI. Jika menggunakan versi yang terinfeksi, segera perbarui ke versi bersih dan rotasi semua token serta kredensial yang mungkin terekspos.
Apakah Trusted Publishing menggantikan kebutuhan untuk menggunakan API token?
Ya, Trusted Publishing dengan OIDC menghilangkan kebutuhan API token berumur panjang untuk penerbitan paket. Autentikasi dilakukan melalui identitas kriptografi yang terkait dengan workflow CI/CD Anda. Token yang digunakan bersifat short-lived dan otomatis, sehingga bahkan jika token tersebut terekspos, masa berlakunya sangat pendek dan tidak dapat digunakan untuk serangan lanjutan.
Apa perbedaan antara npm install dan npm ci dalam konteks keamanan?
npm install dapat memperbarui dependensi berdasarkan range version yang ditentukan di package.json, yang berarti Anda mungkin menginstal versi berbeda dari yang diuji. npm ci menginstal persis sesuai yang tercatat di package-lock.json โ€” jika ada perbedaan, instalasi akan gagal. Ini memastikan bahwa apa yang diuji di development adalah persis sama dengan apa yang di-deploy di produksi, mencegah serangan melalui update dependensi yang tidak terduga.
Mengapa SBOM (Software Bill of Materials) penting untuk keamanan supply chain?
SBOM memberikan daftar lengkap semua komponen software dalam proyek Anda, termasuk transitive dependencies yang sering terlewat. Ketika CVE baru diumumkan, SBOM memungkinkan Anda dengan cepat menentukan apakah proyek Anda terpengaruh tanpa harus menelusuri seluruh dependency tree secara manual. SBOM juga menjadi persyaratan compliance di beberapa regulasi seperti EU Cyber Resilience Act dan US Executive Order 14028.

Sumber Referensi

Supply Chain Security npm PyPI Cybersecurity Shai-Hulud Dependency Management Software Security

// Advertisement

V

VyuApp Studio

Bespoke web engineering โ€” Garut, ID