LINUX.ORG.RU
решено ФорумTalks

Вопрос безопасности памяти

 , ,


3

4

Всё время возвращаюсь мыслями к этому вопросу, но как-то не складывается целостного понимания. На ruBSD13 был доклад на эту тему: там речь шла об ASLR, random ordering, PIE, mmap ASLR. Использовании .rodata и malloc randomisations. Есть еще stack execute invalidation (NX bit), Stack Smashing Protector - ProPolice, stackghost итд.

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

Ссылка trl.ibm.com/trl/projects/security/ssp из презентации уже не работает.

Ничего фундаментального по этой тематике я как-то не обнаружил. Плохо искал? Или проблема неактуальна и все угрозы победили (все упоминания какие-то старые)? Или они (угрозы) стали какими-то другими?

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

Мой вопрос в том, что:
1.) Проблема безопасности памяти недооценена? Стара? Или актуальна? Как вообще в реальной жизни к этому относятся? Что сейчас происходит в мире интересного на эту тему?
2.) Посоветуйте серьезную литературу (можно англоязычную) почитать об этом.

Deleted

Последнее исправление: cetjs2 (всего исправлений: 2)

Проблема безопасности памяти недооценена? Стара? Или актуальна?

Проблемой безопасности занимаются соотв. специалисты. А диванные теоретики здесь не причем. Не такая простая уж это тема.

Как вообще в реальной жизни к этому относятся?

Как обычно: пока кредитку не обнулят, или котиков с твоего аккаунта (где угодно) не стащат - всем пофиг.

2.) Посоветуйте серьезную литературу (можно англоязычную) почитать об этом.

А тем много. Криптоалгоритмы, безопасность сети, социальная инженерия и т. п. Что конкретно? По алгоритмам даже в институте проходили, но там матан жуткий. А в остальном - в сети информации полно. В легко доступном - ерунда, хотя она может помочь в основах (тот же Ксакеп, ой сейчас заплюют). А дальше - только на тематические форумы. Да, если хочешь туда расти - берешь какую-то ерунду, и после прочтения начинаешь разбирать теорию, пробовать пентест и защиту. Нужные ресурсы сами найдутся. А иначе - это как учиться плавать по книгам.

Kroz ★★★★★
()
Ответ на: комментарий от Kroz

Я не говорил, что никто не пишет

А насчёт драйверов на дотнете говорите за себя

Northsoft ★★
()
Ответ на: комментарий от Kroz

А тем много. Что конкретно?

Я имею в виду конкретные примеры реализаций технологий и подходов на Си (вроде ASLR, ProPolice, W^X итд) в различных юниксах. Посмотреть, кто вырвался вперед в этом плане.

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

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)

Skype впереди планеты всей

Тема актуальна, но используется не для защиты. Видишь ли MAC/DAC/MLS решает 95% задач по предотвращению атак на память. Если у тебя есть root, то у тебя есть root, даже нечего добавить :)

P.S. Спроси на pgpru.com или на stack overflow.

gh0stwizard ★★★★★
()
Последнее исправление: gh0stwizard (всего исправлений: 1)

есть какие-то там особые компиляторы

rust-lang.org? :)

ozkriff
()

Проблема актуальна.

https://grsecurity.net/
https://ru.wikipedia.org/wiki/Grsecurity
https://ru.wikipedia.org/wiki/PaX

http://www.rsbac.org/
http://en.wikipedia.org/wiki/RSBAC

http://www.linuxfromscratch.org/hlfs/view/development/index.html

http://www.openwall.com/Owl/ru/
https://ru.wikipedia.org/wiki/Openwall

Debian и Gentoo имеют свои варианты hardened с теми же патчами (или их частью) что и в этих проектах.

imul ★★★★★
()

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

Deleted
()

В общем, недавно обсуждали этот вопрос, а мне и говорят: не используй указатели.

И да и нет.
Сейчас уже есть на порядок меньше слуаев, где указатели нужны. Играюсь периодически с С++, там много для этого сделано. Плюс есть т. н. smart pointers. Ну, и старый как мир совет про не-safe функции. Кстати, PVS-studio много таких веще ловит,

В общем, одного труда такого я не знаю. Но по крохам инфу собрать можно.

Kroz ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.