Keracunan Artefak dalam Tindakan GitHub Mengimpor Malware melalui Jalur Pipa Perangkat Lunak

Node Sumber: 1769941

Penyerang yang mengirimkan perubahan ke repositori sumber terbuka di GitHub dapat menyebabkan proyek perangkat lunak hilir yang menyertakan versi terbaru komponen untuk mengompilasi pembaruan dengan kode berbahaya.

Itu menurut firma keamanan rantai pasokan perangkat lunak Legit Security, yang mengatakan dalam sebuah penasehat yang diterbitkan pada 1 Desember bahwa kelemahan "keracunan artefak" ini dapat memengaruhi proyek perangkat lunak yang menggunakan Tindakan GitHub — layanan untuk mengotomatiskan saluran pengembangan — dengan memicu proses pembangunan saat perubahan terdeteksi dalam ketergantungan perangkat lunak. 

Kerentanan tidak teoretis: Legit Security mensimulasikan serangan pada proyek yang mengelola Rust, menyebabkan proyek dikompilasi ulang menggunakan versi khusus — dan berbahaya — dari pustaka perangkat lunak GCC yang populer, perusahaan menyatakan dalam penasehat.

Masalah tersebut mungkin memengaruhi sejumlah besar proyek sumber terbuka karena pengelola biasanya akan menjalankan pengujian pada kode yang dikontribusikan sebelum mereka benar-benar menganalisis kode itu sendiri, kata Liav Caspi, chief technology officer dari Legit Security.

“Ini adalah pola umum hari ini,” katanya. “Banyak proyek open source hari ini, atas permintaan perubahan, mereka menjalankan banyak tes untuk memvalidasi permintaan karena pengelola tidak ingin meninjau kode terlebih dahulu. Sebaliknya, itu secara otomatis menjalankan tes.

Serangan itu memanfaatkan proses pembuatan otomatis melalui GitHub Actions. Dalam kasus bahasa pemrograman Rust, pola yang rentan dapat memungkinkan penyerang mengeksekusi kode dengan cara istimewa sebagai bagian dari jalur pengembangan, mencuri rahasia repositori dan berpotensi merusak kode, kata Legit Security.

“Sederhananya: dalam alur kerja yang rentan, setiap pengguna GitHub dapat membuat garpu yang membangun artefak,” perusahaan itu dinyatakan dalam penasihatnya. “Kemudian masukkan artefak ini ke dalam proses pembuatan repositori asli dan modifikasi hasilnya. Ini adalah bentuk lain dari serangan rantai pasokan perangkat lunak, di mana output build dimodifikasi oleh penyerang.”

Kerentanan memungkinkan serangan yang mirip dengan serangan penyisipan malware yang menargetkan CodeCov dan, melalui perangkat lunak perusahaan itu, pelanggan hilirnya.

“Kurangnya implementasi asli GitHub untuk komunikasi artefak alur kerja menyebabkan banyak proyek dan komunitas Tindakan GitHub mengembangkan solusi tidak aman untuk komunikasi lintas alur kerja dan menjadikan ancaman ini sangat lazim,” Legit Security menyatakan dalam penasehat.

GitHub mengonfirmasi masalah tersebut dan membayar hadiah untuk informasi tersebut, sementara Rust memperbaiki jalur pipa yang rentan, kata Legit Security.

Sumber: Keamanan yang Sah

Rantai Pasokan Perangkat Lunak Membutuhkan Keamanan

Kerentanan adalah masalah keamanan terbaru yang memengaruhi rantai pasokan perangkat lunak. Industri dan lembaga pemerintah semakin berupaya untuk meningkatkan keamanan perangkat lunak sumber terbuka dan perangkat lunak yang disediakan sebagai layanan.

Pada Mei 2021, misalnya, pemerintahan Biden mengeluarkan perintah eksekutifnya tentang Meningkatkan Keamanan Siber Bangsa, aturan federal yang, di antara persyaratan lainnya, mengamanatkan bahwa pemerintah akan memerlukan standar keamanan dasar untuk perangkat lunak apa pun yang dibelinya. Di sisi industri swasta, Google dan Microsoft memilikinya menjanjikan miliaran dolar untuk menopang keamanan di ekosistem open source, yang menyediakan kode itu terdiri dari lebih dari tiga perempat basis kode aplikasi rata-rata.

Logis, Tapi Rentan

Masalah keamanan termasuk dalam kelas masalah yang sulit ditemukan yang dikenal sebagai masalah logika, yang mencakup masalah dengan izin, potensi repositori bercabang untuk dimasukkan ke dalam saluran pipa, dan kurangnya perbedaan antara repositori bercabang dan basis.

Karena proyek perangkat lunak sering menggunakan skrip otomatis untuk memeriksa pengiriman kode sebelum meneruskannya ke pengelola, permintaan penarikan akan dijalankan melalui otomatisasi sebelum ada manusia yang memeriksa kode berbahaya. Sementara otomatisasi menghemat waktu, itu juga harus dianggap sebagai cara bagi penyerang untuk memasukkan kode berbahaya ke dalam pipa.

“Saat Anda melakukan pengembangan sumber terbuka, masalahnya lebih besar, karena Anda menerima kontribusi dari siapa pun di dunia,” kata Caspi. "Anda mengeksekusi hal-hal yang tidak dapat Anda percayai."

GitHub mengakui masalah ini dan memperluas cara mengecualikan kiriman dari kolaborator luar agar tidak otomatis dimasukkan ke dalam pipa Tindakan. Perusahaan memperbarui API GetArtifact dan ListArtifacts dengan tujuan memberikan lebih banyak informasi untuk membantu menentukan apakah suatu artefak dapat dipercaya.

“Siapa pun yang melakukan hal seperti proyek Rust — memercayai masukan dari pihak ketiga — maka mereka masih rentan,” kata Caspi. “Ini adalah masalah logika. GitHub mempermudah penulisan skrip yang lebih aman.”

Stempel Waktu:

Lebih dari Bacaan gelap