Aplikasi yang menggunakan nama repositori lama di GitHub sebagai dependensi sebenarnya dapat mengarahkan pengguna ke malware. Inilah yang perlu Anda ketahui.
Semakin jelas bahwa repojacking GitHub menimbulkan risiko yang sah bagi pengembang. Peretas dapat memanfaatkan pengguna dan perusahaan yang mengubah nama GitHub mereka dengan membajak repositori lama nama dengan harapan file berbahaya yang mereka tambahkan dapat diambil oleh aplikasi yang menggunakan kode sebagai a ketergantungan.
Maka, penting bagi Anda untuk mengambil langkah-langkah untuk melindungi proyek GitHub Anda sendiri jika Anda baru saja mengubah nama pengguna atau mereferensikan repositori lain sebagai dependensi.
Apa itu RepoJacking?
Repojacking GitHub adalah jenis eksploit yang dapat terjadi setelah pemilik repositori mengubah nama pengguna mereka. Kombinasi nama pengguna dan repositori lama tersedia, dan repojacker dapat memanfaatkan ketergantungannya dengan mengklaim nama pengguna dan membuat repositori dengan nama yang sama.
Repojacking dapat menimbulkan dua jenis risiko yang berbeda:
- Repojacking dapat membuat aplikasi yang dapat dipercaya menjadi tidak dapat diandalkan. Jika Anda menggunakan aplikasi yang menggunakan repositori GitHub sebagai dependensi dan pemiliknya mengganti nama repositori tersebut, menggunakan aplikasi tersebut akan membuat Anda rentan.
- Repojacking dapat membahayakan aplikasi yang Anda kembangkan. Jika Anda mereferensikan repositori GitHub sebagai dependensi dan gagal memperhatikan atau memperbaruinya saat repositori diganti namanya, aplikasi Anda akan rentan terhadap eksploitasi repojacking.
Repojacking tidak menimbulkan risiko yang luar biasa bagi pengguna, tetapi ada alasan yang sah untuk meyakini bahwa hal itu dapat berfungsi sebagai mekanisme serangan rantai pasokan yang serius. Jika aplikasi memiliki ketergantungan yang mereferensikan repositori yang di-repojack, aplikasi akan memanggil dan menerima kode dari repojacker yang mungkin berisi malware.
Jika Anda mengembangkan di GitHub, mengetahui bagaimana Anda bisa meminimalkan risiko serangan rantai pasokan Anda dan repojacking—baik dalam hal menjadi repositori yang dibajak maupun menjadi pihak ketiga dengan ketergantungan—sangatlah penting.
Cara Meminimalkan Risiko RepoJacking
Serangan repojacking mengandalkan mekanisme yang sangat dapat diprediksi: pembajak mengendalikan repositori yang tidak diklaim dan kemudian memanfaatkan aplikasi apa pun yang mereferensikannya sebagai ketergantungan. Untungnya, ini membuat repojacking mudah untuk dilawan.
Buat Klon Repositori Pribadi
Mengkloning repositori adalah cara terbaik untuk meminimalkan risiko yang terkait dengan ketergantungan dalam proyek Anda karena Anda akan memiliki kendali penuh atas salinan pribadi Anda. Anda dapat membuat salinan pribadi dari repositori publik dengan kloning kosong dan mirror mendorongnya, seperti yang didokumentasikan di GitHub.
Lacak Ketergantungan Proyek Anda Dengan Hati-hati
Jika Anda memutuskan bahwa Anda lebih suka menghindari masalah dan mereferensikan repositori publik, Anda harus memastikan bahwa Anda sering mengaudit dependensi proyek Anda. Memeriksa status dependensi Anda beberapa kali dalam setahun akan memakan waktu paling lama kurang dari satu jam—dan itu akan menghemat banyak stres.
Pertimbangkan Kembali Mengganti Nama Akun Anda
Idealnya, memperbarui nama pengguna Anda tidak perlu dikhawatirkan. Namun, mengingat risiko repojacking, Anda harus mempertimbangkan untuk mempertahankan nama lama Anda. Jika Anda harus mengubah nama pengguna, Anda harus mengklaim dan memesan nama lama dengan mendaftarkan akun lain.
Gunakan Sumber Daya Eksternal dengan Bijak
Ketergantungan menimbulkan risiko yang melekat karena mereka membuat jalur akses pihak ketiga di aplikasi Anda. Meskipun mereka biasanya sepadan dengan waktu yang mereka hemat, mengaudit dependensi proyek Anda secara teratur sangatlah penting. Anda juga harus mengambil tindakan keamanan lainnya, seperti menggunakan autentikasi SSH, untuk mencegah eksploitasi.