> В NetBSD ASLR, ты даже абревиатуру толком не знаешь, с 2004-ого года. Уел, бaстард. Я знаю что это и нафига, так что нефиг тут так нагло троллить.
> PIE тогда же. В OpenBSD еще раньше.
Ну я рад за них. Осталось найти хоть один сервак с этим. А то у пингвина все это тоже есть, только хаксоры подобное воркэраундить тоже учатся, если что.
> Это каких, например?
Там при переполнении проблематично скормить какие-то осмысленные аргументы вызываемой функции когда возврат делается. ARMовское ABI предполагает в общем случае передачу параметров в регистрах а не стеке (у ARM в отличие от x86 их довольно много). Если при атаке на стек в случае x86 можно и параметры переписать, то в ARM их надо в регистры впихнуть. А это вообще не адрес в памяти, над записью в регистры у атакующего нет прямого контроля. Это делает возврат в функцию с каким-то осмысленным результатом не то что совсем невозможным, но труднореализуемым и не гарантированным.
В лучшем случае, особо продвинутые хакеры умудряются нащупать последовательности кода которые можно подергать так чтобы ничего не испортилось + в конечном итоге в регистрах все-таки образовалось то что было надо. В этом случае ret2libc и тому подобное даже может прокатить. Однако это весьма трудоемко и наличие такого кода - из разряда "уж как повезет". Все это сильно задирает планку для этого класса атак на ARM. Такая вот маленькая интимная особенность ARM ABI, оказавшаяся недружественной к хакерам любящим дерг кода путем возврата на него.
>> попало фигачить ptrace() вообще без ограничениий?
> Нет. В NetBSD с помощью kauth(9) ptrace можно вообще запретить.
В большинстве культурных дистров линя нынче трассирование процессов юзерем по дефолту вообще откушено (слишком уж много потенциальных проблем) и надо вообще явно разрешать юзеру трейсить свои процессы (что может сделать только рут, записав соотв. значение в файлик ядерного интерфейса). По дефолту трейсить может только рут. Что спасает от массы грабель. Как видите, у пингвиноидов настройки даже пожестче.
> Кроме того, по умолчанию запрещено трейсить процессы из chroot-а,
> даже от root-а. Плюс есть ограничения при разных security levels.
Если вы хотели этим попонтоваться, LXC пожалуй попродвинутее будет с его виртуализацией неймспейсов всех мастей и прочая. Оно вообще ближе к независимым окружениям.
> http://netbsd.gw.com/cgi-bin/man-cgi?security++NetBSD-current
> http://wiki.netbsd.org/kernel_secure_levels/
Ну ок, я должен признать что наезжать на вообще всех бсдшников за пофигизм в секурити - не очень правильно, некоторые все-таки не такие уж и пофигисты в вопросе. Тем не менее, я не вижу что из перечисленного было лучше чем в пингвине, откуда сделаны масштабные выводы о бОльшей защищенности. Пингвины популярны, так что их долбят довольно много. Поэтому от наиболее очевидных типовых напастей они защитились вполне на уровне.