herm1t LIVE!ng room - Unix security [entries|archive|friends|userinfo]
herm1t

[ website | twilight corner in the herm1t's cave ]
[ userinfo | ljr userinfo ]
[ archive | journal archive ]

Unix security [Nov. 9th, 2013|06:28 pm]
Previous Entry Add to Memories Tell A Friend Next Entry
[Tags|, , , , , , , ]

Заинтересовался собственно вопросом, а как бы оторвать LD_PRELOAD и ptrace каким-нибудь штатным образом. Нашел только ответ Кокса, о том, что неотрываемость оных - is the normal Unix model. Normal, блядь, model. За 15+ лет работы с юниксами, мне один раз понадобился LD_PRELOAD для более или менее "нормальной" задачи, а вот не очень нормальных я знаю вагон. =)
LinkLeave a comment

Comments:
From:[info]cr4sh-0x48k.livejournal.com
Date:November 10th, 2013 - 03:01 pm
(Link)
Можно же отключить и то и другое с помощью штатного selinux, не?
[User Picture]
From:[info]herm1t
Date:November 10th, 2013 - 09:44 pm
(Link)
Selinux такое угребище, что его отключают в первую очередь =)
[User Picture]
From:[info]ketmar
Date:November 11th, 2013 - 09:00 pm
(Link)
ну, ты ещё предложи простуду отрубанием ног лечить.
[User Picture]
From:[info]herm1t
Date:November 12th, 2013 - 03:55 pm
(Link)
бгг:
http://stopdisablingselinux.com/
и ведь действительно, все вопросы об этом крокодиле сводятся к тому, как его выключить. :-)
[User Picture]
From:[info]ketmar
Date:November 12th, 2013 - 04:10 pm
(Link)
ага. и ещё часто ответы на форумах я видел, ктогда что-то сильно не так: «а ты пробовал selinux вырубить? так работает?»

вообще, как я у себя писал недавно, все эти access controls — это костыли, родившееся от того, что в массы пошла дурная привычка повышать привилегии непривелигерованым юзерам. соответственно, стандартная система разрешений не справляется, и приходится городить ещё одну поверх.

а по уму — надо было бы сделать так, чтобы на сисколы можно было устанавливать обычные никсовые права через какой-нибудь интерфейс в /sys. и если рут отобрал у себя право на запись к сисколу, то уже даже рут себе права поменять на него не может, гыг.
[User Picture]
From:[info]herm1t
Date:November 12th, 2013 - 04:18 pm
(Link)
"это костыли"

для убогой системы прав. 3*3+3 - это убожество.

ACL (но вменяемые) - это очень неплохо.

а MAC с integrity/confidentiality это военно-бюрократические игрища.

есть capabilities... знаю, все знаю. :-)

по-хорошему, нужно несколько дополнительных настроек в ядре/sysctl, и умолчанию по ним, расчитанные не на devel, а на production. а с точки зрения безопасности, пригодились бы простые ACL, и отдельный вариант загрузки для работы с правами, чтобы базы пакетов, настройки, ACL хранились отдельно и были недоступны никому, даже руту.

ну хоть kmem, kallsyms попрятали :-)))

"то уже даже рут себе права поменять на него не может,"

vi syscall_permissions.conf
reboot
:-)
[User Picture]
From:[info]ketmar
Date:November 12th, 2013 - 04:24 pm
(Link)
>то уже даже рут себе права поменять на него не может
я имел в виду — до ребута. %-)

>3*3+3 - это убожество
да ладно. местами ужас, конечно, но не ужас-ужас-ужас. не хватает разве что возможности указать, что некий юзер «менее привилегированый» чем другой (т.е. иерархии) — для того, чтобы в «порезаного» юзера можно было дропнуться без рута. ну, и для групп то же самое.

или обвесить всё ядро ACL-ками — но это, кажется, и делают всякие LSM-ы.

я думаю, что для практических целей во многих случаях было бы достаточно иерархии пользователей/групп. запустилась софтина, провела свой инит и дропнулась в порезаного юзера. и всё.
From:[info]cr4sh-0x48k.livejournal.com
Date:November 13th, 2013 - 02:30 am
(Link)
Да, отрубание и отстреливание ног -- как-то само собой приходит в голову при первом знакомстве с ним.
[User Picture]
From:[info]ketmar
Date:November 11th, 2013 - 08:59 pm
(Link)
для ptrace, вроде бы, есть ограничение «неруту низя!» где-то в той куче хлама, что ядро в /sys кажет.

а вообще ptrace оторвать никто не даст, без него upstart'у плохо и вообще. ну, у нас же современная ось, а не пенис канина, поэтому более нормального способа отслеживать всякие там форки и ты пы, что нужно для service manager — нет.
[User Picture]
From:[info]herm1t
Date:November 12th, 2013 - 03:36 pm
(Link)
это ужасно, я пользуюсь осью, которую делают извращенцы!!! =))))
пока смотрел, как отрывать ptrace нашел дивный LKM, который ищет SC entry для ptrace через SIDT и поиск по стандартному прологу. #facepalm
[User Picture]
From:[info]ketmar
Date:November 12th, 2013 - 04:05 pm
(Link)
>это ужасно, я пользуюсь осью, которую делают извращенцы!!!
таки да. и я тоже.

>ищет SC entry для ptrace через SIDT и поиск по стандартному прологу
господибожемой. как хорошо, что я атеист — а то пришлось бы верить в бога, который полнейший дегенерат и создал по подобию своему кучу дегенератов.

слушай, а зачем тебе вообще ptrace отрывать? просто интересно.
[User Picture]
From:[info]herm1t
Date:November 12th, 2013 - 04:10 pm
(Link)
> слушай, а зачем тебе вообще ptrace отрывать? просто интересно.

мне-то не нужно, просто прикидывал, что нужно сделать, чтобы усложнить написание мальвари под юникс, и LD_*/ptrace - это прежде всего инжекты, а отладка в production-системе нафиг не нужна.
[User Picture]
From:[info]ketmar
Date:November 12th, 2013 - 04:13 pm
(Link)
ну, я так и предполагал.

(ехидно) ну делов-то: пишем инжектор, который из-под рута патчит ядро, отрубая ptrace и пытается прописаться/заменить собой ld.so, обрубая LD_PRELOAD. кто сказал «костыли для костылей»?!
[User Picture]
From:[info]herm1t
Date:November 12th, 2013 - 04:22 pm
(Link)
ты будешь смеятся, но именно так и делают.
http://www.hackinglinuxexposed.com/tools/p/noptrace.c.html
тысячи их.

только про ptrace помнят многие (уж очень хороший был сплоит =),
а LD_* пока недооценивают.
[User Picture]
From:[info]ketmar
Date:November 12th, 2013 - 04:28 pm
(Link)
>а LD_* пока недооценивают
это да. мне вон при помощи LD_PRELOAD на некоей железяке как-то давно удалось наебнуть систему проверки лицензий, тупо заоверрайдив библиотеку проверки. они там, кажется, даже контрольные суммы этой библиотеки пытались проверять. а про то, что я могу просто сесть выше и не патчить их уже ненужный код — забыли.