> kauth - не для зашиты от rootkit-ов, а для реализации
> кастомных политик бьезопасности.О руткитах речи не шло. Наличие в системе руткита - следствие её полной компрометации, меры избежания которой я и считаю наиболее важными. Я понимаю, что такое kauth и зачем он нужен. И с практической точки зрения он бесполезен, пока ядро не защищено - по той же причине, по которой бесполезно разделение привилегий: http://www.opennet.ru/openforum/vsluhforumID3/80467.html#102
> Не портировал, а реализовал аналог, глядя на описание на сайте.
> Но закоммитить мне его не дали.
Ага, ясно. Не обратил внимание, что вы дали ссылку на RFC. Что ж, успехов (без иронии)!
> http://www.netbsd.org/docs/kernel/non-exec.html
> Оно?
Оно, спасибо. Поддержка i386 очень огорчает, потому что реализовать полноценный аналог UDEREF можно только на этой архитектуре (из распространённых).
>> полный ASLR
> ASLR есть, урл на ман я давал. Включаемы/Выключаемый per executable или глобально.
Да, я видел. Вопрос в полноте. Обязательно посмотрю на досуге. Ссылку на W^X вы не сразу дали, а сам я поленился поискать. В сумме уже неплохо.
> По умолчанию выключен.
Зря. Маргинализация тех или иных функций обычно плохо сказывается на качестве реализации и поддержки. В случаях с защитой - особенно.
> По умолчанию PIE в компиляторе выключен.
> Установки на сборку демонов в pkgsrc с PIE в обязательном порядке нет.
Зря. Проблемы с поддержкой в дебаггере? Как минимум на amd64 у PIE не должно быть проблем с регистрами и производительностью.
>> и защитой от брутфорса),
> security(7)
> / PaX Segvguard
> Не?
Не совсем. Кроме SIGSEGV нужно "отслеживать" SIGBUS и SIGILL, а также, возможно, SIGKILL (зависит от того, использует ли ядро этот сигнал для убийства процессов за несанкционированные действия). В Grsecurity это сделано проще и без рисков исчерпания памяти ядра: если дочерний процесс умирает по одному из упомянутых сигналов, в task_struct->brute родительского процесса пришется единица, по наличию которой включается 30-секундная задержка при создании потомков. К слову о названии "PaX Segvguard": в оригинальном PaX защита от брутфорса отсутствует, она добавлена именно в Grsecurity (опция GRKERNSEC_BRUTE).
>> а также возможность запретить PROT_EXEC|PROT_WRITE маппинги и mprotect.
> Запретить каким образом? URL?
Это уже сделано в "PaX Mprotect". В ответ на попытку совместить эти флаги в mmap и mprotect возвращается ошибка.
>> На сколько я понял из доков, пока есть только порт
>> PaX MPROTECT и, видимо, частичный W^X (иначе зачем MPROTECT), который не
>> документирован.
> mprotect(2) ?
PaX MPROTECT, заглавными. В оригинальном PaX и вашем security(8) он так и называется. "Не документирован" - это в адрес W^X: добавить пару слов о нём в security(8) не помешало бы.