Proyek pemrograman mahasiswa hampir selalu menggunakan library, package, plugin, framework, atau komponen pihak ketiga. Dependensi tersebut membantu menyelesaikan pekerjaan lebih cepat, tetapi juga membawa risiko yang perlu dikelola. Kode dari luar dapat memengaruhi integritas, perilaku, dan keamanan aplikasi yang sedang dibuat.
Karena itu, keamanan dependensi perangkat lunak bukan hanya urusan perusahaan teknologi. Mahasiswa perlu membiasakan diri memilih komponen secara hati-hati, mencatat versinya, meninjau perubahan, dan menghapus dependensi yang tidak lagi digunakan. Kebiasaan ini berguna untuk tugas kuliah, proyek akhir, portofolio, maupun kerja tim.
Mengapa dependensi perlu diamankan?
Dependensi adalah bagian dari rantai pasok perangkat lunak. Aplikasi mungkin ditulis oleh tim mahasiswa, tetapi sebagian fungsinya dapat dijalankan oleh kode yang dikembangkan dan dirilis oleh pihak lain. Jika komponen itu rentan, telah kedaluwarsa, berasal dari sumber yang tidak tepercaya, atau mengalami perubahan berbahaya, aplikasi yang menggunakannya ikut terdampak.
Risiko tidak hanya muncul dari isi library. Sistem build, konfigurasi proyek, repositori package, serta infrastruktur distribusi juga dapat menjadi titik lemah. Misalnya, pembaruan dipasang tanpa meninjau perubahan, package diambil dari sumber yang tidak jelas, atau proses build memiliki izin yang terlalu luas.
Dalam proyek mahasiswa, risiko dapat meningkat karena dependensi sering ditambahkan secara cepat untuk memenuhi kebutuhan fitur. Setelah itu, package mungkin tidak diperiksa lagi, meskipun sudah tidak digunakan atau memiliki versi baru yang penting untuk keamanan.
Memahami A03:2025 Software Supply Chain Failures
OWASP Top 10:2025 menempatkan Software Supply Chain Failures sebagai kategori A03:2025. Kategori ini mencakup kompromi atau kelemahan pada ekosistem dependensi perangkat lunak, sistem build, dan infrastruktur distribusi perangkat lunak.
Kerangka tersebut membantu mahasiswa memahami bahwa keamanan aplikasi tidak berhenti pada kode yang mereka tulis sendiri. Proses memperoleh package, menyimpan versinya, membangun aplikasi, dan mendistribusikannya juga perlu diperhatikan.
OWASP menyebut kategori ini memiliki lima CWE yang dipetakan dan mendapat perhatian tinggi dalam survei komunitas. Namun, kemunculannya dalam data pengujian masih terbatas karena tantangan dalam melakukan pengujian. Artinya, tidak ditemukannya masalah saat pengujian bukan bukti bahwa rantai pasok proyek sepenuhnya aman.
OWASP Top 10 adalah dokumen kesadaran mengenai risiko aplikasi web yang paling kritis. Gunakan sebagai titik awal pembelajaran dan perbaikan, bukan sebagai daftar lengkap seluruh risiko keamanan.
Checklist keamanan dependensi perangkat lunak
1. Pilih package dari sumber yang tepercaya
Gunakan registry atau repositori resmi yang sesuai dengan ekosistem bahasa dan framework yang dipakai. Hindari mengunduh package dari tautan acak atau menyalin file library dari sumber yang tidak dapat diverifikasi.
Sebelum memasang komponen, periksa nama package dengan teliti. Nama yang mirip dengan package populer dapat membingungkan dan berpotensi membawa kode yang tidak diharapkan. Periksa pula dokumentasi, riwayat pemeliharaan, serta reputasi pengembang atau organisasi yang menerbitkannya.
2. Catat dependensi dan versinya
Jangan hanya mengandalkan ingatan anggota tim. Simpan daftar dependensi dalam manifest proyek, seperti berkas konfigurasi yang mencatat komponen dan versi yang dibutuhkan. Jika ekosistem yang digunakan mendukung lockfile, sertakan berkas tersebut dalam repository sesuai praktik kerja tim.
Pencatatan versi membantu anggota tim memasang komponen yang konsisten. Langkah ini juga memudahkan penelusuran ketika terjadi perubahan perilaku atau masalah setelah proses pembaruan.
3. Tinjau perubahan sebelum melakukan upgrade
Pembaruan package tidak sebaiknya dilakukan secara otomatis tanpa pemeriksaan. Baca catatan perubahan dan dokumentasi rilis jika tersedia. Perhatikan perubahan API, konfigurasi, izin, serta komponen tambahan yang ikut dipasang.
Setelah upgrade, jalankan pengujian proyek dan periksa fitur yang paling dipengaruhi oleh dependensi tersebut. Dalam kerja kelompok, dokumentasikan alasan pembaruan agar anggota lain memahami keputusan yang diambil.
4. Perbarui secara berkala, tetapi tetap terkontrol
Dependensi yang terlalu lama dapat tertinggal dari perbaikan keamanan dan kompatibilitas. Buat kebiasaan untuk memeriksa pembaruan secara berkala, bukan menunggu hingga proyek bermasalah. Namun, pembaruan tetap perlu dilakukan secara bertahap dan diverifikasi.
Hindari mengganti banyak dependensi sekaligus ketika sedang mencari sumber masalah. Pembaruan kecil yang dapat diuji dengan jelas biasanya lebih mudah ditelusuri daripada perubahan besar tanpa catatan.
5. Hapus komponen yang tidak digunakan
Setiap dependensi tambahan dapat memperluas permukaan risiko dan menambah beban pemeliharaan. Tinjau daftar package secara berkala, lalu hapus komponen yang tidak lagi dipakai. Pastikan penghapusan diuji agar tidak menimbulkan gangguan pada fitur yang masih membutuhkan komponen tersebut.
6. Batasi izin dan periksa konfigurasi build
Jalankan proses pengembangan dan build dengan izin secukupnya. Jangan memberikan akses lebih luas daripada yang diperlukan oleh aplikasi, script, atau layanan pendukungnya. Periksa konfigurasi build agar tidak menjalankan perintah asing tanpa alasan yang jelas.
Konfigurasi yang sederhana dan terdokumentasi membantu tim memahami apa yang terjadi ketika aplikasi dibangun. Ini juga memudahkan pemeriksaan ketika ada perubahan pada script atau pipeline.
7. Jalankan pemeriksaan keamanan secara berkala
Gunakan kemampuan pemindaian yang tersedia dalam ekosistem proyek untuk membantu menemukan dependensi rentan atau konfigurasi yang perlu diperiksa. Hasil pemindaian harus ditinjau dan ditindaklanjuti, bukan sekadar disimpan sebagai laporan.
Alat pemindaian dapat membantu, tetapi tidak menjamin keamanan proyek. Pemeriksaan manual, pengujian, peninjauan perubahan, dan pemahaman terhadap konteks aplikasi tetap diperlukan.
8. Jangan menyimpan rahasia di repository
Token, kata sandi, kunci akses, dan rahasia konfigurasi tidak boleh dimasukkan ke repository, termasuk repository tugas atau portofolio. Gunakan mekanisme konfigurasi yang sesuai untuk menyimpan rahasia, dan periksa kembali berkas sebelum melakukan commit.
Jika rahasia terlanjur tersimpan, menghapus baris dari versi terbaru belum tentu cukup. Rahasia tersebut perlu dianggap telah terekspos dan ditangani sesuai prosedur yang berlaku.
Alur sederhana untuk proyek mahasiswa
- Tentukan package yang benar-benar dibutuhkan dan cari dari sumber resmi.
- Periksa dokumentasi, reputasi pemelihara, serta riwayat pemeliharaannya.
- Tambahkan package melalui manifest dan simpan lockfile bila tersedia.
- Catat alasan pemakaian serta versi awalnya dalam dokumentasi proyek.
- Tinjau perubahan dan jalankan pengujian setiap kali melakukan upgrade.
- Jalankan pemeriksaan keamanan secara berkala dan bahas hasilnya dalam evaluasi tim.
- Hapus dependensi yang tidak digunakan dan pastikan rahasia tidak masuk repository.
Bangun kebiasaan aman sejak proyek pertama
Keamanan dependensi perangkat lunak adalah praktik berkelanjutan, bukan tugas yang selesai setelah package berhasil dipasang. Mahasiswa dapat memulainya dengan langkah sederhana: memilih sumber tepercaya, mencatat versi, meninjau pembaruan, membatasi izin, dan memeriksa komponen secara berkala.
Kebiasaan tersebut mencerminkan sikap profesional: cerdas digital, berintegritas, dan siap menghadapi dunia global. Dengan memahami rantai pasok perangkat lunak sejak di bangku kuliah, mahasiswa tidak hanya menghasilkan aplikasi yang berfungsi, tetapi juga belajar membangun perangkat lunak yang lebih dapat dipertanggungjawabkan.








Leave a Reply