The OpenNET Project / Index page

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

Проект grsecurity представил защиту от атак с использованием заимствования кусков кода

29.04.2016 21:11

Проект grsecurity, в рамках которого развивается серия надстроек для усиления безопасности ядра Linux, сообщил о важной вехе в своём развитии - в набор патчей grsecurity включён механизм защиты RAP, позволяющий блокировать работу эксплоитов, основанных на технике заимствования кусков кода. RAP реализован в форме плагина к GCC и распространяется под лицензией GPLv3. Блокирование атак обеспечивается благодаря применению двух механизмов: контроля возврата в точку вызова функции и определения какие функции могут быть вызваны из данного места и куда может быть возвращено управление.

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

Ранее предлагаемые способы защиты от атак с использованием методов возвратно-ориентированного программирования, как правило, основывались на рандомизации адреса загрузки библиотеки, который при технике ASLR меняется при каждом запуске программы. Слабая сторона такого способа в том, что атакующий может подобрать точку входа в библиотеку (определить адрес известной функции) и вычислить смещение для вызова используемых в эксплоите гаджетов, относительная позиция которых в библиотеке сохраняется. Для нарушения вычисленных атакующим смещений гаджетов предлагаются методы перемешивания всех функций системной библиотеки, но они достаточно ресурсоёмки, что мешает их практическому внедрению. Разработчики OpenBSD попытались найти компромисс и предложили выполнять перекомпоновку системной библиотеки на этапе загрузки системы.

Подход RAP (Return Address Protection), предлагаемый в grsecurity, позволяет достаточно надёжно блокировать атаки на основе заимствования кусков кода и при этом оказывает минимальное влияние на производительность. Суть метода в организации проверки адресов, по которым производится возврат из функций. Для проверки используется проверочный ключ (RAP cookie), который сохраняется в резервном регистре (r12). Ключ вычисляется сразу после сохранения в стек адреса возврата и проверяется перед осуществлением выхода из функции. Если в момент выхода сохранённый и вычисленный ключи не совпадают, то переход на код функции был произведён не на начало функции.

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

Дополнение 1: В экспериментальной ветке grsecurity устранена DoS-уязвимость, позволяющая инициировать крах ядра при вставке слишком длинной строки в эмулятор терминала (например, "script /dev/null < /dev/zero"). В связи с этой уязвимостью разгорелся не совсем понятный конфликт - с одной стороны сведения о проблеме были адекватно приняты в форуме grsecurity и был сразу выпущен патч, но, с другой стороны, опубликованная на следующий день демонстрация простейшего метода эксплуатации проблемы в Twitter привела к блокировке анонсировавшего проблему пользователя и авторов ретвитов, а также к ограничению публичного доступа к каналу @grsecurity. Мотивы удаления пока не ясны, возможно это была реакция на волну троллинга и попытки дискредитации проекта.

