idNSA.id - Layanan hosting repositori berbasis cloud GitHub
telah mengatasi kerentanan yang dapat dieksploitasi oleh aktor ancaman untuk
mengambil alih repositori pengguna lain.
Kerentanan ditemukan oleh Checkmarx yang disebut teknik
serangan RepoJacking. Teknik ini berpotensi memungkinkan penyerang menginfeksi
semua aplikasi dan kode dalam repositori.
“Tim Checkmarx SCS (Supply Chain Security) menemukan
kerentanan di GitHub yang memungkinkan penyerang mengambil kendali atas
repositori GitHub, dan berpotensi menginfeksi semua aplikasi dan kode lain dengan
kode berbahaya.” membaca posting yang diterbitkan oleh Checkmarx. “Jika tidak
cenderung secara eksplisit, semua nama pengguna yang diganti namanya di GitHub
rentan terhadap kelemahan ini, termasuk lebih dari 10.000 paket di package
manager Go, Swift, dan Packagist. Ini berarti ribuan package bisa saja langsung
dibajak dan mulai menyajikan kode berbahaya ke jutaan pengguna.”
Para peneliti menemukan bahwa kerentanan berada di mekanisme
"popular repository namespace retirement" dan mengembangkan tool open
source untuk mengidentifikasi dan membantu mengurangi risiko eksploitasi bug
dalam mekanisme ini.
Dalam serangan RepoJacking, penyerang mengklaim nama pengguna lama dari repositori setelah pembuat yang sah mengubah nama pengguna, kemudian menerbitkan repositori jahat dengan nama yang sama untuk mengelabui pengguna agar mengunduh kontennya.
Mekanisme "popular repository namespace retirement"
diperkenalkan oleh Github untuk mencegah RepoJacking. Menurut ukuran keamanan,
setiap repositori dengan lebih dari 100 klon pada saat akun penggunanya diubah
namanya dianggap "retired" dan tidak dapat digunakan oleh orang lain.
Kombinasi nama pengguna dan nama repositori dianggap "retired."
Peneliti Checkmark menemukan pintasan berikut yang menyalahgunakan fitur " Transfer Repositori ": “victim/repo” adalah repositori GitHub populer yang dihentikan di bawah perlindungan “popular repository namespace retirement”, "helper_account" membuat repositori "repo", “helper_account” mentransfer kepemilikan repositori “repo” ke “attacker_account”, “attacker_account” ganti nama pengguna menjadi “victim,” Akun “victim” yang baru (sebelumnya “attacker_account” ) menerima transfer kepemilikan
Namespace “victim/repo” sekarang berada dalam kendali penyerang
Eksploitasi cacat yang
berhasil dapat memungkinkan penyerang
untuk mendorong repositori yang berisi kode berbahaya dan meluncurkan serangan
rantai pasokan menggunakan nama pengguna yang diubah namanya.
“Seperti yang ditunjukkan dengan bypass sebelumnya dari
tindakan perlindungan ini, eksploitasi yang berhasil memungkinkan
pengambilalihan paket kode populer di beberapa manajer paket, termasuk
“Packagist,” “Go,” “Swift,” dan banyak lagi. Kami telah mengidentifikasi lebih
dari 10.000 paket di pengelola paket tersebut menggunakan nama pengguna yang
diubah namanya dan berisiko rentan terhadap teknik ini jika bypass baru
ditemukan.” menyimpulkan laporan.
“Selain itu, mengeksploitasi bypass ini juga dapat
mengakibatkan pengambilalihan tindakan GitHub populer, yang juga digunakan
dengan menentukan namespace GitHub. Meracuni tindakan GitHub yang populer dapat
menyebabkan serangan Rantai Pasokan besar dengan dampak yang signifikan.”