Гость
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / log4j + slf4j + 2.16 / 13 сообщений из 13, страница 1 из 1
17.12.2021, 23:35
    #40121173
andreykaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
log4j + slf4j + 2.16
коллеги, вопрос

заюзана такая штука:

<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.21</version>
<scope>compile</scope>
</dependency>

под ней зарыт я так понимаю какой то лог4ж 1.2... версии. надо ли ее обновлять вообще? и если да то как?

быстрый гуглеж показал что надо взять что то такое

<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.16.0</version>
<scope>compile</scope>

но тут бяда. умники поназавязывались на модные классы старого лог4ж, которые в новом выпилили! скелетонАппендер и тп.

я правильно понимаю что тут печаль беда и надо это все переписывать под новый сдк?
...
Рейтинг: 0 / 0
17.12.2021, 23:44
    #40121175
andreykaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
log4j + slf4j + 2.16
хотя вроде сказано что 1.х можно забить если никто в конфиг не залезет и жмсаппендер рукой не пропишет.
...
Рейтинг: 0 / 0
17.12.2021, 23:44
    #40121176
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
log4j + slf4j + 2.16
У тебя в java коде что в виде логгера? import org.slf4j.Logger ?
...
Рейтинг: 0 / 0
18.12.2021, 00:59
    #40121177
andreykaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
log4j + slf4j + 2.16
mayton
У тебя в java коде что в виде логгера? import org.slf4j.Logger ?

везде понатыкана аннотация слф4ж от ломбока, я так понимаю она дает вот это вот:

private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);

но это не собссно сама проблема.
челы выпендрились и написали какой то перехватчик логгинга который вколотили во все тесты чтоб тестировать то что лог выводит.

лол.

это не особо проблема. проблема в том что они заюзали классы сдк которого в 2.16 уже нет.

пока нашел тут такое:
http://slf4j.org/log4shell.html

пишут что 1.х не требует и там инжект будет только если жмх-аппендер рукой в конфиге прописать. но имхо, если кто-то имеет не очень санкционированный доступ к конфигу на запись со своего приложения то тут уже не логгер виноват а кое-кто другой.

авторIs log4j 1.x vulnerable?
As log4j 1.x does NOT offer a JNDI look-up mechanism at the message level, it does NOT suffer from CVE-2021-44228.
Given that log4j version 1.x is still very widely deployed, perhaps 10 times more widely than log4j 2.x, we have been receiving a steady stream of questions regarding the vulnerability of log4j version 1.x.

As log4j 1.x does NOT offer a JNDI look up mechanism at the message level, it does NOT suffer from CVE-2021-44228.

However, log4j 1.x comes with JMSAppender which will perform a JNDI lookup if enabled in log4j's configuration file, i.e. log4j.properties or log4j.xml.
...
Рейтинг: 0 / 0
18.12.2021, 01:05
    #40121178
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
log4j + slf4j + 2.16
Тебе повезло. Ты используешь фасад. Он так и называется Simple Logging Facade

http://www.slf4j.org/manual.html

Если тебе не нужны специфичные аппендеры от log4j типа пишущих в сетевой сокет или в jdbc - то выбрось
вообще log4j адаптер и замени его на logback. Для обычных файловых операций его достаточно.

Вот как-то так у меня депенденси выглядят

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-classic</artifactId>
      <version>1.2.3</version>
    </dependency>

    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.7.30</version>
    </dependency>



И хакеры будут не страшны.
...
Рейтинг: 0 / 0
18.12.2021, 01:17
    #40121181
andreykaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
log4j + slf4j + 2.16
я же говорю там кастомный аппендер сделан на лог4ж для тестов. я его не могу выпилить. вернее могу при условии что я эту требуху перепишу.
...
Рейтинг: 0 / 0
18.12.2021, 01:22
    #40121182
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
log4j + slf4j + 2.16
Мда. Хреново. С тестами.
...
Рейтинг: 0 / 0
18.12.2021, 01:33
    #40121183
andreykaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
log4j + slf4j + 2.16
ну... ок. ты предлагаешь прыгнуть на логбак :) это слишком радикально для них.
с другой стороны.. если дока говорит что не ссать может не ссать? ну как и при каких обстоятельствах кто то может что то записать в конфиг? так тогда этот же чел может взять и прям в коде записать то что надо. это ж не системное администрироваие тут полная свобода
...
Рейтинг: 0 / 0
18.12.2021, 01:34
    #40121184
andreykaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
log4j + slf4j + 2.16
вот такая штука в тестах:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.log4j.Appender;
import org.apache.log4j.AppenderSkeleton;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.spi.LoggingEvent;
import org.junit.rules.TestRule;
import org.junit.runner.Description;
import org.junit.runners.model.Statement;
import org.slf4j.LoggerFactory;
import org.slf4j.impl.Log4jLoggerAdapter;
...
Рейтинг: 0 / 0
18.12.2021, 01:35
    #40121185
andreykaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
log4j + slf4j + 2.16
и вот аппендер скелетон это по ходу хрень мало того что напрямую с л4ж берется так еще и древняя как хобот мамонта
...
Рейтинг: 0 / 0
18.12.2021, 09:43
    #40121201
log4j + slf4j + 2.16
log4j - это log4j:log4j , а org.slf4j:slf4j-log4j12 - эта библиотека которая заставляет передавать управление от slf4j реализаций в log4j. Т.е. в первую очередь нужно будет обновлять log4j:log4j . А уже потом если надо, то и слой slf4j.

Но если ты про секьюрити уязвимость беспокоишься, то там же наоборот - не надо обновляться до хипстерского Log4j 2.х. В Log4j 1.x нет этой уязвимости (или она не включена).
...
Рейтинг: 0 / 0
19.12.2021, 16:51
    #40121389
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
log4j + slf4j + 2.16
Я думаю что Андрейке не надо делать ничего. Пускай сидит на log4j-1.2.xx
Так оно безопаснее и тесты работают. Тем более что у него хард-кодом забиты
имена пакетов org.apache.log4j.* и классов.
...
Рейтинг: 0 / 0
20.12.2021, 01:08
    #40121505
andreykaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
log4j + slf4j + 2.16
Stanislav Bashkyrtsev
log4j - это log4j:log4j , а org.slf4j:slf4j-log4j12 - эта библиотека которая заставляет передавать управление от slf4j реализаций в log4j. Т.е. в первую очередь нужно будет обновлять log4j:log4j . А уже потом если надо, то и слой slf4j.

Но если ты про секьюрити уязвимость беспокоишься, то там же наоборот - не надо обновляться до хипстерского Log4j 2.х. В Log4j 1.x нет этой уязвимости (или она не включена).

так да. я выше это и сказал что если жмхаппендер не вколотить в конфиг лог4ж то ничего и не будет. так сказано в оф.ресурсе.
но тиииипаааа ееееесли вписать это слово в конфиг то твой код перестает быть безопасным (три раза хахахаха).

я вот и не втыкаю при каких условиях можно изменить конфиг и не будет ли это первопричиной того что у тебя в целом система дырявая если несанкционировано кто то может в ней конфиги менять.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / log4j + slf4j + 2.16 / 13 сообщений из 13, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]