Дополнение 2: Опубликован FAQ с подробным описанием принципов работы RAP и особенностей реализации.

  1. Главная ссылка к новости (https://grsecurity.net/rap_ann...)
  2. OpenNews: Проект по продвижению в ядро Linux новых технологий активной защиты
  3. OpenNews: Началось тестирование ОС Subgraph, использующей контейнерную изоляцию приложений на десктопе
  4. OpenNews: Проект grsecurity ограничивает доступ к стабильным веткам
  5. OpenNews: Разработчики OpenBSD подготовили для libc механизм защиты anti-ROP
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/44348-grsecurity
Ключевые слова: grsecurity, pax, rap
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (60) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, chinarulezzz (ok), 22:11, 29/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +15 +/
    https://twitter.com/marcan42/status/724745886794833920
     
     
  • 2.2, Аноним (-), 22:34, 29/04/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Эй! OPENNET! Что за игнорирование такой интересной новости?!
     
     
  • 3.6, grsec_user (?), 22:42, 29/04/2016 [^] [^^] [^^^] [ответить]  
  • +7 +/
    > Команда Grsecurity приняла информацию к сведению и… забанила Мартина в твиттере и на
    > сайте по IP-адресу. Разработчики также пообещали устранить проблему в следующем релизе,
    > попутно оскорбив исследователя: «Надлежащее исправление (то есть не твое, мистер Капитан
    > Очевидность На Белом Коне) выйдет вместе со следующим патчем, удачно тебе его скачать».

    (https://xakep.ru/2016/04/28/grsecurity-ban/)

    Просто прекрасно же!

     
     
  • 4.11, Аноним (-), 00:47, 30/04/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > (https://xakep.ru/2016/04/28/grsecurity-ban/)
    > Согласно сообщениям на Reddit, Grsecurity также блокируют всех пользователей,
    > кто поставил лайки твитам исследователя. Позже разработчики сообщили,
    > что тестовый патч уже доступен. Один из последних твитов
    > Grsecurity гласил: «Новый тестовый патч с защитой от ненужных инфосек молокососов готов».

    Адекватность и взрослое поведение изо всех щелей.

     
     
  • 5.36, Аноним (-), 23:21, 30/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    А когда исследователь, обнаруживший идиотский код постебался насчет бана по IP (эффективно от исследователей, лол) - они показали что еще и твиттером пользоваться не умеют. Теперь это так: "Only confirmed followers have access to @grsecurity's Tweets and complete profile.". Почти самозабанились. Но эффект Стрейзанд не забанишь.
     
     
  • 6.57, АнонимВездесущий (?), 16:44, 02/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    а не мог ли всё это устроить (дыру и баны) один/несколько человек в тайне от остальных участников Grsecurity, например?
     
  • 6.58, АнонимВездесущий (?), 16:46, 02/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    саботаж, всепроникающий m$ с гугелем, заговор мирового правительства, и всё такое...
     
  • 4.14, Аноним (-), 08:26, 30/04/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    На xakep.ru копипаст без ссылки на первоисточник.
    Оригинал статьи http://www.theregister.co.uk/2016/04/27/linux_security_bug_report_row/
     
     
  • 5.17, Аноним (-), 11:57, 30/04/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    не копипаст, а перевод. человекочитаемый перевод требует трудозатрат.
     
     
  • 6.46, Аноним (-), 20:15, 01/05/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вставление ссылки на оригинал требует трудозатрат?
     
  • 2.7, Crazy Alex (ok), 23:13, 29/04/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Вот это полностью характеризует grsecurity. Защищаясь чёрт знает от чего, оставляют совершенно реальные дыры.

    Вот прав был Линус насчёт "борцов за безопасность"...

     
     
  • 3.10, Аноним (-), 00:16, 30/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Таки да, security circus как он есть.
     
  • 3.34, Аноним (-), 22:58, 30/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Однако. Тролли помогли grsec'ам самодискредитироваться.
     
     
  • 4.47, Аноним (-), 20:25, 01/05/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Однако. Тролли помогли grsec'ам самодискредитироваться.

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

    Тролль - этот тот кто извлекает лулзы из батхеда пациента.
    А тут претензия по существу и с доказательством. Это называется критика. Выучи это полезное слово.

     

  • 1.3, Аноним (-), 22:37, 29/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –16 +/
    Молодцы. Активно пользуюсь их системой защиты.
     
     
  • 2.18, Аноним (-), 11:58, 30/04/2016 [^] [^^] [^^^] [ответить]  
  • +7 +/
    а как будете банить тех, кто минусов комменту наставил?
     

  • 1.8, Crazy Alex (ok), 23:14, 29/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    То есть они на эту хрень (необходимость которой вообще под вопросом) хотят угробить целый регистр. Чудесное решение, ничего не скажешь.
     
     
  • 2.9, Аноним (-), 23:22, 29/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    А что ты можешь сказать про сам регистр?
     
     
  • 3.13, Crazy Alex (ok), 01:25, 30/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    А что про него говорить? РОН как РОН, на amd64 во всяком случае
     
     
  • 4.15, Владимир (??), 08:59, 30/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Вы правы, всем POH.
     
     
  • 5.20, Аноним (-), 13:09, 30/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Мне - нет.
     

  • 1.12, Аноним (-), 01:24, 30/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    А что вы хотели они же недавно стали почти коммерческой организацией, платный доступ к их детищу. А тут какой то Мартин портит им всю безопасность. Так глупо грубить человеку который хотел помочь и помог, ведь по факту ошибку исправили.
     
     
  • 2.19, Аноним (-), 12:01, 30/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    в южном парке был выразительный эксперимент на обезъяне, которой дали охапку баксов.
     

  • 1.16, Аноним (-), 10:58, 30/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    grsecurity слился, они за деньги продают патчи.
     
     
  • 2.22, Вареник (?), 19:06, 30/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    И чем они отличаются от продающих эксплоиты или прочий опиум для народа? :)
     
  • 2.41, петушок (?), 13:17, 01/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    А какие есть альтернативы?
    Интересно, что в Astra Linux тоже используют эти патчи. Ну будем считать, что они сделали ревью кода, и знали о проблеме. Будем надеяться, что наша популяция человеков защищается профессионалами.
    Существует мнение, что за те деньги, которые они распилили на линуксах, они бы могли создать полностью безопасную ОС с верифицируемым кодом. Ну будем считать, что у них есть план развития, и они его придерживаются.
     
  • 2.45, Аноним (-), 19:52, 01/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > grsecurity слился, они за деньги продают патчи.

    Какие плохие люди, хотят денег за свою работу.

    (мне тоже не нравится их поведение в твиттерной ситуации выше, но в данном случае наезд какой-то странный)

     
     
  • 3.48, Аноним (-), 20:38, 01/05/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    В твитере про это ни слова, поэтому твой каммент мимо Мой маленький друг, это ... большой текст свёрнут, показать
     
     
  • 4.52, Аноним (-), 02:44, 02/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    gt оверквотинг удален Мой огромный друк, вам бы читать внимательнее то, на что... большой текст свёрнут, показать
     

  • 1.21, Аноним (-), 15:21, 30/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А почему новость о технологиях одного и того же направления и сравнимого результата в случае grSecurity — основная новость, а в случае OpenBSD — мини-новость? Потому что в OpenBSD размер патча для решения задачи на порядок меньше?
     
     
  • 2.23, Вареник (?), 19:07, 30/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > А почему новость о технологиях одного и того же направления и сравнимого
    > результата в случае grSecurity — основная новость, а в случае OpenBSD
    > — мини-новость? Потому что в OpenBSD размер патча для решения задачи
    > на порядок меньше?

    1. OpenBSD некоммерческий.
    2. У OpenBSD нет PR-службы.

     
  • 2.24, Аноним (-), 19:33, 30/04/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Потому что в Grsecurity более серьёзная защита, а в OpenBSD - вариант ASLR.
     
     
  • 3.25, anonymous (??), 19:52, 30/04/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Потому что в Grsecurity более серьёзная защита

    Прибитая гвоздями к x86, да еще и замедляющая работу приложений

     
     
  • 4.26, Аноним (-), 20:35, 30/04/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >>Потому что в Grsecurity более серьёзная защита
    > Прибитая гвоздями к x86, да еще и замедляющая работу приложений

    Очень аргументированное мнение. :) Во-первых, к x86_64 в текущей версии патчей, и это не фундаментальное ограничение. Во-вторых, это самая быстрая и действенная реализация CFI вообще, "замедляющая работу приложений" на единицы процентов, т.е. на порядок меньше ближайших конкурентов, которые при этом отстают по уровню защиты. Лично вам не нужно? Ну так никто ж не заставляет.

     
     
  • 5.27, Аноним (-), 21:02, 30/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Уже не кому не нужно, закрытая реализация костыля.
    Торвальдс реализует открытую и без понтов.
     
     
  • 6.31, Аноним (-), 22:27, 30/04/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ничего закрытого. Не надо тут писать то, что прочитал на заборе.
     
     
  • 7.37, Аноним (-), 23:27, 30/04/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Ничего закрытого. Не надо тут писать то, что прочитал на заборе.

    Идея банить исследователя за то что он, цуко, бажный код таки изволил прочитать - это финиш. Толку с такой "открытости"?

     
     
  • 8.38, Аноним (-), 00:20, 01/05/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Что сказать хочешь ... текст свёрнут, показать
     
     
  • 9.39, Аноним (-), 02:32, 01/05/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Что возможность уронить всю систему для непривилегированного пользователя - не о... текст свёрнут, показать
     
     
  • 10.40, Аноним (-), 09:04, 01/05/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Точно такой баг , но c int вместо size_t, был и есть в оригинальном коде ядра в... большой текст свёрнут, показать
     
     
  • 11.42, Аноним (-), 18:05, 01/05/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Оригинальный код не падает от копипаста в терминал Там хак , но работает Почи... большой текст свёрнут, показать
     
     
  • 12.50, Аноним (-), 20:42, 01/05/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Вы понимаете, что на каждый такой про б приходится несколько обезвреженных или... большой текст свёрнут, показать
     
  • 11.49, Аноним (-), 20:40, 01/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Там выше ребенок утверждал что не бесплатно Кто из вас врёт ... текст свёрнут, показать
     
     
  • 12.55, Аноним (-), 09:21, 02/05/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Стабильная ветка бесплатна по сей день Стабильная ветка LTS платна с начала про... текст свёрнут, показать
     
  • 6.32, Аноним (-), 22:28, 30/04/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Никогда он ничего подобного не реализует.
     
  • 3.44, Аноним (-), 19:47, 01/05/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Потому что в Grsecurity более серьёзная защита, а в OpenBSD - вариант
    > ASLR.

    Аргументируйте, пожалуйста, почему «более серьёзная»? И почему связанное с ASLR решение опёнковцев хуже, тоже.

     
     
  • 4.51, Аноним (-), 21:13, 01/05/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Аргументируйте, пожалуйста, почему «более серьёзная»? И почему связанное с
    > ASLR решение опёнковцев хуже, тоже.

    Попробуйте самостоятельно разобраться. Ссылка на слайды к презентации по RAP есть в новости, способы обхода ASLR несложно нагуглить.

     
     
  • 5.53, Аноним (-), 02:49, 02/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >> Аргументируйте, пожалуйста, почему «более серьёзная»? И почему связанное с
    >> ASLR решение опёнковцев хуже, тоже.
    > Попробуйте самостоятельно разобраться. Ссылка на слайды к презентации по RAP есть в
    > новости, способы обхода ASLR несложно нагуглить.

    Я хочу услышать ваши аргументы, так как утверждение высказано именно вами, и разговор идёт именно с вами. Я могу точно также сказать «вы не правы, подробности в Гугле» (или наоборот), и это, согласитесь, будет идиотизмом.

     
     
  • 6.54, Аноним (-), 04:20, 02/05/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А я со своей стороны не хочу вступать в спор с человеком, который спрашивает об очевидных, на мой взгляд, вещах, но при этом не проявляет заинтересованности по существу вопроса.
     
     
  • 7.59, Аноним (-), 01:23, 03/05/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > А я со своей стороны не хочу вступать в спор с человеком,
    > который спрашивает об очевидных, на мой взгляд, вещах, но при этом
    > не проявляет заинтересованности по существу вопроса.

    Я не так давно нашёл, например, небольшую ошибку в OpenBSD-ом коде по этой части (уже исправлена). И чем одно отличается от другого — понимаю хорошо. А вот сравнение с учётом минусов обоих решений — было бы интересно. Если у вас его нет, а есть только очевидная вам очевидность — что ж, сидите дальше со своим сакральным знанием, и без вас разберёмся.

     
  • 2.28, Аноним (-), 21:23, 30/04/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > — мини-новость? Потому что в OpenBSD размер патча для решения задачи
    > на порядок меньше?

    В OpenBSD не решение, а костыль, и оно ещё только предложено, а не включено в состав системы.

     
     
  • 3.35, Аноним (-), 23:02, 30/04/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > В OpenBSD не решение, а костыль, и оно ещё только предложено, а
    > не включено в состав системы.

    Сабж тоже внешний костыль, не включенный в состав системы.

     
  • 3.43, Аноним (-), 19:44, 01/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >> — мини-новость? Потому что в OpenBSD размер патча для решения задачи
    >> на порядок меньше?
    > В OpenBSD не решение, а костыль, и оно ещё только предложено, а
    > не включено в состав системы.

    Уже включено.

    А вот соответствующий патч от grsecurity в mainline что-то не видно.

     

  • 1.29, Аноним (-), 21:42, 30/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    спасибо за статью. добавил grsecurity в спам лист как распостранителей малвари.
     
  • 1.33, Аноним (-), 22:30, 30/04/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    https://grsecurity.net/rap_faq.php
     
  • 1.56, Аноним (-), 09:43, 02/05/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Отличная новость от очень хорошего проекта.

    Спасибо команде Grsecurity & PAX за их труд!

    ЗЫ: видать не все здесь ещё доросли до этого проекта.. Автору новости не стоило бисер перед свиньями рассыпать.

     
     
  • 2.60, Led (ok), 00:13, 04/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Отличная новость от очень хорошего проекта.
    > Спасибо команде Grsecurity & PAX за их труд!

    А за мир и май? забыл?

     

  • 1.61, IZh. (?), 09:49, 05/05/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Идея хорошая, и реализация, возможно, неплохая. Плохо, что за деньги и закрытое.

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

     
     
  • 2.62, Аноним (-), 13:23, 06/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    В контексте grsecurity "закрыты" только grsec-патчи для ядер LTS-веток и дополнительный вероятностный механизм защиты адреса возврата. Патчи для веток ядра, которые раньше и сейчас используются в Gentoo и Arch, остаются открытыми. И вообще RAP сейчас доступен только в публичной версии 4.5. Для 4.4 его, возможно, портируют, а для 3.14 не портируют точно.
     

  • 1.63, Аноним (-), 17:17, 06/05/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    и реализация ASLR и типизации и доменификации доступа/активности - там довольно наивно реализовано, поэтом гротэскно смотрятся попытки - это еще и продать.
     

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



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

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