The OpenNET Project / Index page

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

Представлены патчи для рандомизации адресов стека ядра Linux при системных вызовах

15.04.2021 08:23

Кис Кук (Kees Cook), бывший главный сисадмин kernel.org и лидер Ubuntu Security Team, ныне работающий в компании Google над обеспечением защиты Android и ChromeOS, опубликовал набор патчей с реализацией рандомизации смещений в стэке ядра при обработке системных вызовов. Патчи повышают безопасность ядра путём изменения размещения стека, что делает атаки на стек значительно более сложным и менее успешным занятием. Начальная реализация поддерживает процессоры ARM64 и x86/x86_64.

Изначальная идея патча принадлежит проекту PaX RANDKSTACK. В 2019 году Елена Решетова, инженер из фирмы Intel, попробовала создать реализацию данной идеи, пригодную для включения в основной состав ядра Linux. Позже инициативу подхватил Кис Кук, который и представил реализацию, пригодную для основного варианта ядра. Патчи планируется включить в состав выпуска 5.13. Режим будет отключён по умолчанию. Для включения предложены параметр командной строки ядра "randomize_kstack_offset=on/off" и настройка CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT. Накладные расходы при включении режима оцениваются приблизительно в 1% потери производительности.

Суть предложенной защиты в выборе случайного смещения стека при каждом системном вызове, что усложняет определение раскладки стека в памяти даже в случае получения информации об адресах, так как при следующем системном вызове базовый адрес стека изменится. В отличие от реализации PaX RANDKSTACK, в предложенных для включения в ядро патчах рандомизация выполняется не на начальной стадии (cpu_current_top_of_stack), а после выставления структуры pt_regs, что делает невозможным использование методов на основе ptrace для определения рандомизированного смещения в процессе работы длительно выполняемого системного вызова.

  1. Главная ссылка к новости (https://www.phoronix.com/scan....)
  2. OpenNews: Проблемы с безопасностью в патчах, предложенных сотрудником Huawei для защиты ядра Linux
  3. OpenNews: Экспериментальная поддержка пересборки ядра Linux в Clang с механизмом защиты CFI
  4. OpenNews: Линус Торвальдс раскритиковал ограничительные меры по усилению защиты ядра Linux
  5. OpenNews: Grsecurity прекращает бесплатное распространение своих патчей
  6. OpenNews: Проект по продвижению в ядро Linux новых технологий активной защиты
Автор новости: Аноним
Тип: К сведению
Короткая ссылка: https://opennet.ru/54971-kernel
Ключевые слова: kernel, syscall, stack
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (54) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Корец (?), 10:16, 15/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +21 +/
    >Елена Решeтова, инженер из фирмы Intel

    Фамилия-то прям в тему.

     
     
  • 2.3, Гусар (?), 10:37, 15/04/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    в женщине главное не фамилия
     
     
  • 3.5, Ноним (?), 10:46, 15/04/2021 [^] [^^] [^^^] [ответить]  
  • +5 +/
    >в женщине главное не фамилия

    А то, как она произносится

     
  • 2.4, ilyafedin (ok), 10:42, 15/04/2021 [^] [^^] [^^^] [ответить]  
  • +15 +/
    Это же скольким событиям надо было совпасть, чтобы мы увидели эту строку на опеннете... Настоящее чудо.
     
  • 2.6, Аноним (6), 10:51, 15/04/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Она реально крута. 👍
    Позырь проекты на гитхабе.
     
     
  • 3.13, Аноним (13), 11:06, 15/04/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Посмотрел
    Сделано хорошо
    Диссертация зачёт, это ей надо
    Все остальное кому нибудь надо?
     
  • 3.42, лютый жабби__ (?), 20:21, 15/04/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >Она реально крута. Позырь проекты на гитхабе.

    если крута, почему недоделала, то что сделал Кук?

     
  • 3.58, Аноним (-), 09:14, 17/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Она реально крута. 👍

    Урл?

     
  • 2.15, Аноним (15), 11:17, 15/04/2021 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Достойная конкурентка Янки Руткитской
     
  • 2.18, InuYasha (??), 11:52, 15/04/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ЧСХ, она (была?) в списке недопустимых слов на Опеннете? )
    Как тебе удалось написать её в комментарии?
     
  • 2.19, n00by (ok), 11:55, 15/04/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    >>Елена Решeтова, инженер из фирмы Intel
    > Фамилия-то прям в тему.

    Значение слова Решетник по словарю Ушакова:
    РЕШЕТНИК, решетника, м. (спец.).
    1. только ед., собир. Материал для обрешотки крыш - тонкие длинные брусья, прибиваемые к стропилам для настила на них кровельного материала.
    2. Человек, изготовляющий решета.

     
     
  • 3.32, РУСТофил (?), 15:22, 15/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >Человек, изготовляющий решета.

    Всех погроммистов пишущих на "небезопасных" языках надо так назвать!

     
     
  • 4.46, n00by (ok), 09:41, 16/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >>Человек, изготовляющий решета.
    > Всех погроммистов пишущих на "небезопасных" языках надо так назвать!

    Ну да. Си это тот каркас, на котором всё держится.

     
  • 3.39, Корец (?), 18:53, 15/04/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Человек, изготовляющий решета.
    >инженер из фирмы Intel

    Всё сходится.

     
     
  • 4.45, n00by (ok), 09:36, 16/04/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >>Человек, изготовляющий решета.
    >>инженер из фирмы Intel
    > Всё сходится.

    Решата являются _укрепляющей_ конструкцией, на которой держится кровля. Вы путаете их с ситом и дуршлагом (которые, опять же, не о том -- они не пропускают лишнее, либо задерживают нужное). Если для Вас "сходится", значит Вы не прошли тест с полуполным стаканом, а это звоночек.

     

  • 1.7, Аноним (7), 10:52, 15/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >>> набор патчей с реализацией рандомизации смещений в стэке ядра при обработке системных вызовов

    вам не кажется что индустрия идёт не туда, коль приходится вытворять такие штуки(рэндомизировать)? (так это ещё и не решает проблему)

     
     
  • 2.11, Аноним (13), 11:00, 15/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Туда-туда.
    Это гуглозаход такой. Как с браузерами. Усложнение ради усложнения.
    Кто сейчас сможет запилить свой браузер? Никто. Ресурсов не хватит.
    С ядром линяги делают тоже самое.
     
     
  • 3.30, Аноним12345 (?), 14:01, 15/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Все, что растет из гугла, имеет прямо обратную цель
    Корпорация зла
     
  • 3.33, Аноним (33), 16:09, 15/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Так же в свое время ныли про ИЕ6.
     
  • 2.31, анон (?), 14:01, 15/04/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Это аппаратный косяк, индустрия лишь следует туда, где рыночек порешал.
    Тем временем в эльбрусах, которые тут так страстно обожают и активно хейтят, изначально заложены тегирование в аппаратуре, чтобы никто не мог вылезти из своего адресного загона.
     
  • 2.41, СеменСеменыч777 (?), 20:16, 15/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > индустрия идёт не туда

    ru.wikipedia.org/wiki/Архитектура_фон_Неймана

     
     
  • 3.59, Аноним (-), 09:16, 17/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Гарвардцев, видите ли, оказалось очень уж неудобно программить. А нейманам приделали MMU/MPU с атрибутами доступа.
     

  • 1.8, Аноним (13), 10:54, 15/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Наблюдая запихивание всего в ядро линукса, начинаем смотреть в сторону bsd.
    Скоро придётся куда-то мигрировать.
     
     
  • 2.10, Rev (?), 10:59, 15/04/2021 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Да-да, лучше выбрать отстающее ядро, совсем без безопасности.
     
     
  • 3.12, Аноним (13), 11:02, 15/04/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Чем такая "безопасность" может лучше не надо?
     
     
  • 4.60, Аноним (-), 09:17, 17/04/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    БезопасТность имени гангстера Масика с затыканием гонок delay-ями и ревью сам себя любимого - оно и правда лучше?
     
  • 2.14, Аноним (14), 11:15, 15/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А разве в BSD не добавляли уже что-то схожее ранее?
     
  • 2.29, анон (?), 13:51, 15/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Есть хурд, катись туды.
     

  • 1.9, Rev (?), 10:58, 15/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    То есть, вместо того, чтобы проверять границы параметров, писать безопасно, либо писать на безопасном языке, мы будем стэк передвигать туда-сюда?

    Затыкание пальцем дыры в трубе.

     
     
  • 2.16, нежданчик (?), 11:39, 15/04/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >Затыкание пальцем дыры в трубе.

    Это смещение дырки в трубе! Пальцем ткнул - а не попал!
    Было

             🎣
    --------- HOLE -------------------
           K E R N E L
    ----------------------------------
    Стало
            🎣
    ---------------------- HOLE ------
           K E R N E L
    ----------------------------------
    У кого уникод старый(нарисована картинка "удочка")

     
     
  • 3.22, Аноним (22), 12:41, 15/04/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    И все равно идея странная. Наверняка скоро появятся методы обхода таких защит перебором, поскольку защищают они не в 100% случаев. И процента производительности жалко, в общем-то ни на что.
     
  • 2.20, Аноним (20), 12:18, 15/04/2021 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Зачем ремни безопасности в машине. Нужно всего-то аккуратно и безаварийно ездить.
     
     
  • 3.23, Аноним (22), 12:43, 15/04/2021 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Плохое сравнение, ведь тогда хороший, современный ЯП сравним с безаварийной машиной (по работе с памятью)
     
     
  • 4.25, Аноним (25), 13:28, 15/04/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В соседней новости написано, что Торвальдс думает об этом вашем "хорошем, современном ЯП"
     
     
  • 5.52, anonymous (??), 12:18, 16/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, там было про его мысли о конкретном варианте интеграции.
     
  • 3.47, Аноним (47), 10:08, 16/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Эти ваши рандомизации избавляют только от симптомов, а не от проблемы. Это и не хорошо и не плохо, это просто факт, что проблема есть.
    Как пример можно сравнить с тем, что ssh для логина по ключам не требует шифровать приватный ключ юзера, и это, ИМХО, правильно, потому что ключ и так не должен быть доступен постороннему юзеру, а постоянный накопитель должен быть зашифрован/забетонирован
     
  • 2.24, Аноним (24), 12:52, 15/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, можешь пока не пользоваться и немного подождать, пока начнуть делать более безопасный код.
     
  • 2.61, Аноним (61), 10:58, 17/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    GRKERNSEC_KSTACKOVERFLOW=y

    https://en.m.wikibooks.org/wiki/Grsecurity/Appendix/Grsecurity_and_PaX_Configu

     

  • 1.21, Аноним (21), 12:36, 15/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Во фре уже давно, а потом скажут что в линухе первім "фича" появилась...
     
     
  • 2.27, Аноним (27), 13:40, 15/04/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    спасибо бздунам, что согласились побыть бетатестерами
     
     
  • 3.34, Аноним (-), 16:27, 15/04/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >> отстающее ядро
    > спасибо бздунам, что согласились побыть бетатестерами

    Удобные двойные стандарты опеннетчиков. Ну хоть тут быстро сделали, а то те же process descriptors лет 8 или 9 тестировали для пингвинят (которые в это время не забывали активно нахваливать "решающую проблему PID-гонок" системду).


     
     
  • 4.37, Аноним (27), 18:13, 15/04/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > > спасибо бздунам, что согласились побыть бетатестерами
    > Удобные двойные стандарты опеннетчиков

    А что, стрелка не поворачивается, да?

    > Сообщение от Ivan_83 (ok), 13-Апр-21, 23:25
    > Притом часто нам забрать - ничего не стоит по трудозатратам. Тестируйте для нас и дальше ))))))

    https://www.opennet.ru/openforum/vsluhforumID3/123937.html#7

     
     
  • 5.44, Аноним (-), 22:27, 15/04/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >>> Да-да, лучше выбрать [b]отстающее ядро[/b], совсем без безопасности.
    >>> отстающее ядро
    >>> спасибо бздунам, что согласились побыть бетатестерами
    >> Удобные двойные стандарты опеннетчиков
    > А что, стрелка не поворачивается, да?

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

     
  • 2.62, Аноним (61), 11:01, 17/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    https://en.m.wikibooks.org/wiki/Grsecurity/Appendix/Grsecurity_and_PaX_Configu

    В Linux давно реализация есть. Просто в основную ветвь патчей безопасности не добавляют.

     

  • 1.35, Crazy Alex (ok), 16:47, 15/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Главное - что оно опцией, а не гвоздями прибито. 1% отдать ни за что, и так пара десятков "улучшений"... переживу как-нибудь без такого счастья.
     
     
  • 2.36, Аноним (36), 17:00, 15/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Неужто так важен этот самый 1% ? Может просто перекомпилить ядро под конкретную архитектуру, а не юзать generic? тогда и того самого 1% возможно и не потеряется на фоне оптимизации производительности системы.
     
     
  • 3.38, Аноним (38), 18:16, 15/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Дело скорее в этом:

    "This is a continuation and refactoring of Elena's earlier effort to add
    kernel stack base offset randomization"

    https://lore.kernel.org/kernel-hardening/20190329081358.30497-1-elena.reshetov

    Это ж надо было себе все присвоить. А там какая-то девка в авторах на самом то деле.

     
  • 2.43, СеменСеменыч777 (?), 20:24, 15/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > 1% отдать ни за что

    1) на безопасность не жалко (если это действительно повышает безопасность).

    2) если выкинуть SElinux, AppArmor и чег там еще в ядро понапихали, то можно отыграть эти 1% взад и еще остаться в плюсе.

     

  • 1.51, Аноним (-), 12:16, 16/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Кис Кук (Kees Cook),

    Провакационное имя и фамилие. Какой то хрен чтоли :-)

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

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

     
     
  • 2.54, Аноним (54), 17:43, 16/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Провакационное имя и фамилие

    Ну знает мужик как кисок готовить

     
     
  • 3.57, Аноним (57), 02:41, 17/04/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    чувство юмора типичного иксперта опеннет
     
     
  • 4.67, Аноним (67), 01:55, 22/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    самокритично
     
  • 2.64, Аноним (-), 11:11, 19/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Да конечно. Ну просто вот прям сразу так. В регистрах прям таки
    > нигде ен будет видно где стек спрятан.

    Свой то касающийся вызова смотри наздоровье. А за попытки слазить вне оного - получишь в тыкву, по линии MMU и проверок red zone.

     

  • 1.68, pavlinux (ok), 18:29, 30/06/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ну они гепер мозги, пилять :D




    /* Copyрайт ... где-то 2003-2004 (с) */
    ...
    current->mm->start_stack =  bprm->p +/- get_random_long() % 8192; /* Фсё */
    ...

    /* +/- зависит от CONFIG_STACK_GROWSUP */



    Хотя вру, с bprm позже переделал.

     

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



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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