LINUX.ORG.RU
ФорумTalks

systemd опять не виноват (Успешная подмена пакетов)

 ,


1

2

«Успешная подмена пакетов продемонстрирована для туннелей, создаваемых при помощи OpenVPN, WireGuard и IKEv2/IPSec. Для IPv4 атака возможна в случае перевода rp_filter в режим „Loose“ (sysctl net.ipv4.conf.all.rp_filter = 2). Изначально в большинстве систем применялся режим „Strict“, но начиная с systemd 240 режим работы по умолчанию был заменён на „Loose“ и данное изменение отразилось в настройках по умолчанию многих дистрибутивов Linux.»

http://www.opennet.ru/opennews/art.shtml?num=51986

«И вот просыпаешься ты с утра — у тебя масса свершений запланирована на день, тебе тут создавать систему вселенского масштаба или, например, в космос лететь — а у тебя молния на штанах расстёгивается не сверху вниз, как ты привык, а снизу вверх.»

Выпуск systemd 244 (комментарий)

из release notes:

The "net.ipv4.conf.all.rp_filter" sysctl will now be set to 2 by 
          default. This effectively switches the RFC3704 Reverse Path
          filtering from Strict mode to Loose mode. 
          This is more appropriate for hosts that have multiple links with 
          routes to the same networks (e.g. a client with a Wi-Fi and Ethernet 
          both connected to the internet).

★★★★★

Последнее исправление: crypt (всего исправлений: 3)
Ответ на: комментарий от Darth_Revan

Видимо, никто не пытался. Там используется хитрая TCP-магия для определения параметров соединения, с IPv6 может и не сработать.

morse ★★★★★
()
Ответ на: комментарий от morse

However, we recently discovered that the attack also works against IPv6, so turning reverse path filtering on isn’t a reasonable solution, but this was how we discovered that the attack worked on Linux.

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

«И вот просыпаешься ты с утра — у тебя масса свершений запланирована на день, тебе тут создавать систему вселенского масштаба или, например, в космос лететь — а у тебя молния на штанах расстёгивается не сверху вниз, как ты привык, а снизу вверх.»

Выпуск systemd 244 (комментарий)

aka «я недавно обновил свой дистрибутив и ...»

crypt ★★★★★
() автор топика
Последнее исправление: crypt (всего исправлений: 1)
Ответ на: комментарий от crypt

молния на штанах расстёгивается не сверху вниз, как ты привык, а снизу вверх.

Неудачная аналогия. Как раз молния снизу вверх непривычна, стоит дороже, но не склонна самопроизвольно расстёгиваться :) А здесь, наоборот, systemd включил более простой и удобный режим, который оказался дырявым.

question4 ★★★★★
()
Ответ на: комментарий от question4

не склонна самопроизвольно расстёгиваться

если по умолчанию действует только сила тяжести то ты прав, но...

crypt ★★★★★
() автор топика

«И вот просыпаешься ты с утра — у тебя масса свершений запланирована на день, тебе тут создавать систему вселенского масштаба или, например, в космос лететь — а у тебя молния на штанах расстёгивается не сверху вниз, как ты привык, а снизу вверх.»

Считаю день потерянным, если минимум три раза не вызвал sysctl

GOMO88
()
Ответ на: комментарий от crypt

Обычно давление изнутри максимально в районе поясницы. То есть обе основные силы работают на закрывание. Вот так и должна выглядеть хорошая система безопасности — чтобы самопроизвольно закрывалась при отсутствии действий со стороны пользователя.

question4 ★★★★★
()

Читаем первоисточник:

**Operating Systems Affected:

Here is a list of the operating systems we have tested which are
vulnerable to this attack:

...

Devuan (sysV init)
MX Linux 19 (Mepis+antiX)
Void Linux (runit)

Slackware 14.2 (rc.d) 
...

systemd такой плохой, что умудрился сломать даже те системы, где он не используется!11

А вообще, значение по умолчанию rp_filter в ядре - 0, т.е. «выключено» - и именно это значение используется по умолчанию в не использующих systemd дистрибутивах. systemd ранее устанавливал его в 1 («strict»), и только недавно стал устанавливать его в 2 («loose»). Так что если с systemd - это «с расстёгнутой ширинкой», то с sysvinit тогда - это со спущенными штанами.

Rootlexx ★★★★★
()
Ответ на: комментарий от Rootlexx

то с sysvinit тогда - это со спущенными штанами

ЭТО ДРУГОЕ

Deleted
()
Ответ на: комментарий от Rootlexx

так я и сказал: «не виноват») просто меняет дефолтное поведение, когда захочется.

crypt ★★★★★
() автор топика
Ответ на: комментарий от question4

