The OpenNET Project / Index page

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



"Hardened, NX, PIC, PIE, ASLR, NOEXC&RW EXEC& RO, CFLAGS, LDFLAG"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Информационная безопасность (Безопасность системы)
Изначальное сообщение [ Отслеживать ]

"Hardened, NX, PIC, PIE, ASLR, NOEXC&RW EXEC& RO, CFLAGS, LDFLAG"  +/
Сообщение от Аноним (0), 10-Май-19, 10:18 
Описанные технологии очень стары и работают на 32 битах с некоторыми оговорками.

Пример 1:
https://mirror.yandex.ru/mirrors/ftp.linux.kiev.ua/Linux/CD/.../

1. Защита оперативной памяти.
NX есть у некоторых пентиумах 4 x86. Можно обойтись без NX используя свойство посегментной защиты памяти процессором вместо постраничной. Посегментная защита памяти ограничивает размер выделяемой процессу памяти 1.5Гб. и незначительно тормозит, на некоторых видах пентиумов 4 тормоза сильные из-за плохой архитектуры этих процов. Проци с NX обеспечивают постраничную защиту памяти без снижения производительности. Постраничная защита памяти стандарт для современных процессоров и давно используется нормальными ОС: микрософт, эппел, OpenBSD, Linux+PAX.
В мат модели ОС принято выставлять права RWX, из них следует модель обеспечения гарантий безопасности: выделения памяти только в режиме X или W, и дополнительно нельзя менять ro на rw, w на ro и потом добавить x.

Все выше написанное сделано для гарантии соблюдения главного правила построения безопасной ОС: "все исполняемое не должно изменятся, а все измеряемое исполнятся"! Это главное правило построения безопасной ОС.

Это правило, на процессорных архитектурах сделанных людьми, для себя, реализовано аппаратно! На быдло x86, x86_64 требуется реализация этих гарантий безопасности на уровне ядра ОС и NX вам здесь в помощь.

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

Технология JIT несовместима с данной техникой защиты и не должна использовался в принципе. Как минимум отключается на этапе конфигурации программы: 'configure --without-jit'.

Для проверки возможностей ядра используем:
paxtest


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

Для возможности компиляции программы как PIE необходимо чтобы она была написана как позиционной независимый код (PIC). В начале 2000 с программистами на архитектурах х86, x86_64 была проблема, они проявляли непонимание, упрямство и не хотели писать позиционной независимый код. Сегодня проблем нет, все проги имеют PIC и их можно собрать как PIE. Для этого возможно понадобится в configure отключить некоторый, плохо написанный код, зачастую асемблерную оптимизацию под спец инструкции проца: configure --no-asm-optimization. Это может значительно влиять на производительность но даст PIC из которого можно получить PIE.

Правелные опции компиляции и связывания:
CFLAGS="-fPIE -fstack-protector-all -D_FORTIFY_SOURCE=2"
LDFLAGS="-Wl,-z,now -Wl,-z,relro"

По поводу различий в степени безопасности от ASLR: при использовании x86 - 15-20 бит, x86_64 - 30-40 бит рандомизацию.  15-20 существенно слабее 30-40.

Для проверки готовых бинарники можно использовать программы:
hardened-check
scanelf
paxctl-ng


3. Монтирование дисковых разделов.

Исходя из главного правила построения безопасной ОС все диски должны монтировался с опциями: exec,ro или noexec,rw. Монтирование в режиме exec,rw - даёт возможность изменять исполняемые программы и использовался не должно:
/ /usr /opt - exec,ro,nodev
/home /tmp /var /sys /proc- noexec,rw,nodev
/dev - noexec,rw,dev

Для проверки опций монтирования дисков используем команду:
mount


PS1:
Мнима ли угроза и гарантирования ли защита?!! Мой ответ: угроза реальна, защита гарантирована! Если обладаете необходимыми знаниями, то можете собрать у себя защищённую систему, рекомендуют Gentoo Hardened (есть ньюансы и с первого раза у вас не получится). Далее проверять все эксплоиты которые здесь публикуют как уязвимости и убедится что в вашей системе они не работают, а в других работают.

Пример 2: "Мониторинг (фактически можно считать неким антиворусником)"
https://kb.nocproject.org/plugins/servlet/mobile?contentId=2...

PS2:
Все выше написанное обязательный необходимый минимум знаний для специальностей программирование, системное администрирование, информационная безопасность.

Ответить | Правка | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема



Спонсоры:
MIRhosting
Inferno Solutions
Hosting by Ihor
Хостинг:

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