Kerentanan yang membenarkan kemas kini dikeluarkan untuk mana-mana pakej dalam repositori NPM

GitHub telah mendedahkan dua insiden dalam infrastruktur repositori pakej NPMnya. Pada 2 November, penyelidik keselamatan pihak ketiga (Kajetan Grzybowski dan Maciej Piechota), sebagai sebahagian daripada program Bug Bounty, melaporkan kehadiran kelemahan dalam repositori NPM yang membolehkan anda menerbitkan versi baharu mana-mana pakej menggunakan akaun anda, yang tidak dibenarkan melakukan kemas kini sedemikian.

Kerentanan itu disebabkan oleh semakan kebenaran yang salah dalam kod perkhidmatan mikro yang memproses permintaan kepada NPM. Perkhidmatan kebenaran melakukan semakan kebenaran pakej berdasarkan data yang dihantar dalam permintaan, tetapi perkhidmatan lain yang memuat naik kemas kini ke repositori menentukan pakej untuk diterbitkan berdasarkan kandungan metadata pakej yang dimuat naik. Oleh itu, penyerang boleh meminta penerbitan kemas kini untuk pakejnya, yang dia mempunyai akses, tetapi nyatakan dalam pakej itu sendiri maklumat tentang pakej lain, yang akhirnya akan dikemas kini.

Isu ini telah dibetulkan 6 jam selepas kerentanan dilaporkan, tetapi kerentanan itu hadir dalam NPM lebih lama daripada liputan log telemetri. GitHub mendakwa bahawa tiada kesan serangan menggunakan kelemahan ini sejak September 2020, tetapi tidak ada jaminan bahawa masalah itu tidak pernah dieksploitasi sebelum ini.

Kejadian kedua berlaku pada 26 Oktober. Semasa kerja teknikal dengan pangkalan data perkhidmatan replicate.npmjs.com, kehadiran data sulit dalam pangkalan data yang boleh diakses oleh permintaan luaran telah didedahkan, mendedahkan maklumat tentang nama pakej dalaman yang disebut dalam log perubahan. Maklumat tentang nama sedemikian boleh digunakan untuk menjalankan serangan pergantungan pada projek dalaman (pada bulan Februari, serangan serupa membenarkan kod dilaksanakan pada pelayan PayPal, Microsoft, Apple, Netflix, Uber dan 30 syarikat lain).

Di samping itu, disebabkan peningkatan bilangan kes repositori projek besar yang dirampas dan kod hasad dipromosikan melalui akaun pembangun yang menjejaskan, GitHub telah memutuskan untuk memperkenalkan pengesahan dua faktor mandatori. Perubahan itu akan berkuat kuasa pada suku pertama 2022 dan akan dikenakan kepada penyelenggara dan pentadbir pakej yang disertakan dalam senarai paling popular. Selain itu, dilaporkan tentang pemodenan infrastruktur, di mana pemantauan automatik dan analisis versi baharu pakej akan diperkenalkan untuk pengesanan awal perubahan berniat jahat.

Mari kita ingat bahawa, menurut kajian yang dijalankan pada tahun 2020, hanya 9.27% ​​penyelenggara pakej menggunakan pengesahan dua faktor untuk melindungi akses, dan dalam 13.37% kes, apabila mendaftar akaun baharu, pembangun cuba menggunakan semula kata laluan yang dikompromi yang muncul dalam kebocoran kata laluan yang diketahui. Semasa semakan keselamatan kata laluan, 12% daripada akaun NPM (13% daripada pakej) telah diakses kerana penggunaan kata laluan yang boleh diramal dan remeh seperti "123456." Antara yang bermasalah ialah 4 akaun pengguna daripada Top 20 pakej paling popular, 13 akaun dengan pakej dimuat turun lebih daripada 50 juta kali sebulan, 40 dengan lebih daripada 10 juta muat turun sebulan, dan 282 dengan lebih daripada 1 juta muat turun sebulan. Dengan mengambil kira pemuatan modul sepanjang rantaian kebergantungan, pencerobohan akaun yang tidak dipercayai boleh menjejaskan sehingga 52% daripada semua modul dalam NPM.

Sumber: opennet.ru

Tambah komen