Repositori Kode Java Penuh dengan Bug Log4j Tersembunyi; Di Sini Di Mana Mencarinya?
Ada sejumlah besar perangkat lunak yang rentan terhadap bug Log4j melalui rantai pasokan perangkat lunak Java — dan administrator serta ahli keamanan kemungkinan besar bahkan tidak tahu di mana mencarinya.
Sekitar 17.000 paket Java di repositori Maven Central, koleksi Java yang paling signifikan paket yang tersedia untuk pengembang, rentan terhadap Log4j — dan kemungkinan akan memakan waktu “bertahun-tahun” untuk memperbaikinya di seluruh ekosistem, menurut keamanan Google.
Mengikuti pembaruan CVE yang hanya terpengaruh oleh Log4j-core, menghilangkan instance Log4j yang rentan -api, Google Security menetapkan bahwa pada 19 Desember, lebih dari 17.000 paket di Maven Central rentan, sekitar 4 persen dari keseluruhan repositori. Dari mereka, hanya 25 persen dari paket yang memiliki versi terbaru yang tersedia, Google menambahkan.
Sebagai perbandingan, peneliti Google menjelaskan dalam posting blog hari Selasa bahwa rata-rata bug mempengaruhi antara 2 persen dan kurang dari 0,01 persen dari paket tersebut.
Sonatype, organisasi yang memelihara Maven Central, memiliki dasbor yang diperbarui beberapa kali sehari dengan yang terbaru di Log4j dan melaporkan bahwa sejak 10 Desember, lebih dari 40 persen paket yang diunduh masih rentan, dengan total hampir 5 juta unduhan.
Dan itu adalah unduhan baru yang membuat aplikasi dan proyek terbuka untuk serangan Log4j.
Mulai Pada Titik Terdalam dalam Rantai Pasokan dan Kerjakan
Log4j bersembunyi di "ketergantungan" pada kode yang cacat, baik langsung maupun tidak langsung, naik dan turun rantai pasokan, Google menjelaskan.
“Mayoritas artefak yang terpengaruh berasal dari dependensi tidak langsung (yaitu, dependensi dari dependensi sendiri), yang berarti Log4j tidak secara eksplisit didefinisikan sebagai ketergantungan artefak, tetapi ditarik sebagai ketergantungan transitif,” kata tim Google.
Membuat versi Log4j yang tidak ditambal ini bahkan lebih menyelinap untuk dilacak adalah “seberapa jauh rantai pasokan perangkat lunak yang biasanya digunakan,” tambah para analis.
“Untuk lebih dari 80 persen paket, kerentanannya lebih dari satu level, dengan mayoritas terpengaruh lima level ke bawah (dan beberapa hingga sembilan level ke bawah),” laporan itu memperingatkan. “Paket-paket ini akan memerlukan perbaikan di seluruh bagian pohon, mulai dari dependensi terdalam terlebih dahulu.”
Mengapa Java Lebih Sulit Dibandingkan Ekosistem Lain
Menambahkan tingkat kesulitan lain untuk menemukan bug Log4j adalah persyaratan versi “lunak” Java, menurut Google .
“Menyebarkan perbaikan seringkali membutuhkan tindakan eksplisit oleh pengelola untuk memperbarui persyaratan ketergantungan ke versi yang ditambal,” kata peneliti Google. “Praktik ini berbeda dengan ekosistem lain, seperti npm, di mana pengembang biasa menentukan rentang terbuka untuk persyaratan ketergantungan.”
Dalam menghadapi tantangan unik ini, Google melaporkan pengelola sumber terbuka dan tim keamanan telah melakukan upaya luar biasa untuk menambal sistem. Tapi masih ada banyak pekerjaan yang harus dilakukan sebelum Log4j berada di tampilan belakang industri untuk selamanya.
Untuk membantu, Google telah mengumpulkan daftar 500 paket kode Java yang paling banyak digunakan dan terpengaruh.
“Kami melihat semuanya secara publik mengungkapkan nasihat kritis yang memengaruhi paket Maven untuk mengetahui seberapa cepat kerentanan lain telah ditangani sepenuhnya, ”kata tim. “Kurang dari setengah (48 persen) artefak yang terpengaruh oleh kerentanan telah diperbaiki, jadi kami mungkin harus menunggu lama, kemungkinan bertahun-tahun.”