Обычно давление изнутри максимально в районе поясницы.

у тебя член тоже в районе поясницы? не надо недооценивать пользователей.)

crypt ★★★★★
() автор топика
Ответ на: комментарий от crypt

Нормально спроектированные мужские штаны в районе члена существенно шире, чем в поясе.

question4 ★★★★★
()
Ответ на: комментарий от crypt

так я и сказал: «не виноват»)

Вы ещё скажите, что «systemd опять не виноват» от вас это был не сарказм.

просто меняет дефолтное поведение, когда захочется

В вашем же сообщении прекрасно разъяснено, почему это было сделано. Имеете аргументированные технические претензии к этому?

Rootlexx ★★★★★
()

Проблема затрагивает Linux, FreeBSD, OpenBSD, Android, macOS, iOS и другие Unix-подобные системы.

Ох уж этот Ленька, везде дотянулся

Polugnom ★★★★★
()

Ниразу не понял причем тут systemd? Кто-то очередной раз открыл америку и назвал это уязвимостью?

anc ★★★★★
()
Ответ на: комментарий от anc

Ну сами-то они в /etc/sysctl.conf вписать
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.rp_filter = 1
не умеют. Вот и клянут всех вокруг, ну кроме себя разумеется.
Виндузятники, что с них взять. Умеют только на дефолтах сидеть.
Своей головы-то нет.

imul ★★★★★
()
Ответ на: комментарий от anc

Это ни при чём. А что именно это? Не было бы systemd то сидели бы на ядерном дефолте и были счастливы. Причём здесь только знание матчасти. Нет? Выразите мысль точнее. Что именно это здесь ни причём?

imul ★★★★★
()
Ответ на: комментарий от imul

FW никто не отменял в независимости от значений rp_filter. А если кто-то положил мпх на fw это только исключительно его половые проблемы. А считать что ненуждод тут каким-то образом виноват, глупо. Любой дистр мог поменять значение по умолчанию.

anc ★★★★★
()
Последнее исправление: anc (всего исправлений: 1)
Ответ на: комментарий от imul

Ну сами-то они в /etc/sysctl.conf вписать
Виндузятники, что с них взять. Умеют только на дефолтах сидеть.
Своей головы-то нет.

systemd не использует /etc/sysctl.conf, специалист хренов. ты сам только что облажался на ровном месте.

crypt ★★★★★
() автор топика
Ответ на: комментарий от anc

Любой дистр мог поменять значение по умолчанию.

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

crypt ★★★★★
() автор топика
Ответ на: комментарий от Rootlexx

и именно это значение используется по умолчанию в не использующих systemd дистрибутивах.

это неверно. там оно задается дефолтными настройками в /etc/sysctl.conf. именно это («strict») я вижу в старых дистрибутивах с массовой user base. что там в диван-линукс и прочих меньшиствах я хз.

systemd такой плохой, что умудрился сломать даже те системы, где он не используется!11

как я сказал, см. выше

ранее устанавливал его в 1 («strict»), и только недавно стал устанавливать его в 2 («loose»).

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

crypt ★★★★★
() автор топика
Ответ на: комментарий от crypt

пример в студию, где какой-то дистрибутив изменил параметры на менее безопасные.

Что есть «безопасные» ? Вы топик читали? там никакого «ракетостроительства», все тупо и злобно. Если у вас руки растут из нужного места, то все это не страшно, чего бы не было по умолчанию 0-1-2.

anc ★★★★★
()
Ответ на: комментарий от anc

безопасные в данном случае «strict». это не только вопрос рук. есть системы, где настройки явно заданы админом, а есть нет. хорошо, допустим речь не systemd, а мы просто ставим какой-то софт в систему, который меняет дефолтные настройки на менее строгие (установка от рута). это ок?

crypt ★★★★★
() автор топика
Ответ на: комментарий от crypt

а мы просто ставим какой-то софт в систему, который меняет дефолтные настройки на менее строгие (установка от рута). это ок?

Что значит меняет? При этом от рута. Вы так и не поняли? Если у вас норм настроен fw то в принципе пофигу 0-1-2

anc ★★★★★
()
Ответ на: комментарий от crypt

1. И что? Третий раз писать «Если у вас норм настроен fw то в принципе пофигу 0-1-2»
2. Google Chrome - если приложуха будет менять ядрючие параметры. То видимо пора съезжать с такого дистра.
С таким же успехом можно говорить про то что: «опаньки» я запустил «патч бармина»

anc ★★★★★
()
Последнее исправление: anc (всего исправлений: 1)
Ответ на: комментарий от anc

