The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Локальная DoS-уязвимость в systemd, opennews (??), 29-Сен-16, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


58. "Локальная DoS-уязвимость в systemd"  +3 +/
Сообщение от Аноним (-), 30-Сен-16, 11:21 
лол, пилить болгаркой стремянку, на которой стоишь, тоже можно... а потом после ампутации половины конечностей повторять твою фразу...

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

Ответить | Правка | К родителю #41 | Наверх | Cообщить модератору

71. "Локальная DoS-уязвимость в systemd"  –2 +/
Сообщение от anomymous (?), 30-Сен-16, 20:15 
Ну да, править кастомно 100500 скриптов от 100500 криворуких мейнтейнеров потому, что они делают что-то не так, как положено - куда лучше.
Ответить | Правка | Наверх | Cообщить модератору

75. "Локальная DoS-уязвимость в systemd"  –2 +/
Сообщение от Аноним (-), 30-Сен-16, 20:25 
> лол, пилить болгаркой стремянку, на которой стоишь, тоже можно...

Поэтому фанаты sysv init утверждают что болгарки и стремянки не требуются. Максимум ручная дрель.

Ответить | Правка | К родителю #58 | Наверх | Cообщить модератору

79. "Локальная DoS-уязвимость в systemd"  +2 +/
Сообщение от Vkni (ok), 30-Сен-16, 21:07 
> Поэтому фанаты sysv init утверждают что болгарки и стремянки не требуются. Максимум
> ручная дрель.

Язык Цэ, на котором написана система systemD - это и есть ручная дрель по сравнению с sysVinit'овским sh'ем.

Ответить | Правка | Наверх | Cообщить модератору

84. "Локальная DoS-уязвимость в systemd"  –3 +/
Сообщение от Анонми (?), 30-Сен-16, 22:45 
> Язык Цэ, на котором написана система systemD - это и есть ручная
> дрель по сравнению с sysVinit'овским sh'ем.

Пока не попробуешь им namespace переключить, попутно расставляя лимиты и переключая планировщики, попутно прописывая лимиты SECCOMP. Вот тут берешь ты sh и ощущаешь себя с ручной дрелью около бетонной стены. А системд - обычный перфоратор среднего пошиба. Да, чинить его сложнее чем ручную дрель. Но и может он намного больше.

Ответить | Правка | Наверх | Cообщить модератору

86. "Локальная DoS-уязвимость в systemd"  +3 +/
Сообщение от Vkni (ok), 01-Окт-16, 00:00 
У вас функциональная неграмотность: я писал про языки Цэ и sh, а вы возражаете, рассказывая про системы инициализации.
Ответить | Правка | Наверх | Cообщить модератору

92. "Локальная DoS-уязвимость в systemd"  +/
Сообщение от freehckemail (ok), 01-Окт-16, 09:47 
Ну и нахрена вам всё это?

> namespace переключить

Ну и что вам такого дали эти ваши namespace-ы? Улучшенная статистика? О, это да. Статистика - это ведь круто. "Типа контейнеризация, типа безопасность"? Да нет вроде. "Возможность управлять всеми процессами разом"? Блин, ну так для того всегда были pgid и sid у каждого процесса. Вы о них хотя бы слышали, оналитеги хреновы?

> расставляя лимиты

О да, ulimit-а вам почему-то не хватило.

> ... переключая планировщики ...

Планировщики по 10 раз на дню переключать. Ага. Зачем?! Кому такое в голову взбрело, что за больное воображение? Кроме вас, системдэ-шников, так *никто* не делает.

> ... лимиты SECCOMP ...

"Запихнём всё в контейнеры во имя добра"?

Как же блин раньше-то люди жили без этих песочниц-то? Пихали процесс в chroot и горя не знали. И то - при крайней необходимости, и только.

Ответить | Правка | К родителю #84 | Наверх | Cообщить модератору

95. "Локальная DoS-уязвимость в systemd"  +/
Сообщение от Michael Shigorinemail (ok), 01-Окт-16, 11:37 
>> расставляя лимиты
> О да, ulimit-а вам почему-то не хватило.

