Профиль: Аноним (вход | регистрация) неRU opennet.me  
OpenNET

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



"Тео де Раадт предложил изменения для ограничения доступа к ФС через функцию openat"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Тео де Раадт предложил изменения для ограничения доступа к ФС через функцию openat"  +/–
Сообщение от opennews (?), 05-Окт-26, 09:42 
Тео де Раадт предложил включить в OpenBSD новый механизм для уменьшения  поверхности атаки, реализованный через расширение возможностей  системного вызова openat. Патчи с реализацией дополнительных флагов для openat и open, ограничивающих возможность перехода к верхним каталогам через "/.." и обращения по абсолютным путям, подготовлены для ядра, libc, а также некоторых приложений из базовой системы. Изменения пока не включены в состав OpenBSD-current и находятся на стадии обсуждения среди разработчиков...

Подробнее: https://www.opennet.me/opennews/art.shtml?num=66401

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

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от Аноним1234 (?), 05-Окт-26, 09:42   –11 +/–
В openbsd нет chroot() ?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #2, #54

2. Сообщение от Вадим Жуковemail (?), 05-Окт-26, 09:50   +8 +/–
chroot меняет видимую структуру каталогов и доступен только для root. Так как если его разрешить использовать обычным пользователям, это само по себе станет вектором для атак: представьте себе, что атакующий воссоздаёт /etc, /usr, /var и т.д. в своей папке, а потом делает chroot и провоцирует срабатывание чужого кода, который честно считывает параметры работы и доступа из, казалось бы, доверенных каталогов.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #14, #17, #21, #53

3. Сообщение от Аноним (3), 05-Окт-26, 09:54   –2 +/–
Почему изначально к системным частям фс и переменным имеют доступ все и каждый?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #4, #5, #10, #11, #23, #36, #50

4. Сообщение от kravich (ok), 05-Окт-26, 10:00   +12 +/–
* история про хакера и солонки *
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

5. Сообщение от Аноним (5), 05-Окт-26, 10:15   –7 +/–
Потому что всем было просто класть на безопасность)
Если почитать воспоминания "отцов основателей" (они же диды бракоделы) про реакцию сообщества программистов на червь морриса, то они там офигенно обделались.
Раньше можно было просто писать забивая на проверки, а теперь придется думать.

Ну и второе, а чего вы хотели от базарной разработки?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #12

6. Сообщение от Аноним (6), 05-Окт-26, 10:15    Скрыто ботом-модератором+/–
Ответить | Правка | Наверх | Cообщить модератору

7. Сообщение от ТабакошкаМойЛюбимыйМультик (?), 05-Окт-26, 10:22   –2 +/–
Кто знает, как получить прямой доступ к файловой системе?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #30, #63

8. Сообщение от Аноним (8), 05-Окт-26, 10:23   –2 +/–
В openbsd нет механизмой apparmor/selinux чтобы можно было сделать ограничения доступа к ФС для процессов?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #24, #43

9. Сообщение от Жироватт (ok), 05-Окт-26, 10:25   +/–
Теперь осталось уговорить всех и каждого писателя софта использовать openat(), вместо привычной и давно указанной во всех пособиях, хендбуках и манах open().

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #18, #26, #62

10. Сообщение от Жироватт (ok), 05-Окт-26, 10:30   +10 +/–
Как и во всех системах - да. Какой путь может отобразить система - на такой и имеют.
Правда, во время реального чтения/записи/траверса ОС применяет ACL и непривилегированная программа просто не сможет даже прочитать закрытый для траверса каталог, но само создание дескриптора через open() это не проверяет - это не его работа.

Так что да, хакер и солонки.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

11. Сообщение от Аноним (11), 05-Окт-26, 10:42   +/–
Ты такие вопросы тоже задаёшь, когда кодишь под огороженный контейнер или его дебажишь?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

12. Сообщение от YetAnotherOnanym (ok), 05-Окт-26, 10:53   +5 +/–
О, а вот ещё один обожжённый исповедями дидов.
Хотел бы я посмотреть работу твоего кода на железе 1970-х гг.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #15, #27, #67

14. Сообщение от Аноним1234 (?), 05-Окт-26, 11:00   +/–
>chroot меняет видимую структуру каталогов и доступен только для root.

chroot запускается без прав суперпользователя в комлпекте с unshare (если речь идёт о Linix).


>Так как если его разрешить использовать обычным пользователям, это само по себе станет вектором для атак: представьте себе, что атакующий воссоздаёт /etc, /usr, /var и т.д. в своей папке, а потом делает chroot и провоцирует срабатывание чужого кода, который честно считывает параметры работы и доступа из, казалось бы, доверенных каталогов

