Log4Shell sebezhetőség: amit eddig tudni lehet


2021.12.14.

A mindenütt jelenlévő Log4j segédprogram kritikus hibája az IT biztonsági iparágon túl más szektorokban is nagy hullámokat vetett – összefoglaltuk, mit tudunk eddig a sebezhetőségről.

Éppen amikor már jönnének az ünnepek, akkor kopogtat be az ajtónkon az Apache „Log4j 2” kódkönyvtárában található kritikus sebezhetőség is. A Log4j egy nyílt forráskódú Java-alapú naplózási könyvtár, amelyet számos termék, szolgáltatás és Java komponens széles körben használ. Nem meglepő, hogy a sebezhetőség a CVSS-skálán a legmagasabb, 10-es pontszámot érte el, mivel a hiba kihasználásával számtalan szerver irányítását lehet teljes mértékben átvenni.

Mivel az interneten már elérhető a sebezhetőséget kihasználó exploit kód, most tanúi lehetünk egy tömegeket érintő „versenynek” a sebezhetővé vált rendszerek után kutató hackerek, a rendszerek frissítését végző és a hibát befoltozó biztonsági szakemberek, valamint az alkalmazások és kódkönyvtárak sebezhetőség-függőségi vizsgálatait végző fejlesztők között.

Mi a Log4Shell?

A CVE-2021-44228 néven illetett hiba egy távoli kódfuttatási (RCE) sebezhetőség, amely lehetővé teszi a támadó számára, hogy tetszőleges kódot futtasson az érintett kiszolgálón. Amennyiben a támadó valahogyan bejut a helyi hálózatba, még az internetnek nem kitett belső rendszerek is kihasználhatók. Végső soron az RCE sebezhetőség azt jelenti, hogy a támadónak nincs szüksége fizikai hozzáférésre ahhoz, hogy olyan tetszőleges kódot futtasson, amely az érintett rendszerek feletti teljes ellenőrzéshez és érzékeny adatok ellopásához vezethet.

Idővonal

A kritikus sebezhetőséggel kapcsolatos események időrendje:

November 26.: A sebezhetőség CVE-azonosítóját bejegyezték.
December 1.: A sebezhetőség első ismert valódi (nem tesztelési célú) kihasználása.
December 10.: A CVE-azonosító közzététele és a javítás kiadása.
December 11.: 14:24-kor (közép-európai idő szerint) az ESET Hálózati támadások elleni védelmi modulja észlelési frissítést kapott a sebezhetőségre vonatkozóan.

Észlelés

Az ESET kiadta a sebezhetőség kihasználásának észlelésére vonatkozó frissítését. A Windows rendszereken ez a veszélyforrás a bejövő és a kimenő forgalomban egyaránt jelen lehet. Az érintett rendszerekben a támadó kódok a frissítés hatására blokkolásra kerülnek.

A sebezhetőség kihasználására irányuló kísérletek észlelése a következő észlelési nevekkel került bevezetésre:

JAVA/Exploit.CVE-2021-44228
JAVA/Exploit.CVE-2021-44228.B

Térképünk több százezer blokkolt, a Log4j sérülékenység kihasználására irányuló kísérletet mutat

A kárenyhítési lépések

Az exploitokkal szembeni védelemhez kritikus fontosságú az összes könyvtár összes sebezhető verziójának megkeresése. Ehhez azt javasoljuk, hogy első lépésként állítson össze egy rangsorolt listát a rendszerekről, amelyeket át kell vizsgálnia, majd a listán szereplő tételeket egyesével értékelje ki. A trükkös rész a Java Archive (JAR) archívumokban tranzitív függőségként létező sebezhető verziók megtalálása lehet.

Íme néhány alapvető szkript, amelyet használhat (ezeket a saját rendszereihez igazítva kell módosítania):

A Log4j jelenlétének felderítése a rendszerben (Linux és Windows)

Ez a GitHubon elérhető szkript megkeresi a hibás JndiLookup.class fájlt a rendszer bármelyik .jar archívumában.

Linux

sudo grep -r --include "*.jar" JndiLookup.class /

Windows

findstr /s /i /c:"JndiLookup.class" C:\*.jar

A sebezhetőség kihasználási kísérleteinek észlelése a naplófájlokban (Linux)

Ez a szkript, amely szintén elérhető a fenti GitHub linkről, a Linux naplók /var/log könyvtárában és annak összes alkönyvtárában található tömörítetlen fájlokban keresi az exploit kísérleteket:

Grep

sudo egrep -I -i -r '\$(\{|%7B)jndi:(ldap[s]?|rmi|dns|nis|iiop|corba|nds|http):/[^\n]+' /var/log

Zgrep

sudo find /var/log -name \*.gz -print0 | xargs -0 zgrep -E -i '\$(\{|%7B)jndi:(ldap[s]?|rmi|dns|nis|iiop|corba|nds|http):/[^\n]+ '

Eredmények rögzítése

A szkriptek vagy észlelőeszközök futtatása után mindenképpen rögzítse az eredményeket, hogy segítse valamennyi rendszere teljes ellenőrzési dokumentációjának elkészítését. Az ellenőrzésnek tartalmaznia kell, hogy talált-e Log4j-t egy rendszerben, és hogy a naplókban felfedeztek-e bármilyen exploit kísérletet.

A Log4j legújabb verziójára való áttérés

A Log4j 2 sebezhető verziói a log4j-core összes verziója a 2.0-beta 9-től a 2.14.1-ig. Megjegyzendő, hogy ez a könyvtár nem tévesztendő össze a log4j-api könyvtárral, amelyet ez a sebezhetőség nem érint. A legjobb megoldás a függőségek frissítése, hogy a legújabb, 2.15.0-s verziót használjuk.

Bár a Log4j 1.x verzióit nem érinti ez a konkrét sebezhetőség, más sebezhetőségeket tartalmaznak. Konkrét terveket kell készíteni a könyvtár legújabb verziójára való áttérésre.

Gyanús IP-címek blokkolása

Végül pedig a gyanúsnak vélt IP-címeket blokkolhatja tűzfalával és/vagy behatolásmegelőző rendszerével.

További információkért az ESET tájékoztatását itt érheti el.