Menyerang infrastruktur PyTorch, membahayakan repositori dan rilis

Rincian serangan terhadap infrastruktur yang digunakan dalam pengembangan kerangka pembelajaran mesin PyTorch terungkap, yang memungkinkan untuk mengekstrak kunci akses yang cukup untuk menempatkan data arbitrer dalam repositori dengan rilis proyek di GitHub dan AWS, serta untuk mengganti kode di cabang utama repositori dan tambahkan pintu belakang melalui dependensi. Spoofing rilis PyTorch dapat digunakan untuk menyerang perusahaan besar seperti Google, Meta, Boeing, dan Lockheed Martin yang menggunakan PyTorch dalam proyek mereka. Sebagai bagian dari program Bug Bounty, Meta membayar peneliti $16250 untuk informasi tentang masalah tersebut.

Inti dari serangan ini adalah kemampuan untuk mengeksekusi kode Anda pada server Integrasi berkelanjutan, yang membangun ulang dan menjalankan tugas untuk menguji perubahan baru yang didorong ke repositori. Masalah ini memengaruhi proyek yang menggunakan penangan "Self-Hosted Runner" eksternal mereka sendiri dengan GitHub Actions. Tidak seperti GitHub Actions tradisional, penangan Self-Hosted berjalan sendiri, bukan di dalam infrastruktur GitHub. server atau virtual Mesin yang didukung oleh para pengembang.

Menjalankan tugas perakitan di server Anda memungkinkan Anda mengatur peluncuran kode yang dapat memindai jaringan internal perusahaan, mencari kunci enkripsi dan token akses di FS lokal, dan menganalisis variabel lingkungan dengan parameter untuk mengakses penyimpanan eksternal atau layanan cloud. Dengan tidak adanya isolasi yang tepat pada lingkungan perakitan, data rahasia yang ditemukan dapat dikirim ke penyerang dari luar, misalnya, melalui akses ke API eksternal. Untuk menentukan penggunaan Self-Hosted Runner oleh proyek, toolkit Gato dapat digunakan untuk menganalisis file alur kerja yang dapat diakses publik dan log peluncuran tugas CI.

Di PyTorch dan banyak proyek lain yang menggunakan Self-Hosted Runner, hanya pengembang yang perubahannya telah ditinjau sejawat dan disertakan dalam basis kode proyek yang diizinkan menjalankan pekerjaan pembangunan. Memiliki status "kontributor" saat menggunakan pengaturan default di repositori memungkinkan untuk meluncurkan penangan GitHub Actions saat mengirim permintaan penarikan dan, karenanya, mengeksekusi kode Anda di lingkungan GitHub Actions Runner mana pun yang terkait dengan repositori atau organisasi yang mengawasi proyek.

Tautan ke status "kontributor" ternyata mudah untuk dilewati - cukup kirimkan perubahan kecil terlebih dahulu dan tunggu hingga diterima ke dalam basis kode, setelah itu pengembang secara otomatis menerima status peserta aktif, yang permintaan penarikannya diizinkan untuk diuji di infrastruktur CI tanpa verifikasi terpisah. Untuk mencapai status pengembang aktif, eksperimen ini menyertakan sedikit perubahan tampilan untuk memperbaiki kesalahan ketik dalam dokumentasi. Untuk mendapatkan akses ke repositori dan penyimpanan rilis PyTorch, serangan saat mengeksekusi kode di β€œSelf-Hosted Runner” mencegat token GitHub yang digunakan untuk mengakses repositori dari proses pembangunan, serta kunci AWS yang digunakan untuk menyimpan hasil pembangunan. .

Masalah ini tidak spesifik untuk PyTorch dan memengaruhi banyak proyek besar lainnya yang menggunakan pengaturan default untuk "Self-Hosted Runner" di GitHub Actions. Misalnya, penerapan serangan serupa disebutkan untuk memasang pintu belakang di beberapa dompet mata uang kripto besar dan proyek blockchain dengan kapitalisasi miliaran dolar, membuat perubahan pada rilis Microsoft Deepspeed dan TensorFlow, menyusupi salah satu aplikasi CloudFlare, dan juga mengeksekusi kode pada komputer di jaringan Microsoft. Rincian insiden ini belum diungkapkan. Di bawah program bug bounty yang ada, para peneliti telah mengajukan lebih dari 20 permohonan untuk mendapatkan hadiah senilai beberapa ratus ribu dolar.

Sumber: opennet.ru

Beli hosting yang andal untuk situs dengan perlindungan DDoS, server VPS VDS πŸ”₯ Beli hosting website andal dengan perlindungan DDoS, server VPS VDS | ProHoster