Ничего не понял. Можно на кокретном примере. Допустим я пишу свой http/ftp/smb сервер. Я не хочу, чтобы кто-то получив доступ к нему не мог выбраться в систему (собственно так они и устроены). В чём проблема в том, что хакер подсуент /etc, /usr, /var в домашнюю папаку своего пользователя?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #22

15. Сообщение от User (??), 05-Окт-26, 11:05   –4 +/–
Это как-то отменяет тезис?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12

17. Сообщение от Аноним (17), 05-Окт-26, 11:07   +2 +/–
Сам системный вызов не требует повышенных привилегий, нужна только капа на вызов chroot. Никаких проблем от того что пооцесс с отдельным UID сам себя посадит в отдельный рут нету (ну или не должно быть, если только в ядре не делали какие-то идиотские предположения по этому поводу).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

18. Сообщение от Аноним1234 (?), 05-Окт-26, 11:07   –1 +/–
> Теперь осталось уговорить всех и каждого писателя софта использовать openat(), вместо привычной
> и давно указанной во всех пособиях, хендбуках и манах open().

И сделав тем самым свой софт несовместимый ни с чём кроме беты openbsd либо добавить дефайны типа ifdef OPENBSD_VERSION_XX > YY

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9

19. Сообщение от Аноним (19), 05-Окт-26, 11:08   +2 +/–
Только сразу продумайте, что будет, если в каталоге будет вложенный каталог, который является символической ссылкой на /
А то будет как всегда.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #25

21. Сообщение от Аноним (22), 05-Окт-26, 11:10   +/–
а судо, через которое мы все сидим - не так работает?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #39, #46

22. Сообщение от Аноним (22), 05-Окт-26, 11:12   +3 +/–
> Допустим я пишу свой ... smb сервер...

у нас про безопасность тред или как, лол

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14

23. Сообщение от Аноним (23), 05-Окт-26, 11:21   +5 +/–
Потому что везде проталкивать "безопасность" это ненормально.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

24. Сообщение от Аноним (22), 05-Окт-26, 11:23   +/–
да везде всё есть - на какой-нить винде вы без суперюзера и мусор с родного рута С:\ не вынесите, но вот специально оформленная веб-страница... как пруф могу менее месячной давности новость подложить - плойку5 вскрыли, по-моему также через веб-кит встроенный, что там, итерация фряхи?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8

25. Сообщение от Аноним (22), 05-Окт-26, 11:24   +/–
мечта корпорастов - никакого рута в своей же системе лол
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19 Ответы: #40

26. Сообщение от Аноним (26), 05-Окт-26, 11:27   +/–
Алло, знатоки! openat описана в том же мане, что и open. И в линуксовом тоже, ага.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9

27. Сообщение от Аноним (27), 05-Окт-26, 11:27   –1 +/–
Не приписывай свои фантазии незнакомым людям)

Древним акса-калам на которых так любят наяривать местные было реально пофигу.
Упало? Ну и черт с ним.

Dennis once fed a couple-of-thousand-byte line on standard input to everything in /bin. Crashes abounded, but so what? Wasn't a crash just an ungraceful way for a program to say "I can't handle this"? Not until the Morris worm (1988) did folks wake up to the real danger of overflows.

> Хотел бы я посмотреть работу твоего кода на железе 1970-х гг.

Думаешь tinyAVR мощнее железа на котором ваяли тот же юникс?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12 Ответы: #32, #42, #44, #57

28. Сообщение от Fareast (ok), 05-Окт-26, 11:38   +/–
Интересная тема
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #37

30. Сообщение от Аноним (30), 05-Окт-26, 11:47   +8 +/–
# hexedit /dev/sda
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7

32. Сообщение от qqq (??), 05-Окт-26, 12:47   +1 +/–
> Думаешь tinyAVR мощнее железа на котором ваяли тот же юникс?

у вас уже многопроцессная  и многопользовательская система общего назначения на нем работает? С приемом произвольных данных от произвольных пользователей и возможностью собирать свой код в системе?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27

33. Сообщение от Аноним (33), 05-Окт-26, 13:10   +/–
Не ожидал такого бреда от самого безопасного.

> вызовы openat() с абсолютным путём или с переходом вверх через ".." будут завершаться ошибкой ENOENT

А тео не помнит сколько сотен способов сбежать из линуксового chroot было потому что он на таких проверках строился?

> В случае атаки, приводящей к выполнению кода, таблица файловых дескрипторов процесса будет содержать менее функциональные "dirfd", что будет ограничивать поверхность атаки.

