Cyber Security Academy · Pelajaran

Ancaman Rantai Pasokan

Cara dependensi menjadi vektor serangan.

Pelajaran 1 dari 413 langkah

Ancaman Rantai Pasokan adalah pelajaran Cyber Security Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Cyber Security Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cyber Security Academy mencakup 4 pelajaran total.

Apa Itu Serangan Rantai Pasokan

Serangan rantai pasokan perangkat lunak membahayakan organisasi bukan dengan membobolnya secara langsung, melainkan dengan merusak sesuatu yang dipercayai dan digunakannya: pustaka, alat pembangunan, citra dasar kontainer, atau server pembaruan.

Karena perangkat lunak modern dirakit dari ratusan komponen pihak ketiga, satu tautan yang telah diracuni diwarisi oleh setiap pengguna hilir. Penyerang berinvestasi sekali dan menjangkau banyak korban.

  • Pembalikan kepercayaan — batas keamanan berpindah ke luar kode Anda sendiri
  • Cakupan dampak transitif — satu paket buruk mengalir ke ribuan hasil pembangunan

Gunung Es Dependensi

Ketika Anda menambahkan satu dependensi langsung, sering kali Anda juga menarik puluhan dependensi transitif yang tidak pernah Anda pilih. Aplikasi Node atau Python biasanya mendeklarasikan beberapa paket, tetapi menghasilkan ratusan paket setelah resolusi.

Daftarkan seluruh pohon hasil resolusi, bukan hanya manifesnya, untuk melihat apa yang sebenarnya Anda kirimkan:

# npm: full resolved dependency tree
npm ls --all

# Python: pinned transitive closure
pip freeze

# count transitive nodes
npm ls --all --parseable | wc -l

Penyamaran Nama dan Kebingungan

Penyerang menerbitkan paket berbahaya dengan nama yang menyerupai paket populer, dengan mengandalkan kesalahan ketik yang fatal.

  • Penyamaran melalui Salah Ketik — reqeusts bukan requests
  • Penyamaran Kombinasi — python-requests meniru nama yang sebenarnya
  • Kebingungan Dependensi — menerbitkan paket publik dengan nama yang sama seperti paket privat internal Anda, sehingga penyelesai yang salah konfigurasi mengambil versi penyerang

Lindungi diri dengan menetapkan registri internal tepercaya dan menggunakan paket privat dengan cakupan atau ruang nama.

Pengambilalihan Akun dan Pengelola

Paket yang sah dan dipercaya luas dapat berubah menjadi berbahaya jika akun pengelolanya disusupi atau kontributor berbahaya memperoleh hak publikasi.

Insiden nyata baru-baru ini menunjukkan bahwa penyerang menipu pengelola agar menyerahkan kredensialnya, lalu mendorong rilis perbaikan berbahaya yang mencuri token autentikasi selama instalasi.

  • Wajibkan autentikasi dua faktor pada semua akun publikasi
  • Utamakan paket dengan token publikasi bercakupan terbatas dan rilis yang dilindungi
  • Pantau pengelola baru yang tidak terduga pada dependensi kritis

Skrip Instalasi Berbahaya

Banyak ekosistem menjalankan kode saat instalasi, sebelum aplikasi Anda berjalan. npm install dapat menjalankan kait postinstall yang mencuri variabel lingkungan atau kunci SSH.

Nonaktifkan skrip instalasi sembarang dalam integrasi berkelanjutan dan audit setiap paket yang membutuhkannya:

# npm: block lifecycle scripts during install
npm ci --ignore-scripts

# inspect what a package would run
npm view <package> scripts

# pnpm equivalent
pnpm install --ignore-scripts

Alat Pembangunan yang Disusupi

Lingkungan pembangunan itu sendiri merupakan target bernilai tinggi. Jika penyerang meracuni kompilator, citra pelaksana integrasi berkelanjutan, atau pengaya pembangunan, setiap artefak yang dihasilkannya akan memiliki pintu belakang meskipun kode sumber Anda bersih.

Contoh klasiknya adalah mekanisme pembaruan yang disusupi trojan, yang menandatangani perangkat lunak berbahaya dengan kunci penandatanganan kode yang sah sehingga korban menerimanya sebagai asli.

  • Perlakukan infrastruktur pembangunan seperti produksi dengan penguatan penuh
  • Gunakan pelaksana pembangunan sementara yang dapat direproduksi
  • Pisahkan kunci penandatanganan dari host pembangunan

Berkas Pengunci dan Hash Integritas

Berkas pengunci menetapkan versi dan hash konten yang tepat, sehingga resolusi ulang tidak dapat diam-diam mengganti artefak dengan artefak lain. Selalu masukkan berkas ini ke repositori dan biarkan integrasi berkelanjutan memverifikasinya, bukan melakukan resolusi ulang secara bebas.

