Analisis Komposisi Perangkat Lunak (SCA)
Pindai dependensi untuk menemukan CVE yang diketahui menggunakan OWASP Dependency-Check, Snyk, atau GitHub Dependabot.
Analisis Komposisi Perangkat Lunak (SCA) adalah pelajaran Cyber Security Academy gratis di CoddyKit. Ini adalah pelajaran 2 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 SCA
Analisis Komposisi Perangkat Lunak (SCA) mengidentifikasi dependensi sumber terbuka dalam proyek Anda dan memeriksanya terhadap basis data kerentanan (NVD, CVE, GitHub Advisory). SCA juga menandai masalah kepatuhan lisensi.
Mengapa Dependensi Pihak Ketiga Berisiko
Aplikasi modern menggunakan ratusan pustaka sumber terbuka. Satu pustaka yang rentan dapat mengekspos seluruh aplikasi. Kerentanan Log4Shell pada 2021 (CVE-2021-44228) berdampak pada jutaan aplikasi Java karena satu pustaka pencatatan yang banyak digunakan.
Alat SCA
Alat SCA populer:
# npm audit (Node.js):
npm audit
npm audit fix
# pip-audit (Python):
pip-audit
# OWASP Dependency-Check:
dependency-check.sh --project myapp --scan ./
# Snyk:
snyk test
snyk monitorDependabot dan Renovate
Alat pembaruan dependensi otomatis:
- Dependabot (GitHub) — secara otomatis membuka PR untuk memperbarui dependensi yang rentan
- Renovate — lebih mudah dikonfigurasi dan mendukung lebih banyak registri
Aktifkan alat-alat ini di setiap repositori — alat tersebut mengurangi beban manual untuk melacak pembaruan dependensi.
Memahami Tingkat Keparahan CVE
Tidak setiap kerentanan dalam dependensi dapat dieksploitasi dalam konteks Anda. Evaluasilah hal-hal berikut:
- Apakah jalur kode yang rentan dapat dijangkau dalam penggunaan Anda?
- Apakah aplikasi Anda mengekspos fungsionalitas tersebut?
- Apakah WAF atau kontrol lain menguranginya?
Skor CVSS adalah titik awal — konteks menentukan risiko sebenarnya.
Dependensi Transitif
Dependensi langsung memiliki dependensi sendiri (transitif). Kerentanan dalam pustaka yang belum pernah Anda dengar tetap dapat berdampak pada Anda. Alat SCA memetakan seluruh pohon dependensi. Jalankan npm ls atau pip show -r requirements.txt untuk memeriksa pohon tersebut.
npm ls --all | grep "vulnerable-pkg"
pip show requests | grep RequiresDaftar Bahan Perangkat Lunak (SBOM)
SBOM adalah inventaris formal semua komponen dalam suatu produk perangkat lunak. Perintah Eksekutif 14028 (US) mewajibkan SBOM untuk perangkat lunak yang dijual kepada pemerintah US. Format: SPDX, CycloneDX.
# Generate SBOM with syft:
syft . -o cyclonedx-json > sbom.json
# Scan SBOM for vulnerabilities:
grype sbom:./sbom.jsonKepatuhan Lisensi
SCA juga memeriksa lisensi. Dependensi berlisensi GPL dalam perangkat lunak komersial mungkin mengharuskan Anda membuka kode sumber. LGPL, MIT, dan Apache 2.0 umumnya bersifat permisif. Tim hukum memerlukan visibilitas atas lisensi dependensi — SCA menyediakannya secara otomatis.
Serangan Rantai Pasokan
Penyerang menyisipkan kode berbahaya ke dalam paket sumber terbuka yang populer:
- Typosquatting:
reqeustssebagai penggantirequests - Akun pengelola yang disusupi (gaya SolarWinds)
- Kebingungan dependensi: nama paket privat bocor ke registri publik
SCA dengan verifikasi integritas (nilai pemeriksaan, berkas penguncian) mengurangi risiko ini.
Berkas Penguncian
Berkas penguncian (package-lock.json, Pipfile.lock) menetapkan versi yang tepat dan memverifikasi nilai pemeriksaan. Komit berkas penguncian ke kontrol sumber. Jangan pernah menggunakan npm install --legacy-peer-deps untuk melewati pemeriksaan berkas penguncian dalam build produksi.
SCA dalam Alur CI/CD
Integrasikan SCA sebagai gerbang CI wajib:
# GitHub Actions example:
- name: Run npm audit
run: npm audit --audit-level=high
# Fail build on HIGH/CRITICAL findings
# Use --audit-level=moderate for stricter posturePemeriksaan Singkat: SCA
Apa tujuan utama Analisis Komposisi Perangkat Lunak (SCA)?
Rangkuman Pelajaran
SCA memindai dependensi proyek untuk menemukan CVE yang diketahui, masalah lisensi, dan risiko rantai pasokan. SCA penting karena adanya dependensi transitif — kerentanan dalam pustaka yang menjadi dependensi dari pustaka lain tetap berdampak pada Anda. Aktifkan Dependabot/Renovate untuk pembaruan otomatis. Buat SBOM (SPDX/CycloneDX) untuk visibilitas rantai pasokan. Berkas penguncian menetapkan versi dan memverifikasi nilai pemeriksaan. Integrasikan SCA sebagai gerbang CI dengan ambang tingkat keparahan.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Analisis Komposisi Perangkat Lunak (SCA)” gratis?
Ya — teks lengkap “Analisis Komposisi Perangkat Lunak (SCA)” 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 “Analisis Komposisi Perangkat Lunak (SCA)”?
Pindai dependensi untuk menemukan CVE yang diketahui menggunakan OWASP Dependency-Check, Snyk, atau GitHub Dependabot. 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 2 dari 4.
Berapa lama pelajaran “Analisis Komposisi Perangkat Lunak (SCA)” 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
- SAST dan DAST dalam Pipeline CI/CD
- Analisis Komposisi Perangkat Lunak (SCA)
- Pemindaian Rahasia dan Kredensial Hardcode
- Security Champion dan Pemodelan Ancaman