The OpenNET Project / Index page

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



Индекс форумов
Составление сообщения

Исходное сообщение
"Проект grsecurity опубликовал реализацию механизма защиты RA..."
Отправлено пох, 08-Фев-17 00:24 
> Может, ещё как может. Стандарты защиты таковы, что системный код разбивают на
> две части: ядро + системная библиотека.

я не знаю что ты такое называешь "системной библиотекой".
libc состоит из вполне банальных сишных функций - позиксных оберток, никакой совершенно "системной" мистики там нет. Ты можешь ими не пользоваться, а изобрести собственный велосипед с квадратным колесом, вот прямо в userspace, это ни на йоту не увеличит права твоей программы.
Вход в ядро возможен только через гейт, на x86/64 архитектуре это, внезапно, вызов int80, опять таки, у нас тут не винда, совершенно не нужно быть libc чтобы его вызвать, и да, пространство адресов ядра - отображается в твое, но ни прочитать что-то оттуда в обход гейта, ни тем более записать, ни исполнить, у тебя не получится, прилетит sig11 (наоборот тоже есть фокусы, в принципе, ядро умеет читать/писать твое адресное пространство, но старается этого не делать). Смысла флэт-модели ты тоже так и не осилил понять.

> *.dll, причём системная библиотека грузится в адресное пространство программы. Т.к.

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

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

мля, как все запущено.
Еще одна страшная новость: ВСЕ, включая только что тобой полученный из mycoolproga.c a.out - грузится "в разделяемую память". Запустишь 500 экземпляров - код в памяти будет все равно только один.
А на самом деле даже и не грузится, а mmap'ается прямо с диска.
И нет, он (при некоторых ограничениях) доступен и на запись тоже. Как это происходит и почему при этом не рушатся все остальные 499 - написано в том же учебнике, который ты так и не прочитал за эти пять часов дальше первого абзаца.
И нет, libc в этом плане ничем от твоей программы не отличается.

Не сдашь ты завтра информатику, даже не пытайся.

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

нет, нельзя. И про "кольца защиты" тоже забудь, их не используют по прямому назначению двести лет как.

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

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



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

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