Scroll untuk baca artikel
Networking

Serangan rantai pasokan Revival Hijack mengancam 22.000 paket PyPI

98
×

Serangan rantai pasokan Revival Hijack mengancam 22.000 paket PyPI

Share this article
serangan-rantai-pasokan-revival-hijack-mengancam-22.000-paket-pypi
Serangan rantai pasokan Revival Hijack mengancam 22.000 paket PyPI

Serangan rantai pasokan Revival Hijack mengancam 22.000 paket PyPI

Pelaku ancaman memanfaatkan serangan yang disebut “Revival Hijack,” di mana mereka mendaftarkan proyek PyPi baru menggunakan nama paket yang dihapus sebelumnya untuk melakukan serangan rantai pasokan.

Example 300x600

Teknik tersebut “dapat digunakan untuk membajak 22 ribu paket PyPI yang ada dan kemudian menyebabkan ratusan ribu unduhan paket berbahaya,” kata para peneliti.

Membajak proyek-proyek populer

“Revival Hijack” adalah vektor serangan yang melibatkan pendaftaran proyek baru dengan nama paket yang telah dihapus dari platform PyPI. Dengan melakukan hal itu, pelaku ancaman dapat menyebarkan kode berbahaya ke pengembang yang menarik pembaruan.

Serangan tersebut mungkin terjadi karena PyPI segera menyediakan nama-nama proyek Python yang dihapus untuk didaftarkan.

Aliran serangan Revival Hijack
Aliran serangan Revival Hijack
Sumber: JFrog

Pengembang yang memutuskan untuk menghapus proyek dari PyPI hanya menerima peringatan tentang potensi konsekuensinya, termasuk skenario serangan Revival Hijack.

“Menghapus proyek ini akan membuat nama proyek tersebut tersedia bagi pengguna PyPI lainnya,” demikian peringatan dalam dialog tersebut.

“Pengguna ini akan dapat membuat rilis baru dengan nama proyek ini, selama nama berkas distribusi tidak sama dengan nama berkas dari distribusi yang dirilis sebelumnya.”

Dialog penghapusan proyek di PyPI
Dialog penghapusan proyek di PyPI
Sumber: JFrog

Menurut peneliti di JFrog, sebuah platform rantai pasokan perangkat lunak, ada lebih dari 22.000 paket terhapus di PyPI yang rentan terhadap serangan Revival Hijack, dan beberapa di antaranya cukup populer.

Itu Para peneliti mengatakan bahwa rata-rata bulanan paket yang dihapus pada PyPI adalah 309, menunjukkan adanya peluang baru yang terus mengalir bagi penyerang.

Statistik penghapusan paket bulanan
Statistik penghapusan paket bulanan
Sumber: JFrog

JFrog mengatakan bahwa seorang pengembang dapat memutuskan untuk menghapus paket mereka karena berbagai alasan, mulai dari skrip yang tidak lagi diperlukan hingga penulisan ulang alat dan menerbitkannya dengan nama baru.

Dalam beberapa kasus, paket menjadi berlebihan karena fungsinya diperkenalkan di pustaka resmi atau API bawaan.

Kasus “pingdomv3”

Pada pertengahan April, JFrog mengamati Revival Hijack yang dimanfaatkan secara luas, ketika seorang pelaku ancaman menargetkan “pingdomv3” – sebuah implementasi layanan pemantauan situs web Pingdom API.

Paket tersebut dihapus pada tanggal 30 Maret tetapi pengembang baru membajak nama tersebut dan menerbitkan pembaruan pada hari yang sama, yang menunjukkan bahwa penyerang mengetahui masalah tersebut.

Dalam pembaruan berikutnya, paket tersebut menyertakan trojan Python yang dikaburkan menggunakan Base64 dan menargetkan lingkungan Jenkins CI/CD.

Garis waktu serangan
Garis waktu serangan
Sumber: JFrog

JFrog melompat untuk menyelamatkan

Peneliti JFrog mengambil tindakan untuk mengurangi risiko serangan Revival Hijack dengan membuat proyek Python baru dengan nama-nama paket paling populer yang sudah dihapus.

JFrog menjelaskan bahwa PyPI memelihara daftar blokir non-publik yang mencegah nama-nama tertentu didaftarkan pada proyek baru, tetapi sebagian besar paket yang dihapus tidak masuk dalam daftar itu.

Hal ini menyebabkan perusahaan keamanan mengambil tindakan tidak langsung untuk mengurangi ancaman “Revival Hijack” dan mendaftarkan paket-paket yang paling populer yang dihapus/rentan di bawah akun bernama keamanan_memegang.

Paket yang ditinggalkan kosong, dan peneliti mengubah nomor versi menjadi 0.0.0.1, untuk memastikan bahwa pengguna aktif tidak menarik pembaruan.

Tindakan ini pada dasarnya menyimpan nama paket dan mencegah pelaku jahat membajaknya untuk tujuan jahat.

Tiga bulan kemudian, JFrog memperhatikan bahwa paket-paket di repositori mereka memiliki hampir 200.000 unduhan dari skrip otomatis dan kesalahan ketik pengguna.

Kasus “Revival Hijack” jauh lebih berbahaya daripada serangan typosquatting standar pada PyPI, karena pengguna yang menarik pembaruan untuk proyek yang mereka pilih tidak membuat kesalahan.

Untuk mengurangi ancaman, pengguna dan organisasi dapat menggunakan penyematan paket untuk tetap menggunakan versi yang ditentukan dan diketahui dapat dipercaya, memverifikasi integritas paket, mengaudit kontennya, dan mencari perubahan dalam kepemilikan paket atau aktivitas pembaruan yang tidak biasa.