Он скорее о том, что ulimit из инитскриптов в "обычных дистрибутивах" штатно не дёргается, т.е. придавить получится лишь с точностью до псевдопользователя в тех случаях, когда на них вообще переключаются.  Дистрибутивно решается крайне компактной шелльной библиотекой (ссылка в #93) и точечными добавлениями в собственно пакетах с сервисами.

Ответить | Правка | Наверх | Cообщить модератору

96. "Локальная DoS-уязвимость в systemd"  +2 +/
Сообщение от freehckemail (ok), 01-Окт-16, 17:33 
>>> расставляя лимиты
>> О да, ulimit-а вам почему-то не хватило.
> Он скорее о том, что ulimit из инитскриптов в "обычных дистрибутивах" штатно
> не дёргается

Да я, Миш, собственно о том и говорю, что они ставят в заслугу своей любимой поделочке такие вещи, потому что они там есть "из коробки". Но при этом как-то закрываются глаза на то, что:
1) такие штуки можно при желании и к sysvinit приделать,
2) это не делается в "обычных дистрибутивах", потому что в 99% случаев это нафиг не нужно.

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

Ага. И обычно в оставшемся 1% случаев именно так и делается.

> Дистрибутивно решается крайне компактной шелльной библиотекой (ссылка в #93) и точечными добавлениями в собственно пакетах с сервисами.

Даже не сомневался, что сущесвует. Вообще, у вас там в Альте со скриптами всё хорошо. У вас там Левин есть. Я с ним не знаком, но читал его скрипты, когда gears изучал на досуге. Они клёвые.

Ответить | Правка | Наверх | Cообщить модератору

98. "Локальная DoS-уязвимость в systemd"  –2 +/
Сообщение от Vkni (ok), 01-Окт-16, 18:14 
> Даже не сомневался, что сущесвует. Вообще, у вас там в Альте со
> скриптами всё хорошо. У вас там Левин есть. Я с ним
> не знаком, но читал его скрипты, когда gears изучал на досуге.
> Они клёвые.

Реально, если есть проблемы со скриптами, то нужно просто переходить на какой-нибудь более-менее типизированный язык с sh'а. Т.е. вполне можно взять и переписать sysVinit скрипты с sh на тот же Ocaml. Они, конечно, распухнут, но ошибок будет меньше. Хотя, конечно, это явно не идеальный выбор языка - желательно всё-таки написать лёгкую типизированную замену sh.

Но архитектура-то всё равно будет не systemDшная (кубик-рубик-монолит), а sysVinit'овская - лёгкое ядро + скриптовая обвязка.

Ответить | Правка | Наверх | Cообщить модератору

99. "Локальная DoS-уязвимость в systemd"  +/
Сообщение от freehckemail (ok), 01-Окт-16, 19:58 
> Реально, если есть проблемы со скриптами, то нужно просто переходить на какой-нибудь
> более-менее типизированный язык с sh'а. Т.е. вполне можно взять и переписать
> sysVinit скрипты с sh на тот же Ocaml. Они, конечно, распухнут,
> но ошибок будет меньше. Хотя, конечно, это явно не идеальный выбор
> языка - желательно всё-таки написать лёгкую типизированную замену sh.

Кстати, очень интересная мысль. Предлагаю обсудить в почте. vkni@altlinux.org, не ошибаюсь?
У меня есть некоторый опыт разработки DSL на Ocaml. Давайте обсудим и скооперируемся. Я бы поигрался с подобным проектом. Сейчас болею, но завтра-послезавтра буду в адеквате.

Для начала обсудим, что за проблемы со скриптами, и как подобные проблемы sysvinit решены в других инитах. Я лично с проблемами в скриптах не сталкивался (стабильный дебиан всё-таки), поэтому мне трудно судить, чего именно не хватает.

> Но архитектура-то всё равно будет не systemDшная (кубик-рубик-монолит), а sysVinit'овская
> - лёгкое ядро + скриптовая обвязка.

И это хорошо.

Ответить | Правка | Наверх | Cообщить модератору

101. "Локальная DoS-уязвимость в systemd"  +/
Сообщение от Vkni (ok), 01-Окт-16, 22:48 
> У меня есть некоторый опыт разработки DSL на Ocaml.

У меня тоже есть, но толку-то? Основная проблема с заменой sh - это то, что нужно хорошо поставить задачу, описать этот самый язык. А интерпретатор много кто может написать.

Я много раз это обсуждал - решительно непонятно, что конкретно нужно делать с типами. Т.е. с одной стороны, скриптовый движок должен быть типизирован (т.к. bash уже есть), с другой стороны, нужна поддержка grep/sed - т.е. операций над строковыми данными. Нужно, чтобы скрипт мог без выпадения обрабатывать потоки данных с ошибками.

Вот что в bash'е круто:

1) Работа со файловыми именами без кавычек. Ну и вообще минимум кавычек.
2) Ленивость конвееров как Хаскелле, позволяет обрабатывать не влезающие в ОЗУ объёмы данных потоковым образом.
3) Распараллеливаемость всего и всея - программы, входящие в конвеер работают параллельно.

> Для начала обсудим, что за проблемы со скриптами, и как подобные проблемы
> sysvinit решены в других инитах. Я лично с проблемами в скриптах
> не сталкивался (стабильный дебиан всё-таки), поэтому мне трудно судить, чего именно
> не хватает.

Инит скрипты уже более-менее вылизаны. Ну, а что плохо - if'ы, передача параметров скриптам, передача кодов ошибок и т.д.

Ответить | Правка | Наверх | Cообщить модератору

103. "Локальная DoS-уязвимость в systemd"  –1 +/
Сообщение от freehckemail (ok), 02-Окт-16, 15:57 
>> У меня есть некоторый опыт разработки DSL на Ocaml.
> У меня тоже есть, но толку-то? Основная проблема с заменой sh -
> это то, что нужно хорошо поставить задачу, описать этот самый язык.
> А интерпретатор много кто может написать.
> Я много раз это обсуждал - решительно непонятно, что конкретно нужно делать
> с типами. Т.е. с одной стороны, скриптовый движок должен быть типизирован
> (т.к. bash уже есть), с другой стороны, нужна поддержка grep/sed -
> т.е. операций над строковыми данными. Нужно, чтобы скрипт мог без выпадения
> обрабатывать потоки данных с ошибками.

Вот мне тоже не понятно, куда там типизацию втыкать. Основное применение shell - это вызов внешних команд. А их коды возврата - это обычно int. И где мы там типизацию втыкать собрались...

Нужна ли поддержка grep/sed в самом языке - это конечно вопрос интересный. Чтобы как в perl не ставить лишнюю экранировку - может быть, было бы удобно. Но возможно легче было бы в bash привнести что-то вроде двойных-тройных кавычек для этого дела?

Но вот если Вы предлагаете регэкспы компилировать языком, то я считаю это однозначно плохой вещью. Пусть уж лучше sed разбирает строку, которую мы ему передали и сигналит об ошибке кодом возврата, как и раньше.

Потом, начнём мы типы вводить. Какие мы сможем ввести-то? И для чего? Я смекаю, что только для определяемых функций. У нас будет тип exit_code, который будет либо Ok, когда программа вернула нуль, и Error of int, когда программа вернула не нуль. У нас будут преобразования exit_code в bool и в int. Надо поработать со строками обязательно. Где мы сможем использовать типизацию? Пожалуй, только в функциях, которые мы определяем в самом языке. Повсеместно будут требоваться преобразования кода возврата во что-нибудь. Для каждого действия со внешними командами придётся писать типизированную обёртку. Скрипты довольно-таки разрастутся.

Если на то пошло, у меня похоже получается один-в-один Ocaml, который дёргает внешние команды. Но сам Ocaml использовать нельзя, потому что у него слишком большой рантайм. Нам нужно что-нибудь легковесное, что уместится килобайт в 20 против 170кб для hello_world для Ocaml.

> Вот что в bash'е круто:
> 1) Работа со файловыми именами без кавычек. Ну и вообще минимум кавычек.

В большинстве случаев всё равно оборачиваю в кавычки всё, с чем работаю, чтобы в случае наличия пробелов трактовалось как один параметр.

> 2) Ленивость конвееров как Хаскелле, позволяет обрабатывать не влезающие в ОЗУ объёмы
> данных потоковым образом.

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

> 3) Распараллеливаемость всего и всея - программы, входящие в конвеер работают параллельно.

Аналогично п.2

>> Для начала обсудим, что за проблемы со скриптами, и как подобные проблемы
>> sysvinit решены в других инитах. Я лично с проблемами в скриптах
>> не сталкивался (стабильный дебиан всё-таки), поэтому мне трудно судить, чего именно
>> не хватает.
> Инит скрипты уже более-менее вылизаны. Ну, а что плохо - if'ы, передача
> параметров скриптам, передача кодов ошибок и т.д.

А что там с if-ами? Не соображу никак. Если есть желание cond, так elsif в принципе та же фигня. Да и case в наличии.

Передача параметров - возможно. В принципе аналоги labeled & optional parameters для скриптов можно было бы обязательным предварительным getopt-разбором. Хотя если честно, мне понравилось, как параметры разбираются в zsh. Получается примерно так:

zparseopts -a opts \
           v+ -version \
           d -debug \
           h -help -usage \
           s:=server -server:=server \
           -src:=source -source:=source \
           -dst:=destination -destination:=destination \
           p:=project -project=project \
           a:=action -action:=action \
           u:=user -user:=user

Ответить | Правка | Наверх | Cообщить модератору

100. "Локальная DoS-уязвимость в systemd"  +/
Сообщение от Michael Shigorinemail (ok), 01-Окт-16, 22:39 
> У вас там Левин есть. Я с ним не знаком

Вообще это несложно поправить -- на конторе всё так же вечерами водится чай, а завтра до обеда мы вообще в Калуге на #ossdevconf (ещё можно в Переславль где-нить к концу января готовиться с докладом по образовательной тематике или просто так).  Ну, на всякий :)

PS: коллеги, а может, учиним при случае опеннетовку, чтоб хоть кто где неподалёку живёт -- в лицо друг дружку знать?..

Ответить | Правка | К родителю #96 | Наверх | Cообщить модератору

102. "Локальная DoS-уязвимость в systemd"  +/
Сообщение от freehckemail (ok), 02-Окт-16, 15:25 
>> У вас там Левин есть. Я с ним не знаком
> Вообще это несложно поправить -- на конторе всё так же вечерами водится чай,

А контора-то где?

> ещё можно в Переславль где-нить к концу января готовиться с докладом
> по образовательной тематике или просто так.

Посмотрел. Мне 4 часа ходу до Переславля. Можно попробовать. Хотя Москва была бы удобнее. Я не очень хороший водитель пока - 4 часа за рулём мне пока тяжело. :)

> PS: коллеги, а может, учиним при случае опеннетовку, чтоб хоть кто где
> неподалёку живёт -- в лицо друг дружку знать?..

Очень за. Заодно может ключи друг другу подпишем (если кто пользуется gpg)?

Ответить | Правка | Наверх | Cообщить модератору

105. "Локальная DoS-уязвимость в systemd"  +/
Сообщение от Michael Shigorinemail (ok), 03-Окт-16, 15:10 
>>> У вас там Левин есть. Я с ним не знаком
>> Вообще это несложно поправить -- на конторе всё так же вечерами водится чай,
> А контора-то где?

На Дмитровской, см. basealt.ru.

> Посмотрел. Мне 4 часа ходу до Переславля. Можно попробовать. Хотя Москва была
> бы удобнее. Я не очень хороший водитель пока - 4 часа за рулём мне пока тяжело. :)

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

>> PS: коллеги, а может, учиним при случае опеннетовку, чтоб хоть кто где
>> неподалёку живёт -- в лицо друг дружку знать?..
> Очень за. Заодно может ключи друг другу подпишем (если кто пользуется gpg)?

Тоже вариант, если кому надо.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру