Kelemahan keamanan kritis yang kini telah ditambal yang memengaruhi Google Cloud Platform (GCP) Composer dapat dimanfaatkan untuk mencapai eksekusi kode jarak jauh pada server cloud melalui teknik serangan rantai pasokan yang disebut kebingungan ketergantungan.
Kerentanan tersebut telah diberi nama kode awan impostor oleh Tenable Research.
“Kerentanan tersebut dapat memungkinkan penyerang untuk membajak ketergantungan perangkat lunak internal yang telah diinstal sebelumnya oleh Google di setiap alat orkestrasi jalur Google Cloud Composer,” kata peneliti keamanan Liv Matan dalam sebuah laporan yang dibagikan kepada The Hacker News.
Kebingungan ketergantungan (alias serangan substitusi), yang pertama kali didokumentasikan oleh peneliti keamanan Alex Birsan pada bulan Februari 2021, mengacu pada jenis kompromi rantai pasokan perangkat lunak di mana seorang manajer paket ditipu agar menarik paket berbahaya dari repositori publik, bukan file yang dituju dengan nama yang sama dari repositori internal.
Jadi, pelaku ancaman dapat melancarkan serangan rantai pasokan berskala besar dengan menerbitkan paket palsu ke repositori paket publik dengan nama yang sama dengan paket yang dikembangkan secara internal oleh perusahaan dan dengan nomor versi yang lebih tinggi.
Hal ini, pada gilirannya, menyebabkan manajer paket tanpa sadar mengunduh paket berbahaya tersebut dari repositori publik dan bukan dari repositori pribadi, yang pada dasarnya mengganti ketergantungan paket yang ada dengan paket berbahaya tersebut.
Masalah yang diidentifikasi oleh Tenable serupa yaitu dapat disalahgunakan untuk mengunggah paket berbahaya ke repositori Python Package Index (PyPI) dengan nama “google-cloud-datacatalog-lineage-producer-client,” yang kemudian dapat diinstal sebelumnya pada semua instans Composer dengan izin yang lebih tinggi.
Sementara Cloud Composer mengharuskan paket yang dimaksud memiliki versi yang disematkan (yaitu, versi 0.1.0), Tenable menemukan bahwa penggunaan argumen “–extra-index-url” selama perintah “pip install” memprioritaskan pengambilan paket dari registri publik, sehingga membuka pintu terhadap kebingungan ketergantungan.
Berbekal hak istimewa ini, penyerang dapat mengeksekusi kode, mencuri kredensial akun layanan, dan berpindah secara lateral di lingkungan korban ke layanan GCP lainnya.
Setelah pengungkapan yang bertanggung jawab pada tanggal 18 Januari 2024, masalah ini diperbaiki oleh Google pada bulan Mei 2024 dengan memastikan bahwa paket tersebut hanya diinstal dari repositori pribadi. Google juga menambahkan tindakan pencegahan ekstra dengan memverifikasi checksum paket untuk mengonfirmasi integritasnya dan memvalidasi bahwa paket tersebut tidak dirusak.
Python Packaging Authority (PyPA) dikatakan telah menyadari risiko yang ditimbulkan oleh argumen “–extra-index-url” setidaknya sejak Maret 2018, mendesak pengguna untuk melewatkan penggunaan PyPI jika paket internal perlu ditarik.
“Paket diharapkan unik hingga nama dan versinya, jadi dua roda dengan nama dan versi paket yang sama dianggap tidak dapat dibedakan oleh pip,” kata seorang anggota PyPA saat itu. “Ini adalah fitur yang disengaja dari metadata paket, dan tidak mungkin berubah.”
Google, sebagai bagian dari perbaikannya, kini juga menyarankan agar developer menggunakan argumen “–index-url” alih-alih argumen “–extra-index-url” dan agar pelanggan GCP memanfaatkan repositori virtual Artifact Registry saat memerlukan beberapa repositori.
“Argumen '–index-url' mengurangi risiko serangan kebingungan ketergantungan dengan hanya mencari paket dalam registri yang ditetapkan sebagai nilai tertentu untuk argumen tersebut,” kata Matan.