Подумать только. А просто наоткрывать новых дескрипторов при RCE без pledge/unveil кто запретит? Тео изобрёл security through inconvenience.

> но сделать это при помощи функций unveil() и pledge() не представлялось возможным

А может лучше эти изобретения допилить до уровня, где ими можно пользоваться в настоящих приложениях?

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #38, #58, #59

36. Сообщение от Аноним (36), 05-Окт-26, 14:14   +/–
"секур бай дезинг"
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

37. Сообщение от Аноним (36), 05-Окт-26, 14:16   +/–
так он далек от понятия безопасность. За место того, чтобы проектировать по определению (дизайну) безопасную систему, он костыляет курам на смех.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28 Ответы: #61

38. Сообщение от Аноним (36), 05-Окт-26, 14:17   +/–
а шо, тов. майор готов платить больше?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33

39. Сообщение от Аноним (39), 05-Окт-26, 14:18   +/–
> а судо, через которое мы все сидим - не так работает?

Вы - это кто именно? Я вот не сижу, а в #2 вообще пользователь сабжа (т.е. опенка) отметился.
Ну и насчет chroot - оно (как и дыр^W докер) НЕ создавалось для "безопасности".
https://docs.oracle.com/cd/E19455-01/816-3320/6m9k15bha/inde...
> The only use of fchroot() that is appropriate is to change back to the system root

.


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21

40. Сообщение от Аноним (36), 05-Окт-26, 14:19   +/–
ты же без хозяина никак жить не можешь, храни господи хозяина!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25

42. Сообщение от Аноним (42), 05-Окт-26, 15:24   +2 +/–
>Древним акса-калам на которых так любят наяривать местные было реально пофигу.

Так ты сам же врёшь. Во те времена это было не актуально. А раз неактуально то никто на это не обращал внимания. Всё логично. Осозание пришло потом. Люди защищаются в ответ на действия хулиганов. Именно в ответ. И это называется нормальным течением событий. Если бы в те времена, кто-то бы озаботился вопросами безовасности 2026 года, то его посчитали бы сумашедшим.

Спустя полвека, легко критиковать.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27

43. Сообщение от Аноним (42), 05-Окт-26, 15:26   +/–
Тео умный и поэтому посчитал что SELinux это вантузная хернь.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8

44. Сообщение от Инопланетянин (?), 05-Окт-26, 15:34   +1 +/–
> Древним акса-калам на которых так любят наяривать местные было реально пофигу.

Ну современные акса-калы всем покажут как надо? Ведь правда? Ведь покажут же?

Только постойте-ка. Почему то они пользуются наработками древних акса-калов...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27

46. Сообщение от Аноним (46), 05-Окт-26, 16:39   +/–
> мы все

Свидетели убунту?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21

48. Сообщение от Аноним (48), 05-Окт-26, 18:19   +1 +/–
Тео -- сказочный. На полном серьёзе предлагает доверить кодерам правильно ограничить поведение своей программы, которое надо ограничивать в первую очередь потому, что 99% кодеров не могут пройти по массиву не вывалившись за его пределы.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #55, #60, #69

50. Сообщение от Аноним (50), 05-Окт-26, 18:39   +1 +/–
>Почему изначально к системным частям фс и переменным имеют доступ все и каждый?

Потому что UNIX - это про удобство написания программ, а не про создание идеальной "правильной" системы. См. "worse-is-better" и "MIT way vs UNIX way"

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

53. Сообщение от Ivan_83 (ok), 05-Окт-26, 19:17   +/–
chroot может и под юзером работать, как минимум по FreeBSD.
В случае работы от юзера все бинарники с SUID будут проигнорированы или как то так, те об этом уже подумали.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

54. Сообщение от Ivan_83 (ok), 05-Окт-26, 19:18   +/–
Не удобно для всего процесса это делать, особенно если это какой то веб сервер у которого несколько webroot.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

55. Сообщение от Ivan_83 (ok), 05-Окт-26, 19:28   +/–
Точно, нужно доверить это вам и прочим растокодерастам, или вообще ЫЫ, особенно моделям размером до 5гб, ведь они быстрее работают :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #48 Ответы: #64

56. Сообщение от Ivan_83 (ok), 05-Окт-26, 19:36   +/–
Что то я давно думал что оно так и есть, всмысле что подобную связку используют чтобы не свалить парсинг путей на ядро и не дать обойти указанный root который заботливо открыт до того как.

Во фре есть уже O_RESOLVE_BENEATH.
Но да, его надо сувать в каждый openat().

Идея Тэо это добавить этот флаг к dirfd, так что все кто потом его используют в openat() автоматом не смогут обойти ограничение каталога.

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

