LINUX.ORG.RU
ФорумTalks

Математика учета времени

 , ,


0

3

По сообщению cnet.com в OS X найден баг у комманды sudo засчет перестановки даты на начало времен: первое января 1970. Суть бага: в течении 10 минутного промежутка времени с момента успешной аутентификации sudo можно запускать комманды без аутентификации. В то время как время установлено на начало времен данная проверка приводит к успешному результату. Баг работает в версиях OS X 10.7-10.8.4, CVE-2013-1775

Поскольку в мак ос икс установка времени не требует привилегированных прав данная уязвимость имеет место быть. За отсутствие аналогичного поведения настроек даты и времени в DE Линус Торвальдс критиковал комманду Gnome (дочка не могла без прав root изменить дату и допекла папу):

So here's a plea: if you have anything to do with security in a distro, and think that my kids (replace «my kids» with «sales people on the road» if you think your main customers are businesses) need to have the root password to access some wireless network, or to be able to print out a paper, or to change the date-and-time settings, please just kill yourself now. The world will be a better place.

★★★★★

Последнее исправление: gh0stwizard (всего исправлений: 2)

в мак ос икс установка времени не требует привилегированных прав

о времена, о нравы!

x0r ★★★★★
()
Ответ на: комментарий от x0r

в мак ос икс установка времени не требует привилегированных прав

о времена, о нравы!

это ок. почему бы каждому пользователю не иметь время в разных часовых поясах?

Stil ★★★★★
()
Ответ на: комментарий от Stil

выбор часового пояса для отображения и установка системного времени - это разные вещи

alpha ★★★★★
()
Ответ на: комментарий от x0r

На деле проблема решается иначе: системное время должно быть одно: по Гринвичу и контролироваться только через ntp (+ root only). Пользовательское время всегда считается отдельно (отдельные сисколлы, функции, классы и т.п) поверх него. Проблема в sudo в том, что автор не ожидал, что кто-то будет играться со временем. Как вариант можно было использовать часы от BIOS, но вот незадача: их тоже можно менять без паролей :)

gh0stwizard ★★★★★
() автор топика
Ответ на: комментарий от x0r

есть еще и глухие деревни где с интернетом тяжко

snaf ★★★★★
()
Ответ на: комментарий от segfault

Начнем с того, что эта ерундовина с таймаутом - уже уязвимость.

++

geekless ★★
()

Поскольку в мак ос икс установка времени не требует привилегированных прав

и это УЖЕ дыра.

в DE Линус Торвальдс критиковал комманду Gnome (дочка не могла без прав root изменить дату и допекла папу):

So here's a plea: if you have anything to do with security in a distro, and think that my kids (replace «my kids» with «sales people on the road» if you think your main customers are businesses) need to have the root password to access some wireless network, or to be able to print out a paper, or to change the date-and-time settings, please just kill yourself now. The world will be a better place.

Это он про другое говорил. Зачем из контекста вырываешь-то? Он там часовой пояс не мог поправить. Вот оригинал, который ты переврал:

I think the wireless network thing finally did get fixed, but the timezone never did - it still asks for the admin password.

Это кривые руки, разгильдяйство и лень маинтейнеров suse, ибо смена часового пояса никогда и НЕ требовала прав рута. Каждый юзер может поставить себе свой пояс, так всегда было. И этим всегда пользовались на серверах, которые обслуживали юзеров из разных поясов. Вот только часового пояса с 1970м годом нет. И файлов из будущего ты тоже так не сделаешь (меняя часовой пояс ты НЕ меняешь причинно-следственную связь, сам можешь проверить, если тебе интересно. А вот меняя время, ты причинно следственную связь меняешь. Для sudo получается, что файл который она создала, она ЕЩЁ НЕ создала)

И да, макось РЕШЕТО.

emulek
()
Ответ на: комментарий от emulek

Это кривые руки, разгильдяйство и лень маинтейнеров suse, ибо смена часового пояса никогда и НЕ требовала прав рута. Каждый юзер может поставить себе свой пояс, так всегда было.