Ну вот ставишь ты Google Chrome. А он раааз и поменял настройки rp_filter. Это ок? Нет, это не ок, потому что Google Chrome может добавить свой репозиторий для дальнейших обновлений, но менять поведение сетевого стека он не должен. Вопрос, почему это должна делать система инициализации? Ты ведь, кажется, сам пишешь, что это должно быть в рамках настроек файрвола. Так это сделано в OpenBSD/FreeBSD, где reverse path forwarding не настраивается через sysctl. Так это сделано в старых убунту, где переменная sysctl инициализируется из скриптов фильтрации трафика. Так эту переменную выставляю я в своих скриптах.

если кто-то положил мпх на fw это только исключительно его половые проблемы

Вот systemd и положил большой болт.

если приложуха будет менять ядрючие параметры. То видимо пора съезжать с такого дистра.

А вот прикинь, systemd - это «приложуха», которая их меняет. Причем в зависимости от релиза.

crypt ★★★★★
() автор топика
Ответ на: комментарий от crypt

Ну вот ставишь ты Google Chrome. А он раааз и поменял настройки rp_filter.

Это приложуха.
Вы также можете написать вариант «Ну вот ставишь ты Google Chrome» и он выполняет

iptables -F
iptables -F -t nat
iptables -F -t mangle
iptables -F -t raw
iptables -X
iptables -X -t nat
iptables -X -t mangle
iptables -X -t raw
ipset -X

Если «мальчик дибил» то это исключительно его проблема, а не уязвимость. Если «мальчик» сует пальчики в розетку, это разве уязвимость со стороны горэнерго?

anc ★★★★★
()
Ответ на: комментарий от anc

ты на вопрос не ответил. почему GC нельзя, а systemd можно. вобще прочитай сначала, что я написал до конца.

crypt ★★★★★
() автор топика
Последнее исправление: crypt (всего исправлений: 1)
Ответ на: комментарий от anc

это не определение, а каша. давай постараемся дать четкое определение и посмотрим, что из этого будет следовать.

crypt ★★★★★
() автор топика
Ответ на: комментарий от crypt

Нет. У них изначально дырявый дефолт. Только ни они, ни разрабы systemd не могли предполагать о существовании такой проблемы, так что никто из них в возникновении уязвимости не виноват.

Polugnom ★★★★★
()
Ответ на: комментарий от crypt

Окэ, давайте посмотрим на init точнее на PID 1 хто у нас и зачем после «разборки» ведра+initrams пускается? И кто у нас рулит?

anc ★★★★★
()
Ответ на: комментарий от crypt

systemd не использует /etc/sysctl.conf, специалист хренов.

Где я написал, что systemd использует /etc/sysctl.conf?
И почему ты думаешь, что из /etc/sysctl.conf настройки не применяются?
# sysctl net.ipv4.conf.all.rp_filter net.ipv4.conf.default.rp_filter
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
# systemctl --version
systemd 244 (244)
+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK -SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN2 -IDN +PCRE2 default-hierarchy=hybrid
Ты б поменьше тявкал, лалка анскильная

ты сам только что облажался на ровном месте.

Ты в этом уверен?

imul ★★★★★
()
Ответ на: комментарий от Polugnom

Нет

вот именно. одна из причин появления дыр как раз и состоит в отсутствии стабильного поведения. есть некоторое привычное поведение системы. если оно менее «strict», но является дефолтом много лет - это более надежно. выше в этом треде дорогой imul лоханулся самым картинным образом. он ожидал, что настройки будут в одном месте, в то время, как systemd уже переложила их в другое место. причем за время своей жизни, они уже дважды меняли правила чтения sysctl. это приводит к ошибкам.

crypt ★★★★★
() автор топика
Ответ на: комментарий от anc

Любой дистр мог поменять значение по умолчанию.

Значение по умолчанию потому и называется так. Надеяться на то, что дядя выставит всё именно так, как надо тебе очень глупо. Разве кто-то запрещает значение по умолчанию перекрыть своими настройками? Собственно об этом я и писал. Хотя вон у «специалистов» иное мнение.

imul ★★★★★
()
Ответ на: комментарий от imul

Ты в этом уверен?

да, уверен, потому что читаю документацию.

From version 207 and 21x, systemd only applies settings from 

