Apache издаде надградба за Log4j кошмарот

Пропуст во популарната „Јava“-библиотека Log4j која се користи за креирање на логови во Јава-апликациите е причина поради која милиони апликации се подложни на онлајн напади. Американската агенција за сајбербезбедност и инфраструктура (CISA) го означи пропустот за критичен и го оцени со највисока оценка за опасност 10 од 10. Веќе има потврда за злоупотреба, а и за координирани напори на хакерите да пронајдат што е можно повеќе сервиси и апликации со пропуст.

Log4j е основен дел од многу деловни апликации и библиотеката е широко распространета, па дел од експертите го прогласија пропустот за најлош годинава.

Библиотеката Log4j е развиена и ја одржува фондацијата Apache. Програмерите ја користат за да креираат евиденција за активностите во Java-апликацијата. Зафатени се сите верзии на библиотеката од 2.0 до 2.14.1. Пропустот на 24 ноември го откри Чен Жаојун од безбедносниот тим на Alibaba Cloud.

„Напаѓачот кој може да ги контролира лог пораките или параметрите на пораките може да изврши код од LDAP серверите ако message lookup substitution е дозволен“, вели Apache.

Apache веќе издаде нова верзија на Log4j 2.15 со која е надминат пропустот. За сите кои поради некоја причина нема да го може да ја инсталираат надградбата советот е:

  • За верзии понови од 2.10 – поставување на system property во log4j2.formatMsgNoLookups или поставување на вредноста на LOG4J_FORMAT_MSG_NO_LOOKUPS во true
  • За верзии од 2.7 до 2.14.1 PatternLayout треба да доаѓаат со конвертирање на пораките со %m{nolookups}
  • За верзии 2.0-beta9 до 2.10.0 треба да се отстрани класата JndiLookup од classpath

Повеќе податоци за надградбата и за начинот на кој може да се отстрани пропустот има веб-сајтот на Apache.

По издавањето на безбедносната надградба на Reddit може да се прочитаат сведоштва од цели безбедносни тимови од илјадници вработени кои преку викендот работеле на закрпа за сопствениот софтвер.

Како напаѓачите може да го злоупотребат Log4j

Пропустот произлегува од начинот на кој Log4j процесорот ги обработува пораките. Ова им овозможува на напаѓачите преку специјален „текст“ да повикаат и да извршат надворешен код.

Целиот процес е во неколку чекори. По внесувањето стрингот се префрла на обработка, Log4j прави интерполација на стрингот и преку JNDI се поврзува со малициозниот LDAP сервер. Серверот одговора со информација која содржи патека до малициозна јава класа (пример http://second-stage.attacker.com/Exploit.class). На серверот JAVA ja десеријализира или ја презема малициозната класа и ја извршува.

Една од првите апликации на коja е забележан напад е Minecraft: Java Edition. Полето за текст разговор во Minecraft овозможува испраќање на малициозен текст кој е доволен за почеток на нападот.

На нападите е подложен и iCloud на Apple. Корисниците јавуваат дека за нападот малициозниот стринг може да се внесе во полето името на телефонот. Слично како Apple подложни на нападите се и Tesla, и тоа на истото место во полето за име.

Безбедносна закрпа за библиотеката е веќе достапна, но поради новогодишните празници, голем дел од бизнисите нема да толерираат прекин во работата и ќе ја остават безбедносната закрпа за подоцна.

Како изгледа Log4j нападот

Џон Грахам-Каминг, Шеф за технологија во Cloudflare има подетален опис за пропустот и технологијата зад попустот.

Два плагини кои се во фокус на овој пропуст се „JNDILookup plugin“ и „Lightweight Directory Access Protocol“ (LDAP).

JNDI: Java Naming and Directory Interface е сервис кој му овозможува на Java програмот да пронајде податоци со структура на Java објект. JNDI доаѓа со различни интерфејси кои овозможуваат до користи различни сервиси. Еден од овие интерфејси е LDAP.

Програмата може со помош на JNDI и LDAP да пронајде Java објект со податоците кои му се потребни. За поголема флексибилност LDAP серверот може да биде на url кое може да се дефинира. Токму оваа флексибилност е еден од главните овозможувачи на нападот. Напаѓачот преку Log4j може да внесе LDAP url до сервер кој е во негова контрола и оттаму да испрати малициозен пакет.

Напаѓачот испраќа стринг со следната „форма“:

Log4j ќе се поврзе на example.com/ и оттаму ќе „повлече“ објект. Со оваа конфигурација на клучот без префикс, Log4j испраќа барање за објект.

Злоупотребата на пропустот е едноставна и сè што треба да направи напаѓачот е да пронајде податок кој се запишува во логот. Ова може да биде HTTP header како User-Agent или username параметар од форма.

Еден од поголемите проблеми е што со нападот може да се зафатат и системи кои не се на интернет, а се развиени во Java.

Каде е присутен пропустот

Со мала опасност да погрешиме, може да кажеме дека пропустот е присутен сегде. Дел од експертите предупредуваа дека Log4j е присутен во 80% од сериозните Java апликации и системи.

„Популарно е потценување! Aко [Log4j] e во помалку од 80% од сериозните Java апликации/системи, ќе бидам запрепастен“.

Колкав дел e Log4j од постоечките апликации покажуваат и неколку листи на кои се проценуваат опасностите за системи и апликации од Log4j. Зафатени се системи на куп компании од Apache, па се до Tesla и Steam. Веројатноста е дека ако некој дел од системот е изработен во Java целиот систем е подложен на пропустот.

Засега нема целосна листа на сервиси на кои е присутен пропустот, но одличен показател е листата на компании кои ги тестираат своите сервиси. Паралелно со оваа листа, на GitHub може да се пронајде и неофицијална листа на компании за кои постои доказ дека се зафатени со пропустот. Потврдата доаѓа од корисници кои „чепкале“ и пронашле дел од опасностите. На оваа листа се присутни компании како Steam, Twitter, Amazon, но и кинеските гиганти Tencent, JD и Baidu.

Како да проверите дали вашата апликација е подложна на напад

Вистинскиот предизвик за пачување на проблемот за најголем дел од креаторите на апликации е да пронајдат каде е „скриен“ Log4j. Во Java, „dependencies“се дистрибуираат како .JAR фајлови. Веројатноста дека Log4j е инсталиран како „dependency“ е голема, не само како примарно потребен .JAR, туку и како „dependency“ кој е потребен за друго „dependency“. Пронаоѓањето на фајлот може да биде поголем проблем од надминување на самиот проблем.

Syft и Grype се две софтверски алатки кои скенираат и пронаоѓаат .JAR и вгнездени .JAR фајлови. Syft генерира „software bill of materials“, a Grype е скенер на безбедносни пропусти. Двете алатки можат да пронајдат и да идентификуваат верзија на Log4j која е инсталирана, и со тоа да ја олеснат работата на безбедносните експерти, вели InfoWorld.

Што се дискутира на ИТ форум...Kоментари на статија (1)
Добивај известувања
Извести ме за
guest
3 Коментари
Најнови
Најстари Со највеќе гласови
Inline Feedbacks
View all comments
trackback

[…] безбедносните експерти.  За само неколку дена Apache издаде безбедносна надградба и се чинеше дека стравувањето веднаш по […]

види ги сите огласи на kariera.it.mk