Ога. А если кто-то сомневается, то тут вот скучным языком описано в подробностях: http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap08.html

geekless ★★
()
Ответ на: комментарий от segfault

Начнем с того, что эта ерундовина с таймаутом - уже уязвимость.

4.2

во первых, если тебе это не нравится, это не обязательно включать.

во вторых, лучше один раз набрать пароль, чем набирать его Over9000 раз. Враг-то не дремлет!

в третьих, если я имею право действовать от имени XXX, и я это доказал, то надо быть идиотом, что-бы требовать это доказательство через 10 секунд и от меня же.

emulek
()
Ответ на: комментарий от Stil

это ок. почему бы каждому пользователю не иметь время в разных часовых поясах?

ну вот ещё один, не понимающий разницу между часовым поясом и временем.

emulek
()
Ответ на: комментарий от emulek

во вторых, лучше один раз набрать пароль, чем набирать его Over9000 раз. Враг-то не дремлет!

Вот и набери sudo su - , а когда закончишь все дела, набери exit. Таймуаты — это полнейший идиотизм.

geekless ★★
()
Ответ на: комментарий от Stil

родственники из Хабаровска на неделю

скорее — ты в Хабаровске у родственников. Для этого разве обязательно лезть в настройки системы с правами рута? Конечно нет!

emulek
()
Ответ на: комментарий от gh0stwizard

Проблема в sudo в том, что автор не ожидал, что кто-то будет играться со временем.

ты сам-то понял, что сказал? НЕ ОЖИДАЛ, блжад! А кто может ожидать, что ВСЕ файлы будут созданы В БУДУЩЕМ? Включай голову, и думай: такое возможно только если есть машина времени.

ОЖИДАТЬ машину времени это само по себе TIMEPARADOX и деление на ноль. Если машина времени есть, то мы о ней УЖЕ знаем, т.к. какой-нить дурак вернётся в прошлое, и всем расскажет с пруфами(например в виде карманного квантового компьютера с носителем на 256петабайт)

emulek
()
Ответ на: комментарий от gh0stwizard

Как вариант можно было использовать часы от BIOS, но вот незадача: их тоже можно менять без паролей :)

что-бы их менять нужен локальный ФИЗИЧЕСКИЙ доступ к железяке, а если у тебя такой доступ есть, то и root у тебя тоже есть. Никаких исключений.

Дочурка Линуса могла взять slax на флешке, и оттуда сделать hwclock.

emulek
()
Ответ на: комментарий от geekless

Ога. А если кто-то сомневается, то тут вот скучным языком описано в подробностях:

ну и описано. Но оно работает _только_ для _визуального_ вывода даты. Причинно-следственную связь это никак НЕ меняет. Даты из прошлого останутся в прошлом. Такая ерунда у нас раньше дважды в год была, сейчас, хвала Пу, это отменили. А вот сервера в незалежной до сих пор «переводят», и всё там работает. Даже sudo.

emulek
()
Ответ на: комментарий от emulek

Разупорина прими. Программа должна максимально корректно работать при любых входных данных, если это конечно не быдлокоды, достойные местного раздела dev.

В случае программы, обеспечивающей авторизацию, максимально корректным поведением является «в любой непонятной ситуации — запрещай всё».

Перевод часов — это настолько стандартные грабли, что удивительно, как вообще на них могли наступить люди, которые вроде бы пишут серьёзный софт. (sudo — это системный компонент, на минуточку, а не очередной плеер на пистоне.)

geekless ★★
()
Ответ на: комментарий от geekless

Вот и набери sudo su - , а когда закончишь все дела, набери exit. Таймуаты — это полнейший идиотизм.

sudo su это дыра. Потому-что для этого надо разрешать ВСЕ команды, а вообще говоря sudo умеет разрешать только некоторые. И ещё ведёт лог. Ну а что делал юзер после su известно только этому юзеру.

И да, а что мне делать с gpg например? Там su нет.

emulek
()
Ответ на: комментарий от emulek