/etc/sysctl.d/*.conf and /usr/lib/sysctl.d/*.conf. If you had customized 

/etc/sysctl.conf, you need to rename it as /etc/sysctl.d/99-sysctl.conf. If you 

had e.g. /etc/sysctl.d/foo, you need to rename it to /etc/sysctl.d/foo.conf.

Ты б поменьше тявкал, лалка анскильная

ок, оказался не прав, не можешь сохранить достоинство, отправляю в игнор. обычная история.

crypt ★★★★★
() автор топика
Последнее исправление: crypt (всего исправлений: 1)
Ответ на: комментарий от crypt

Я смотрю вы так и не поняли насчет 0-1-2 Например если «внезапно» вместо 0 стало 2 или 1 это возможно станет проблемой при multihome. Но если у вас настроен fw, то к безопастности это никакого отношения не имеет.
Это будет проблемой вида «как мне вернуть 0, а то у меня тут внезапно 2 появилось и немного не работает». Не более того.

anc ★★★★★
()
Ответ на: комментарий от anc

ты вообще знаешь, что значит слово «определение»? это не «давайте посмотрим», а «я считаю, что система инициализации - это...»

crypt ★★★★★
() автор топика
Ответ на: комментарий от crypt

да, уверен, потому что читаю документацию.

Читать мало, надо ещё понимать что в документации написано.

ок, оказался не прав,

Держи ещё

~ # strace /usr/lib/systemd/systemd-sysctl --cat-config 2>&1 | grep «/etc/sysctl»
openat(AT_FDCWD, «/etc/sysctl.d», O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 4
openat(AT_FDCWD, «/etc/sysctl.d/00_overcommit.conf», O_RDONLY|O_CLOEXEC) = 4
write(1, «# /etc/sysctl.d/00_overcommit.co»..., 35# /etc/sysctl.d/00_overcommit.conf
openat(AT_FDCWD, «/etc/sysctl.d/01_ipforward.conf», O_RDONLY|O_CLOEXEC) = 4
# /etc/sysctl.d/01_ipforward.conf
openat(AT_FDCWD, «/etc/sysctl.d/02_perf_event_paranoid.conf», O_RDONLY|O_CLOEXEC) = 4
# /etc/sysctl.d/02_perf_event_paranoid.conf
openat(AT_FDCWD, «/etc/sysctl.d/03_wm_swapiness.conf», O_RDONLY|O_CLOEXEC) = 4
# /etc/sysctl.d/03_wm_swapiness.conf
openat(AT_FDCWD, «/etc/sysctl.d/04_oom.conf», O_RDONLY|O_CLOEXEC) = 4
# /etc/sysctl.d/04_oom.conf
# (e.g. /etc/sysctl.d/90-override.conf), and put any assignments
openat(AT_FDCWD, «/etc/sysctl.d/60-dirty.conf», O_RDONLY|O_CLOEXEC) = 4
# (e.g. /etc/sysctl.d/90-override.conf), and put any assignments
# /etc/sysctl.d/60-dirty.conf
openat(AT_FDCWD, «/etc/sysctl.d/99-sysctl.conf», O_RDONLY|O_CLOEXEC) = 4
# /etc/sysctl.d/99-sysctl.conf
read(4, «# /etc/sysctl.conf\n#\n# For more »..., 2048) = 1788
openat(AT_FDCWD, «/etc/sysctl.d/anticensorship.conf», O_RDONLY|O_CLOEXEC) = 4
write(1, «# .c/etc/sysctlonf\n#\n# For more »..., 1825# /etc/sysctl.conf
# /etc/sysctl.d/anticensorship.conf
openat(AT_FDCWD, «/etc/sysctl.d/max_user_watches.conf», O_RDONLY|O_CLOEXEC) = 4
# /etc/sysctl.d/max_user_watches.conf
openat(AT_FDCWD, «/etc/sysctl.d/perf_event_max_sample_rate.conf», O_RDONLY|O_CLOEXEC) = 4
# /etc/sysctl.d/perf_event_max_sample_rate.conf

read(4, «# /etc/sysctl.conf надеюсь в выхлопе увидишь?

не можешь сохранить достоинство, отправляю в игнор.

А ты стало быть, не проверив, называешь меня „специалист хренов“ совершенно не рефлексируя. И это никак не роняет твоего достоинства? Наверное нельзя уронить то, чего нет.

отправляю в игнор

Это честь для меня, когда меня такие как ты в игнор отправляют в столь истеричной форме. Давай, до свидания. А я лишь в очередной раз убедился, что хейтеры матчасть не знают.

imul ★★★★★
()
Ответ на: комментарий от imul

read(4, «# /etc/sysctl.conf надеюсь в выхлопе увидишь?

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

специалист хренов

угу. иначе бы ты, наверное, в исходниках смог это показать=)

https://github.com/systemd/systemd/blob/master/src/sysctl/sysctl.c

истеричной форме

«Виндузятники, что с них взять. Умеют только на дефолтах сидеть. Своей головы-то нет.»

чья бы корова мычала)

crypt ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.