Kolom integritas menyimpan hash; jika arsip tar yang diunduh tidak cocok, instalasi gagal.

# package-lock.json integrity entry
# "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz",
# "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA=="

# CI must install from lock, never re-resolve
npm ci
yarn install --frozen-lockfile

Pemindaian Kerentanan Dependensi

Versi yang diketahui rentan, yang dilacak sebagai CVE, merupakan kelemahan rantai pasokan yang paling umum. Alat Analisis Komposisi Perangkat Lunak (SCA) mencocokkan dependensi hasil resolusi Anda dengan basis data kerentanan.

Jalankan pemindaian dalam integrasi berkelanjutan dan gagalkan pembangunan jika ditemukan temuan kritis:

# npm built-in audit
npm audit --audit-level=high

# OSV scanner across ecosystems
osv-scanner --lockfile=package-lock.json

# Trivy for filesystem and images
trivy fs --severity HIGH,CRITICAL .

Penetapan Versi dan Penyertaan Dependensi

Rentang versi yang berubah-ubah (^1.2.0) memungkinkan rilis baru masuk secara otomatis. Hal ini praktis, tetapi membuat Anda terpapar perbaikan berbahaya.

  • Tetapkan versi yang tepat dan tinjau peningkatan secara sengaja
  • Tetapkan berdasarkan ringkasan kriptografis untuk citra kontainer, bukan berdasarkan tag yang dapat berubah seperti latest
  • Sertakan dependensi kritis dalam repositori atau cermin Anda sendiri agar penghapusan dari sumber hulu tidak dapat merusak atau meracuni Anda
# pin a container image by immutable digest
FROM python:3.12-slim@sha256:1d52838af602b4b5a831beb13a0e4d073280665ea7be7f69ce2382f29c5a613f

Pemantauan Berkelanjutan dan Asal-Usul

Mengamankan rantai pasokan merupakan proses berkelanjutan, bukan pemindaian satu kali. Anda perlu mengetahui apa yang Anda kirimkan, dari mana asalnya, dan kapan menjadi rentan.

  • Buat SBOM untuk setiap rilis (pelajaran berikutnya)
  • Catat asal-usul pembangunan agar Anda dapat membuktikan cara artefak dihasilkan
  • Berlangganan pemberitahuan keamanan agar CVE yang baru diungkap memicu evaluasi ulang terhadap pembangunan yang telah dikirimkan

Pemodelan Ancaman pada Alur Kerja

Petakan setiap tahap tempat masukan tak tepercaya masuk: mesin pengembang, sistem pengelolaan kode sumber, registri dependensi, sistem pembangunan, penyimpanan artefak, dan kanal pembaruan. Masing-masing merupakan titik penyisipan yang mungkin.

Untuk setiap tahap, tanyakan: siapa yang dapat menulis di sini, apa yang dapat mereka lakukan jika terjadi penyusupan, dan bagaimana saya akan mendeteksinya? Dengan begitu, Anda memperoleh daftar kontrol yang diprioritaskan, bukan daftar periksa umum.

Pemeriksaan Singkat: Kebingungan Dependensi

Uji pemahaman Anda tentang jenis umum serangan rantai pasokan.

Ringkasan: Ancaman Rantai Pasokan

Anda telah mempelajari alasan dependensi menjadi jalur serangan dan cara mengurangi paparan tersebut.

  • Pembalikan kepercayaan berarti keamanan Anda bergantung pada pihak ketiga yang tidak Anda kendalikan
  • Ancaman utama: penyamaran melalui salah ketik, kebingungan dependensi, pengambilalihan pengelola, skrip instalasi berbahaya, dan alat pembangunan yang disusupi
  • Pertahanan inti: berkas pengunci dengan hash integritas, pemindaian SCA, penetapan versi persis berdasarkan ringkasan kriptografis, autentikasi dua faktor pada penerbit, dan pemantauan berkelanjutan

Berikutnya, Anda akan menginventarisasi isi perangkat lunak secara tepat dengan SBOM.

Gratis untuk memulai

Belajar Cyber Security Academy dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
76
Pelajaran
303

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Ancaman Rantai Pasokan” gratis?

Ya — teks lengkap “Ancaman Rantai Pasokan” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cyber Security Academy, upgrade ke CoddyKit PRO. Kursus Cyber Security Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Ancaman Rantai Pasokan”?

Cara dependensi menjadi vektor serangan. Kamu berlatih Cyber Security Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Cyber Security Academy?

Tidak diperlukan pengalaman sebelumnya. Cyber Security Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Ancaman Rantai Pasokan” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Cyber Security Academy ini?

Ya. Setiap pelajaran Cyber Security Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Ancaman Rantai Pasokan
  2. Daftar Bahan Perangkat Lunak (SBOM)
  3. Penandatanganan Dependensi dan Artefak
  4. Mengamankan Pipeline CI/CD
← Kembali ke Cyber Security Academy