«Некоторые» команды вообще должны быть с NOPASSWD. А то какая-то херня получается: я уже аутентифицировался при логине в систему, мне разрешено выполнять некоторые привилегированные команды, но чтобы их выполнить, нужно пройти дополнительную авторизацию.

geekless ★★
()
Ответ на: комментарий от geekless

Разупорина прими. Программа должна максимально корректно работать при любых входных данных, если это конечно не быдлокоды, достойные местного раздела dev.

это ты прими. TIME PARADOX и файлы в будущем это УЖЕ некорректные входные данные. Случай полностью эквивалентен делению на ноль, как не крути, но посчитать не получится.

В случае программы, обеспечивающей авторизацию, максимально корректным поведением является «в любой непонятной ситуации — запрещай всё».

TIME PARADOX чреват тем, что некорректными становятся ВСЕ ситуации. Да, это неплохой и годный тест на безопасность. Проблема только в том, что в общем случае он не разрешим.

Перевод часов — это настолько стандартные грабли, что удивительно, как вообще на них могли наступить люди, которые вроде бы пишут серьёзный софт. (sudo — это системный компонент, на минуточку, а не очередной плеер на пистоне.)

Это не грабли, это ППЦ. Потому-то и запрещается менять пользователям время. Ты просто не осознаёшь масштабов этих «игор», перевод времени рушит ВСЮ и ЛЮБУЮ логику. Но не всякий, а только некоторые переводы рушатся. Если меняется часовой пояс, то файл созданный 5 минут назад так и остаётся созданным пять минут назад, смена часового пояса имеет «обратную силу». Но если ты тупо крутишь стрелки часов, то файл созданный 5 минут назад оказывается созданным в будущем, а это само по себе не имеет НИКАКОГО смысла.

emulek
()
Ответ на: комментарий от geekless

«Некоторые» команды вообще должны быть с NOPASSWD. А то какая-то херня получается: я уже аутентифицировался при логине в систему, мне разрешено выполнять некоторые привилегированные команды, но чтобы их выполнить, нужно пройти дополнительную авторизацию.

ты пойми разницу между «мне разрешено» и «разрешено вирусам, которые я нацеплял». Пойми, для системы ты и твой вирус неразличимы, и это типа как на сайтах галочка «я не бот» и/или капча.

Т.е. NOPASSWD нужно ставить тогда, и только тогда, когда данное действие разрешается не только тебе лично, но и всем программам, которые работают от твоего имени.

emulek
()
Ответ на: комментарий от emulek

ты пойми разницу между «мне разрешено» и «разрешено вирусам, которые я нацеплял».

...сказал пользователь системы, в которой любой клиент может слушать весь иксовый ввод.

Запомни: если ты в иксах вводишь куда-то пароль, то ты автоматически признаешь, что если в этот момент в компьютере есть «вирусы», то они только что узнали твой пароль и теперь могут делать ЧТО УГОДНО от твоего имени.

geekless ★★
()
Ответ на: комментарий от emulek

4.2

Ога, один раз набрал, а потом не заметил как sudo пролез во вредоносном скрипте. Всё таки ничего лучше UAC пока не изобрели. И удобно (пароль не надо вводить) и подменить в принципе не возможно.

Reset ★★★★★
()

Правильнее было бы дать возможность пользователю запустить синхронизацию времени с ntp сервером из некоторого списка.

rezedent12 ☆☆☆
()
Ответ на: комментарий от Reset

Осталось найти того героя, который реализует в иксах механизмы, необходимые для разработки UAC... :(

geekless ★★
()

Разработчики sudo о монотонных часах слыхом не слыхивали?

shimon ★★★★★
()
Ответ на: комментарий от emulek

Вот из-за таких потом всё виснет при наступлении каких-нибудь секунд координаций.

wintrolls ☆☆
()
Ответ на: комментарий от emulek

некорректные входные данные. Случай полностью эквивалентен делению на ноль

В случае деления на ноль (как и любых других некорректных данных) ошибку нужно обработать, а не валиться как какой-нибудь первопень.

wintrolls ☆☆
()
Ответ на: комментарий от emulek

Для sudo получается, что файл который она создала, она ЕЩЁ НЕ создала

Разупорись. Кто мешал разработчику sudo сделать проверку времени создания этого файла и если оно больше текущего — посылать пользователя лесом до повторного ввода пароля?

wintrolls ☆☆
()
Ответ на: комментарий от emulek

перевод времени рушит ВСЮ и ЛЮБУЮ логику

man CLOCK_MONOTONIC

x3al ★★★★★
()
Ответ на: комментарий от wintrolls

Нафига оно вообще создаёт файл? Нужно демонизироваться, отсчитывать интервал через CLOCK_MONOTONIC и забивать на то, что там в ФС происходит.

x3al ★★★★★
()
Ответ на: комментарий от geekless

«Некоторые» команды вообще должны быть с NOPASSWD. А то какая-то херня получается: я уже аутентифицировался при логине в систему, мне разрешено выполнять некоторые привилегированные команды, но чтобы их выполнить, нужно пройти дополнительную авторизацию.

Ты и прав и не прав одновременно.

Прав, потому что в идеальном мире всё действительно так. Ты представился системе (аутентификация), дальше можешь выполнять всё, что разрешено (авторизация).

Не прав, потому что ты можешь делегировать свои права какому-нибудь скрипту, который, в свою очередь, может захотеть выполнить rm -fr /* от твоего имени. В таком случае повторная аутентификация совсем не лишняя, особенно, если это происходит за пределами твоего локалхоста.

cruxish ★★★★
()
Ответ на: комментарий от x3al

В принципе, тоже нормальный вариант. [noob]А в макоси есть CLOCK_MONOTONIC?[/noob]

cruxish ★★★★
()
Ответ на: комментарий от geekless

rm чего-то — да. А rm просто —нет.

Ладно, мы уже и так ушли от темы макакос. :-) Там юникс с человеческим лицом, и sudoers не надо править.

cruxish ★★★★
()
Ответ на: комментарий от geekless

Эк вас от правды-то перекашивает.

Это больше оффтопик, чем правда.

cruxish ★★★★
()
Ответ на: комментарий от x3al

Нафига оно вообще создаёт файл? Нужно демонизироваться, отсчитывать интервал через CLOCK_MONOTONIC и забивать на то, что там в ФС происходит.

ты никогда не думал, что лишние демоны, которые работают с правами root'а, это лишняя дыра в безопасности? И что для такой простой задачи, как сохранить пароль(какую-нить куку точнее) пользователя, вешать лишний демон — полный бред?

Начнём с того, что этот твой демон злоумышленник может просто за dos'ить, завалив его своими запросами. Не важно, что именно делает злоумышленник, важно, что одминистратор никак на это повлиять не может, ибо время одно, демон один, и он занят выполнением каких-то тупых задач какого-то дебила. А тебе просто к демону-sudo не пробиться.

emulek
()
Ответ на: комментарий от emulek

лишние демоны, которые работают с правами root'а, это лишняя дыра в безопасности

Лучше, чем лишние SUID-бинарники, доверяющие внешним файлам.

Начнём с того, что этот твой демон злоумышленник может просто за dos'ить, завалив его своими запросами.

А ещё злоумышленник может заюзать fork bomb. Кто ему даст права на запись в per-user сокет? В идеале, конечно, это делается в пользовательском неймспейсе (man pam_namespace), но крупные дистрибутивы не спешат внедрять это.

ибо время одно, демон один, и он занят выполнением каких-то тупых задач какого-то дебила

Эмм. Кто сказал, что демон один? Да и он не обязан быть запущенным всё время, только указанное в конфиге же.

x3al ★★★★★
()
Ответ на: комментарий от Reset

Всё таки ничего лучше UAC пока не изобрели

ога. дырявая, но параноидальная. в этом плане некрософт ушла далеко вперед.

Ford_Focus ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.