Kerentanan yang memungkinkan pembaruan dirilis untuk paket apa pun di repositori NPM

GitHub telah mengungkapkan dua insiden dalam infrastruktur repositori paket NPM miliknya. Pada tanggal 2 November, peneliti keamanan pihak ketiga (Kajetan Grzybowski dan Maciej Piechota), sebagai bagian dari program Bug Bounty, melaporkan adanya kerentanan dalam repositori NPM yang memungkinkan Anda mempublikasikan versi baru dari paket apa pun menggunakan akun Anda, yang tidak berwenang untuk melakukan pembaruan tersebut.

Kerentanan ini disebabkan oleh pemeriksaan izin yang salah pada kode layanan mikro yang memproses permintaan ke NPM. Layanan otorisasi melakukan pemeriksaan izin paket berdasarkan data yang diteruskan dalam permintaan, namun layanan lain yang mengunggah pembaruan ke repositori menentukan paket yang akan diterbitkan berdasarkan konten metadata paket yang diunggah. Dengan demikian, penyerang dapat meminta publikasi pembaruan untuk paketnya, yang dapat diaksesnya, tetapi menentukan dalam paket itu sendiri informasi tentang paket lain, yang pada akhirnya akan diperbarui.

Masalah ini diperbaiki 6 jam setelah kerentanan dilaporkan, namun kerentanan muncul di NPM lebih lama dari cakupan log telemetri. GitHub mengklaim bahwa tidak ada jejak serangan yang menggunakan kerentanan ini sejak September 2020, namun tidak ada jaminan bahwa masalah tersebut belum pernah dieksploitasi sebelumnya.

Peristiwa kedua terjadi pada 26 Oktober. Selama pekerjaan teknis dengan database layanan replica.npmjs.com, keberadaan data rahasia dalam database yang dapat diakses oleh permintaan eksternal terungkap, mengungkapkan informasi tentang nama paket internal yang disebutkan dalam log perubahan. Informasi tentang nama-nama tersebut dapat digunakan untuk melakukan serangan ketergantungan pada proyek internal (pada bulan Februari, serangan serupa memungkinkan kode dieksekusi di server PayPal, Microsoft, Apple, Netflix, Uber, dan 30 perusahaan lainnya).

Selain itu, karena meningkatnya jumlah kasus pembajakan repositori proyek besar dan kode berbahaya yang dipromosikan melalui akun pengembang yang disusupi, GitHub telah memutuskan untuk memperkenalkan otentikasi dua faktor wajib. Perubahan ini akan mulai berlaku pada kuartal pertama tahun 2022 dan akan berlaku untuk pengelola dan administrator paket yang termasuk dalam daftar terpopuler. Selain itu, dilaporkan tentang modernisasi infrastruktur, di mana pemantauan otomatis dan analisis paket versi baru akan diperkenalkan untuk deteksi dini perubahan berbahaya.

Ingatlah bahwa, menurut penelitian yang dilakukan pada tahun 2020, hanya 9.27% pengelola paket yang menggunakan autentikasi dua faktor untuk melindungi akses, dan dalam 13.37% kasus, saat mendaftarkan akun baru, pengembang mencoba menggunakan kembali kata sandi yang telah disusupi yang muncul di kebocoran kata sandi yang diketahui. Selama peninjauan keamanan kata sandi, 12% akun NPM (13% dari paket) diakses karena penggunaan kata sandi yang mudah diprediksi dan sepele seperti β€œ123456.” Di antara yang bermasalah adalah 4 akun pengguna dari 20 paket terpopuler, 13 akun dengan paket diunduh lebih dari 50 juta kali per bulan, 40 akun dengan lebih dari 10 juta unduhan per bulan, dan 282 akun dengan lebih dari 1 juta unduhan per bulan. Dengan mempertimbangkan pemuatan modul di sepanjang rantai ketergantungan, penyusupan akun yang tidak tepercaya dapat memengaruhi hingga 52% dari seluruh modul di NPM.

Sumber: opennet.ru

Tambah komentar