57. Сообщение от Sem (??), 05-Окт-26, 19:38   +/–
Вообще-то, Денис - самый аксакалистый из аксакалов. И он сделал этот тест как раз, что бы показать проблему. А рукожопов сейчас гораздо болльше, чем было тогда.
Ну и учитывать контекст того времени, когда сэкономить одну инструкцию процессора и один бит памяти казалось важнее всего остального.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27

58. Сообщение от Ivan_83 (ok), 05-Окт-26, 19:38   +/–
Вы бы лучше в рассылке с ним поспорили, к тому же там оно расписано зачем и почему.
Еслик кратко, то как я понял у них не было O_RESOLVE_BENEATH и вместо него они хотят сразу к dirfd клеить флаг что все пользователи dirfd не могут выходить выше.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33 Ответы: #66

59. Сообщение от Ivan_83 (ok), 05-Окт-26, 19:40   +/–
И да, там же в коде есть:

    dirp = opendir(dir);
    if (dirp == NULL)
        return (NULL);
+    fcntl(dirfd(dirp), F_BELOW);

те таким образом они могут запатчить не только тот С код который напрямую юзает openat(), но опосредованно через openat() похороненый в недрах libc.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33

60. Сообщение от ТабакошкаМойЛюбимыйМультик (?), 05-Окт-26, 19:40    Скрыто ботом-модератором+/–
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #48

61. Сообщение от Ivan_83 (ok), 05-Окт-26, 19:41   +/–
Идея то годная, просто вы не читали оригинал письма и не поняли сути.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37 Ответы: #65

62. Сообщение от Ivan_83 (ok), 05-Окт-26, 19:42   +/–
Предложение Тэо работает и с opendir() и всеми производными который потом DIR* употребляют.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9

63. Сообщение от Ivan_83 (ok), 05-Окт-26, 20:03   +/–
В озвучке дримкаста смотрел?)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7

64. Сообщение от Аноним (48), 05-Окт-26, 20:08   +/–
Ну раз про другие варианты ты не в курсе, то видимо придётся раст и "вообще ЫЫ". По перечисленному в принципе виден уровень "развития" и "профессионализма", неясно только зачем ты так старательно выпячиваешь это на публичном форуме. Ещё до "вообще ЫЫ" HRы пользовались примитивным ML позволявшим по популярным форумам и соцсетям искать сообщения, похожие на стиль писанины соискателя. Смекаешь?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #55 Ответы: #70

65. Сообщение от Аноним (36), 05-Окт-26, 20:12   +/–
> Идея то годная

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #61 Ответы: #72

66. Сообщение от Аноним (36), 05-Окт-26, 20:14   +/–
> Вы бы лучше в рассылке с ним поспорили, к тому же там оно расписано зачем и почему.

Зачем мешать глупцам совершать глупости? и с какого, он будет делать то, что вы хотите? Он делает ровно то, что ему прикажут!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #58 Ответы: #71

67. Сообщение от Аноним (67), 05-Окт-26, 21:08   +/–
> на железе 1970-х гг.

Xerox Alto

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12

68. Сообщение от жявамэн (ok), 05-Окт-26, 23:34   +2 +/–
Тео бох
Ответить | Правка | Наверх | Cообщить модератору

69. Сообщение от Аноним (69), 05-Окт-26, 23:39    Скрыто ботом-модератором+/–
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #48

70. Сообщение от Ivan_83 (ok), 06-Окт-26, 00:31   +/–
Те меня типа должно волновать ваше мнение о моей персоне?
Или я должен быть зашуганным и прятатся под анонимом?
Вы видать с хубра, там такого зашуганства полным полно.

Для хрюнов у меня линкедин и гитхуб, там видны мои достижения на практике.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #64

71. Сообщение от Ivan_83 (ok), 06-Окт-26, 00:32   +/–
Так там вас Тео "от...убедит" короче. А тут вы боксируете с тенью.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #66 Ответы: #74

72. Сообщение от Ivan_83 (ok), 06-Окт-26, 00:33   +/–
какой то нейрослоп.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #65 Ответы: #73, #75

73. Сообщение от Аноним (36), 06-Окт-26, 02:31    Скрыто ботом-модератором+/–
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #72

74. Сообщение от Аноним (36), 06-Окт-26, 02:33   +/–
знать не знаю его, знаю только Тео Эрнандеса, французский футболист :))
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #71

75. Сообщение от онанас (?), 06-Окт-26, 02:38   +/–
все мы, так погрязли в ии, что стали забывать - имитаторы интеллекта и мясными бывают )
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #72


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

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




XSQUARE
Inferno Solutions
Hosting by Hoster.ru
Хоcтинг: