The OpenNET Project / Index page

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

В OpenSSH код аутентификации вынесен в отдельный процесс sshd-auth

15.10.2024 17:32

Разработчики OpenSSH продолжили разделение sshd на несколько отдельных исполняемых файлов. На реализованном в мае первом этапе разделения из sshd в отдельный процесс sshd-session были вынесены функции, связанные с обработкой сеансов, а в sshd оставлена лишь функциональность, необходимая для приёма нового сетевого соединения и запуска sshd-session для каждого нового сеанса. Вчера в кодовую базу OpenSSH было внесено изменение, добавляющее ещё один процесс - sshd-auth, в который из sshd-session перенесён код, выполняющий аутентификацию.

Процесс sshd-auth запускается из sshd-session и позволяет дополнительно изолировать связанные с аутентификацией данные в адресном пространстве отдельного процесса, что не даст получить доступ к этим данным в памяти в случае проведения атак на код, используемый для обработки стадий соединения до завершения аутентификации. Кроме того, изменение немного снизит потребление памяти, так как связанный с аутентификацией код теперь присутствует в памяти только в момент проведения аутентификации, а затем выгружается при завершении процесса sshd-auth.

По аналогии с sshd, sshd-session и ssh-agent для процесса sshd-auth применена операция случайной перекомпоновки исполняемого файла во время каждой загрузки операционной системы. Случайная перекомпоновка делает плохо предсказуемым смещения функций в исполняемых файлах и библиотеках, что затрудняет создание эксплоитов, использующих методы возвратно-ориентированного программирования (ROP - Return-Oriented Programming). При использовании техники ROP атакующий не пытается разместить свой код в памяти, а оперирует уже имеющимися кусками машинных инструкций, завершающихся инструкцией возврата управления (как правило, это окончания функций). Работа эксплоита сводится к построению цепочки вызовов подобных блоков ("гаджетов") для получения нужной функциональности.

  1. Главная ссылка к новости (https://undeadly.org/cgi?actio...)
  2. OpenNews: Релиз OpenSSH 9.9 с поддержкой алгоритма постквантового шифрования ML-KEM
  3. OpenNews: Релиз OpenSSH 9.8 с отключением алгоритма DSA и дополнительными механизмами защиты
  4. OpenNews: Уязвимость в OpenSSH, позволяющая удалённо выполнить код с правами root на серверах с Glibc
  5. OpenNews: В OpenSSH добавлена встроенная защита от атак по подбору паролей
  6. OpenNews: Проект OpenSSH разделяет sshd на несколько исполняемых файлов
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/62052-ssh
Ключевые слова: ssh, openssh
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (63) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, qweo (?), 17:45, 15/10/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    Ещё немного, и повторят архитектуру inetd и иже с ним :-)
    Молодцы, на самом деле!
     
     
  • 2.9, Аноним (9), 18:28, 15/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Кстати, очень  хоршая штука. Недавно работал только xinetd. Опция запуска с учетом времени суток вообще киллерфича.
     
  • 2.53, Соль земли (?), 09:57, 16/10/2024 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Скорее postfix.
     
  • 2.68, Аноним (-), 09:34, 18/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Ещё немного, и повторят архитектуру inetd и иже с ним :-)

    Больше на системд похоже. Тоже стало летающим спагетти с кучей wtfd, огромным кодом, и - довольно паршивой безопасностью протокола.

     

  • 1.2, Аноним (2), 17:47, 15/10/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –7 +/
    Здорово, ещё один левый процесс...
     
     
  • 2.4, Аноним (4), 17:52, 15/10/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ещё один вектор атаки.
     
     
  • 3.8, Имя (?), 18:14, 15/10/2024 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Наоборот, старую кодяру разнесли по разным процессам ОС. Тем самым изолировали разные участки кода и данных друг от друга. Это может уменьшить неприятности от атаки, опирающейся уязвимость в коде.
     
  • 3.10, Аноним (9), 18:28, 15/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ой ли, прям вертор...
     
     
  • 4.19, MaleDog (?), 19:27, 15/10/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Мало до этого было атак с манипуляцией параметрами запуска приложений? Если код сложный, то почему просто не вынести в либы. Зачем новый процесс порождать?
     
     
  • 5.22, Аноним (22), 20:15, 15/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Зачем новый процесс порождать?

    ща прибежит Мяю и пояснит, для МАС

     
     
  • 6.40, мяв (?), 06:17, 16/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    а как MAC Вам поможет? как будете отличать штатный вызов нового процесса от внештатного?
    разве что, можно похвастаться "у меня ssh-session и ssh-auth не умеют лазать по хомяку, косяки в них не приведут к прочтению левых файлов", но такое себе.
    вот "MAC для памяти", может, защитил бы.. по-моему, SARA называется, но не уверена про принцип его работы, на этапе "abondoned", бросила читать.
     
     
  • 7.55, Аноним (55), 14:15, 16/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > а как MAC Вам поможет? как будете отличать штатный вызов нового процесса от внештатного?

    а что есть штатный и внештатный вызов?

    > разве что, можно похвастаться

    вы серьезно? чем гранулярнее правила МАС тем он эффективнее, а не "такое себе".

    > вот "MAC для памяти"

    Защитой памяти процесса должен заниматься менеджер виртуальной памяти. И правила тут скорее - аксиомы. И МАС как таковой тут не нужен.

     
     
  • 8.69, мяв (?), 12:53, 18/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    легетимный, задуманный разработчиком и нелегетимный, ставший результатом его оши... текст свёрнут, показать
     
     
  • 9.71, Аноним (71), 14:52, 18/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    ясно... текст свёрнут, показать
     
  • 5.24, Аноним (24), 20:37, 15/10/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Как бы, отдельный процесс - отдельное адресное пространство.
     
  • 5.44, мяв (?), 06:33, 16/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    да, мало, по сравнению с использованием после очистки, двойной очисткой, выхода за границы и тп.
    что-то мне подсказывает, что это вообще внутренние процессы, не принимающие аргументов, бинари которых будут лежать в libexec, как session-helper у polkit.
     
     
  • 6.56, Аноним (55), 14:24, 16/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > что это вообще внутренние процессы, не принимающие аргументов

    что за внутренние процессы? кхммм

    Вон постфикс на такой архитектуре с основания.

     
     
  • 7.70, мяв (?), 12:54, 18/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    те, что не предполагают пользовательского взаимодействия с собой.
     
  • 2.11, Аноним (11), 18:37, 15/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    То тут идет онанирование «одна задача — один процесс», то тебе теперь не нравится, что задача вынесена в отдельный процесс
    Вы бы определились, блин!
     
     
  • 3.12, Аноним (2), 18:46, 15/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Так разные онанимы.
     
     
  • 4.29, Аноним (29), 21:12, 15/10/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Так разные онанимы.

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

     

  • 1.3, Аноним (4), 17:50, 15/10/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Это жжжж не проста. Будут внедрять  в системд? Уверен что это сделано не для удобства пользователей.
     
     
  • 2.5, DeerFriend (?), 18:06, 15/10/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    демона выкинут, оставят системд.сокет
     
     
  • 3.6, DeerFriend (?), 18:08, 15/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А энтузиасты будут прикручивать оставшееся к интетд, чтобы запускалось на диване.
     
     
  • 4.25, Аноним (24), 20:40, 15/10/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Лучше подумай, как оно тогда на OpenBSD должно работать.
     
     
  • 5.60, Аноним (60), 18:55, 16/10/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    OpenSSH *должно* работать на мейнстримных Линуксах и 3½ недоеденных им Юниксах. На это Тео дают достаточно денег на его игрушечную ОС и закрывают глаза на его, скажем так, особенности характера. Если для этого вдруг понадобится тесная интеграция с systemd — Тео либо сделает что сказано, либо будет искать финансирование в другом месте, а проектом займутся другие люди. Работоспособность OpenSSH в OpenBSD в списке требований не присутствует и никогда не присутствовала, это просто счастливая случайность.
     
     
  • 6.67, Аноним (-), 09:32, 18/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вот нет Ты недооцениваешь способность людей програмить себе по фану Толи по... большой текст свёрнут, показать
     
  • 3.15, Аноним (-), 19:04, 15/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Это было бы великолепно в плане унификации и приведению к единому стандарту, а не каши из разношерстных утилит. Ещё бы так сделали с GUI, то авось пересилили бы те 0.01% на десктопе.
     
     
  • 4.26, Аноним (24), 20:42, 15/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >4% не считая ХромойОС.
     
  • 2.35, Аноним (35), 23:00, 15/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    какой systemd в openbsd?
     
     
  • 3.38, Аноним (38), 03:54, 16/10/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    systemd-openbsd
     
  • 3.63, _ (??), 00:06, 17/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Корирайяу имя: OpenSystemD ! 8-D
     
  • 2.46, mos87 (ok), 07:38, 16/10/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    взаимоисключающие параграфы
     

  • 1.7, Аноним (7), 18:12, 15/10/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Надо процессы запуска и остановки процессов выделить в отдельные процессы.
    И да поглотит все рекурсия в бесконечном цикле!
     
     
  • 2.16, Аноним (16), 19:04, 15/10/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    И чтоб каждый файл, каждый юзер -- всё в докере!
     
     
  • 3.18, MaleDog (?), 19:22, 15/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А потом еще придумать костыли как дать процессам доступ к файлам чужих пользователей. "Приложение sftpd pid 36489 просит доступ к фото". После разрешения предоставляем доступ ко всем jpg и png на разделе.  Андроид?
     
     
  • 4.23, Аноним (22), 20:16, 15/10/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А потом еще придумать костыли как дать процессам доступ к файлам чужих пользователей.

    Так есть же - МАС.

     
     
  • 5.41, мяв (?), 06:26, 16/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    или bwrap.
    его в MAC, что б исключить выход из песочницы, а доступом через него рулить.
     

  • 1.14, Аноним (-), 19:02, 15/10/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > В OpenSSH код аутентификации вынесен в отдельный процесс sshd-auth

    Это хорошо или плохо? Что меняет для конечных пользователей?

     
     
  • 2.20, kusb (?), 19:41, 15/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Может быть не взломают. Это и сделано для конечных пользователей, на самом деле.
     
  • 2.48, mos87 (ok), 07:40, 16/10/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    им будет труднее скачать бинарь openssh.tgz распаковать и запускать
     
     
  • 3.66, kusb (?), 14:54, 17/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Придётся кликнуть правой кнопкой мышки и выбрать "Создать папку"
     
  • 2.51, bOOster (ok), 09:21, 16/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Растет количество методов авторизации/аутентификации. Причем бывает на статических библиотеках, которые компилируются внутрь процесса auth. Ребята сделали правильную вещь - отделили код OpenSSH от всякого другого.
     
  • 2.52, bOOster (ok), 09:23, 16/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    ПыСы Некоторые знающие толк в извращениях вообще через записи СУБД авторизуются/аутентифицируются.
     
     
  • 3.58, Аноним (60), 18:49, 16/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Дали им полный набор механизмов для аутентификации пользователей по ключам с любыми ограничениями, от конкретных учётных записей на конкретных хостах до времнного окна для логина без необходимости менеджмента индивидуальных ключей. Нет, всё равно костылят какую-то хтонь.
     
  • 2.54, anonymmmeer (?), 12:11, 16/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Увеличивается безопастность, уменьшается производительность.

    Но нынче такие времена, что одно приложение на электрон уже в сто раз эту производительность ухудшит.

     
     
  • 3.59, Аноним (60), 18:50, 16/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > одно приложение на электрон

    Зачем ты его ставишь на сервер?

     

  • 1.17, Аноним (17), 19:11, 15/10/2024 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +1 +/
     

  • 1.21, Аноним (21), 19:51, 15/10/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ну блин, R^X не пробовали? Вообще всё ROP отрезает.
     
     
  • 2.27, Аноним (24), 20:47, 15/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Точно, RDX вообще всё напрочь отрезает.
     

  • 1.30, Аноним (30), 21:16, 15/10/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Количество уязвимостей в программе зависит от количества ошибок в ней. А количество ошибок зависит от густоты ошибок в коде и объёма кода. А густота ошибок зависит от языка программирования. От разделения программы на несколько процессов объём кода и язык программирования не изменились.
    Какой вывод?
     
     
  • 2.31, Аноним (60), 21:32, 15/10/2024 [^] [^^] [^^^] [ответить]  
  • +10 +/
    Вывод: ты не понимаешь, о чём говоришь.
     
  • 2.57, Аноним (55), 16:21, 16/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > объём кода и язык программирования не изменились

    как не изменилось, если надо еще городить межпроцессное взаимодействие?

     

  • 1.34, Аноним (34), 22:37, 15/10/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вопрос взаимодействия процессов и передачи данных между ними. Сколько багов возникает при передаче через аргументы при старте процесса...
     
     
  • 2.37, Аноним (35), 00:49, 16/10/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    17. Возникает 17 багов. Раз вам так интересно.
     
     
  • 3.42, мяв (?), 06:28, 16/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    было бы интересно еще и список посмотреть.
     
  • 2.43, мяв (?), 06:29, 16/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    никто не будет, условно, пароли в него передавать.
    запустится ssh-auth, спросит пароль, сам все обработает и выдаст, что надо.
     
     
  • 3.61, Аноним (61), 22:14, 16/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    И всё-таки, можно механизм взаимодействия между процессами накидать. Кто и каким образом спавнит, как возвращают результат работы. А то тут dbus десяток лет хрен знает чем занимается, тормозит, что даже в ведро его пытались закинуть.
     

  • 1.39, Аноним (39), 04:51, 16/10/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Они собираются убрать дефолтным поведение, которое позволяет логинится по паролю пользователя в любого пользователя? Кажется дибилизмом каждый раз при создании конфига отменять вайлдкард на все группы и пользователей и для каждого отдельного, который тебе нужен, вписывать его обратно.
     
     
  • 2.45, мяв (?), 06:35, 16/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    идите к ним в гит и сделайте репорт/почитайте, почему так.
     
  • 2.49, а (?), 07:40, 16/10/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    зачем вписывать каждого? создайте группу sshusers, пропишите ее в конфиг, и добавляйте нужных пользователей в нее.
     
     
  • 3.64, _ (??), 00:12, 17/10/2024 [^] [^^] [^^^] [ответить]  
  • +/
    The Best Business Practice for ХЗ сколько лет ... но для некоторых шокирующие инновации(С) :)
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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