В версиях FreeBSD 7.1, 7.2, 8.0 подтверждено (http://permalink.gmane.org/gmane.os.freebsd.announce/478) наличие опасной уязвимости (http://www.securityfocus.com/bid/37154), позволяющей локальному непривилегированному злоумышленнику выполнить код с правами суперпользователя.
Уязвимость вызвана возможностью, при выполнении suid-программы через функцию execl(), запуска с повышенными привилегиями _init блока сторонней библиотеки, загруженной злоумышленником через подстановку переменной окружения LD_PRELOAD. По умолчанию при выполнении suid программ производится очистка опасных переменных окружения, но из-за ошибки в коде проверки успешности операции очистки переменных, имелась возможность передачи LD_PRELOAD вкупе с некорректно оформленным окружением.По предварительной информации уязвимости подвержены ветки FreeBSD 7.x и 8.x, для версий FreeBSD 4.9 и 6.3 проблема не проявляется, но, судя по коду, версия FreeBSD 6.4 является уязвимой. Опасность уязвимости многократно возрастает...
URL: http://www.theregister.co.uk/2009/12/01/freebsd_root_bug/
Новость: http://www.opennet.me/opennews/art.shtml?num=24466
Ну, дырка, всё понятно. У всех бывает.Но непонятно несколько иное:
"...позволяющей локальному непривилегированному злоумышленнику выполнить код с правами суперпользователя."1. Почему человек, пользующий уязвимость - обязательно ЗЛОумышленник?
2. Неужто "локальный непривилегированный _пользователь_" не может "выполнить код с правами..."?Как-то несколько предвзято в этой фразе насчёт тех, кто будет пользоваться дырой...
> 1. Почему человек, пользующий уязвимость - обязательно ЗЛОумышленник?Наверное потому что легитимному администратору не требуется повышать свои права через дыры а повышение прав обычным пользователем - это как правило нежелательная и вредная активность.
>Наверное потому что легитимному администратору не требуется повышать свои права через дыры
>а повышение прав обычным пользователем - это как правило нежелательная и
>вредная активность."Почему стол - деревянный?" - "Потому что, как правило, он деревянный"
Ещё раз: почему обязательно _ЗЛО_умышленник если пользует дыру? Обязательно ли пользователь дыры замыслил зло?
Если я кому-то даю ограниченные права, я не хочу чтобы у него была возможность получить права суперпользователя... Хотя бы из-за наличия на данном компьютере некоторой конфеденциальной информации.
>...Хотя бы из-за наличия на данном
>компьютере некоторой конфеденциальной информации.Ну, это понятно. Подобных причин можно найти не одну.
>Если я кому-то даю ограниченные права, я не хочу чтобы у него
>была возможность получить права суперпользователя...Да, возможно и не хотите. Но Ваше [не]желание - лишь источник
Вашего управленческого воздействия на объект "Операционная система".
Т.е. Вы - субъект управления, а ОС (ну, и компьютер) - объект[ы].И совсем уже неважно: то ли ваше качество управления этим объектом было недостаточным,
чтобы не допустить неприемлемого вам его поведения,
то ли Вы недостаточно понимаете и изучили поведение и устройство объекта управления,
а потому делаете неверные прогнозы его поведения под Вашим управлением.
В обоих случаях возможны срывы управления (т.е. катастрофическое и непредсказуемое _для_Вас_ его поведение).
Это всё достаточно общая теория управления.
Практически, в случае данной новости - самипрограммисты и администраторы недостаточно изучили объект, с которым они работают и не знали заранее о её таком свойстве, _непредвиденном_ для них заранее (пока систему в продакшн не поставили).Вобщем, нельзя сказать, что пользователь объективного свойста ОС - ЗЛОумышленник.
Ведь вионвен в _непредсказуемости_ поведения системы для админа не он :) а те, кто не обладал достаточными качествами и знаниями того, чем управляют.В простонародии - это называется ССЗБ. Но видить проблему в себе для большинства сложнее, чем указать пальцем на некоего "негодяя", обернувшим поведение системы непредсказуемым для админа образом.
Т.е. ключ новости в словах "недостаточная проверка переменных окружения". А соответственно, и продолжать логическую линию нужно в сторону "а что же делать, чтобы проверки всегда были _достаточными_?"...
> Почему человек, пользующий уязвимость - обязательно ЗЛОумышленник?Потому что у добронамеренного пользователя нет причин использовать уязвимости.
>> Почему человек, пользующий уязвимость - обязательно ЗЛОумышленник?
>
>Потому что у добронамеренного пользователя нет причин использовать уязвимости.Так называемая "уязвимость" - это объективное свойство системы.
Не вижу причин, человека, _правильно_ понимающего работу системы (т.е. её объективное поведение и свойства) - считать злым.
Т.е. считать злым того, кто изпользует дыру - это зло _субъективное_, с точки зрения админа системы, и не более. Ничего другого в отношении пользователя дыры в самом общем случае сказать нельзя.
Предлагаю Вам предложить исправить новость следующим образом:
"Уязвимость вызвана возможностью, при выполнении suid-программы через функцию execl(), запуска с повышенными привилегиями _init блока сторонней библиотеки, загруженной злоумышленником *** и не только злоумышленником *** через подстановку переменной окружения LD_PRELOAD. По умолчанию при выполнении suid программ производится очистка опасных переменных окружения, но из-за ошибки в коде проверки успешности операции очистки переменных, имелась возможность передачи LD_PRELOAD вкупе с некорректно оформленным окружением. "*** отмечены исправления ***
Так лучше? =)
Вопрос же ведь не в том, кто как использует дыру, в том, что ЗЛОУМЫШЛЕННИК __МОЖЕТ__ использовать это в своих злоумышленных интересах.
>Вопрос же ведь не в том, кто как использует дыру, в том,
>что ЗЛОУМЫШЛЕННИК __МОЖЕТ__ использовать это в своих злоумышленных интересах.А при чём тут тогда фрибзд? :)
Раз проблема в том, что ЗЛОумышленник МОЖЕТ изпользовать различные средства чтобы творить зло?>Предлагаю Вам предложить исправить новость следующим образом:
>"Уязвимость вызвана возможностью...."Спасибо.
Но я бы лишь больше сконцентрировал текст новости на описании объективного поведения
ОС в тех или иных условиях, уйдя от разсуждений о том со злым, ли добрым умыслом _может_быть_ изпользована та или иная объективная способность системы (даже если эта способность не планировалась производителем). Примено так:
"...недостаточная проверка переменных окружения позволяет выполнить произвольный код от имени владельца SUID бинаря. Достаточно лишь иметь права запуска этого бинаря.".
1. Вы используете дыры для решения административных задач?
2. Там говориться не о _пользователе_, а о _злоумышленнике_.
>1. Вы используете дыры для решения административных задач?вопрос не по сути.
По сути был бы: "а администратор сервера всегда - добро, а пользователь уязвимости - зло?"
И вот на этот вопрос ответ: нет, это не всегда так, нужно смотреть для чего установлена и поддерживается система этим администратором (к примеру, задефейсить сайты какой-нить RIAA - это добро).>2. Там говориться не о _пользователе_, а о _злоумышленнике_.
Тогда суть новости неполна. Потому как и пользователь, также, может возпользоваться дырой, а не только зло-добро-умышленник.
> И вот на этот вопрос ответ: нет, это не всегда так, нужно смотреть для чего установлена и поддерживается система этим администратором (к примеру, задефейсить сайты какой-нить RIAA - это добро).Цель оправдывает средства? Ну и чем же вы лучше их?
> Ну и чем же вы лучше их?Они проявляют агрессию по отношению к невинным людям,
а "мы" - по отношению к агрессору.
Ты ничего не слышал про законы, которые не нужно нарушать?
>Ты ничего не слышал про законы, которые не нужно нарушать?Законно-незаконно и добро-зло - разнокачественности.
Законодательство на Земле нонче, в основном, античеловечное,
а потому, вполне легко можно насчитать 4 варианта ситуаций:
- законное добро
- незаконное добро
- законное зло (думаю, никто не станет отрицать, что много чего есть злого, закреплённого юридически...)
- незаконное зло
Добро и зло - понятия относительные, ты это понимаешь? Стало быть, при принятии каких-то решений придётся неизменно вставать на чью-либо сторону в конфликте только для того, чтобы решить что добро, а что - зло. Чтобы избежать этого, человечество придумало законы. Неидеальное решение, куча проблем и т.д. и т.п., но оно как-то работает и позволяет избегать анархии. И всё время находится кто-то, кто Лучше Знает Как Надо. И говорит - фигня вопрос, я ща всё решу с позиции Добра и Зла, а также вечной Истины. А потом ему ставят такой, например, вопрос: А как будет добрее - поднять пенсии сейчас на 100 рублей, или вложить эти деньги в развитие и через полгода поднять на 1000?; или: А можно вершить самосуд из мести, если Ты Точно Знаешь (или Сто Пудов Уверен), что обидчик виноват?; или: А можно я вон тому мужику в репу дам - он косо на меня смотрит? И пока этот наш герой думает над этими вопросами, ему приходит время заканчивать завтрак и идти в школу.
>Добро и зло - понятия относительные, ты это понимаешь?Очень хорошо, что Вы сразу указали на расхождения в наших взглядах.
Я считаю, что есть объективные добро и зло (предопределены для всех Создателем),
ну и, ессьно, есть субъективные добро и зло - это то, что каждый _может_считать_для_себя_ хорошим или плохим. субъективные добро и зло _могут_ совпадать с объективными (ну, а могут и не совпадать... но не становясь при этом объективными).
Относительные добро и зло - могут быть лишь субъектинвыми (к примеру, приемлема логика типа "это хорошо, что вот этот чел дал тому по голове, а вот что этот дал тому - не хорошо"). Объективное добро и зло одинаково для _всех_.Ну, а законы, принятые руководствами стран - чистый субъективизм, который в частях совпадения и несовпадения с объективными добром - и порождает 4 вида оценок, упомянутые мной выше (законно-незаконно x добро-зло).
>Стало быть, при
>принятии каких-то решений придётся неизменно вставать на чью-либо сторону в конфликте
>только для того, чтобы решить что добро, а что - зло.Субъективное добро-зло - пожалуйста.
Но мне оно неинтересно ввиду неуниверсальности (у каждого человека к каждому человеку субъективное добро-зло может быть своим...) и не обязательной неадекватности объективному добру-злу (т.е. можно думать, что прав, на самом деле ошибаясь...).Кроме того, а неужели не может быть так, что оба судящихся друг с другом - наделали объективного зла? С Вашей логикой - Вы _обязательно_ чьё-то объективное зло признаете добром...
Но в таком случае, это уже _не_ ПРАВОсудие, а безнравственный произвол (т.е. вобщем, всё равно на чью сторону встать; возможно, далее лишь вопросы Вашей собственной выгоды пойдут в дело...).>Чтобы избежать этого, человечество придумало законы. Неидеальное решение, куча проблем и
>т.д. и т.п., но оно как-то работает и позволяет избегать анархии.Т.е. из двух предлагаемых Вам (суду, кому-либо ещё, "принимающему решение") вариантов
Вы предполагаете, что _всегда_ есть один объективно верный?Давайте попробуем: Сколько будет 2x6?
Ну, и предлагаются два варианта ответа:
1) 5
2) 17И тут уж выбор за Вами и Вашей совестью какая из двух _лжей_ Вам больше по нраву
(даже если в каком-то там законе и написано, что правильным ответом нужно считать 17).В про анархию: так она у нас в стране растёт буйным цветом: у кого есть деньги - тот
может рулить законами куда ему удобно.Выходит, что законы - это не первоисточник Правды-Истины, на которую можно опереться в любой жизненной ситуации и остаться Правым с любой точки зрения...
>И всё время находится кто-то, кто Лучше Знает Как Надо. И
>говорит - фигня вопрос, я ща всё решу с позиции Добра
>и Зла, а также вечной Истины.Дык, если же "Неидеальное решение, куча проблем и т.д. и т.п." - то почему бы и нет?
Или Вы видите нормальным из глубины веков тянуть какие-то ошибки взаимных отношений в обществе, не стремясь их даже пересмотреть? (пример: вот маздай98 - "Неидеальное решение, куча проблем и т.д. и т.п. но оно как-то работает и позволяет...")Пытаться искать Истину - должно быть нормальным для каждого (хотя бы для того, чтобы не наступить на знатные ранее "грабли" по жизни: самооправдания "а так ведь было всегда... и вот тут ещё написано..." боль во блу не снимут :).
>А потом ему ставят такой,
>например, вопрос: А как будет добрее - поднять пенсии сейчас на
>100 рублей, или вложить эти деньги в развитие и через полгода
>поднять на 1000?Ну, это экономика - это просто.
Но в конкретно этом примере попросто недостаточно информации.
Как минимум одного параметра не достаёт: текущей пенсии.
Потому как если она 0... то по 1000 рублей через полгода выдавать уже будет некому...Видите: в Ваших вариантах в одних условиях - один ответ правильный,
в других - второй, а ещё в каких-то - нет правильного ответа.
>или: А можно вершить самосуд из мести, если
>Ты Точно Знаешь (или Сто Пудов Уверен), что обидчик виноват?Казалось_бы_правильный_ответ: можно, если проведено серьёзное разследование,
улик "более, чем достаточно" и они очевидны. Просто потому, что и "официальные" суды занимаются именно тем же: принимают решения на основе улик и "официальных" разследований. Ну а если разследование проведут специалисты, но просто вне рабочее время, - то и качество их решения будет не хуже официоза (хотя официальщики и назвали бы это "самосудом" - ну, просто это ж "их" хлеб... "жаба давить" будет).Правильный ответ: опять же: недостаточно информации. Может это лучше просто простить и тогда этим добром будет замят некий давний спор. А может, очередная капля сотворённого зла (к примеру, в очередной раз в юридически-законно безукоризненном порядке подняты ставки на _уже_взятые_ кредиты) переполняет народное терпение - и массовая неуплата _процентов_ (но не тела заёма) по ростовщическим кретидам становится нормой в обществе, вынуждая банкиров закрывать банки и искать общественно полезную работу.
>И пока этот наш герой думает над
>этими вопросами, ему приходит время заканчивать завтрак и идти в школу.Оставляя в умолчании, что с Вашей точки зрения, вопросы добра и зла свойственны лишь детям, вы сами уходите от пересмотра навязанных возможно объективно порочных-злых норм отношений в обществе. Ну, и как следствие - очередное ступление на грабли...
> к примеру, задефейсить сайты какой-нить RIAA - это доброЭто зло.
1 дефейсы они будут использовать для положительного пиара себя, мол борятся с силами зла в интернете
2 им ни холодно ни жарко от этих дефейсов, у них бизнес не на это завязан.
> (к примеру, задефейсить сайты какой-нить RIAA - это добро).В каком-то роде вы правы. На самом деле все просто: даже зло бывает во благо :-).
>> (к примеру, задефейсить сайты какой-нить RIAA - это добро).
>
>В каком-то роде вы правы. На самом деле все просто: даже зло
>бывает во благо :-).Я с вас фигею, граждане. Что хорошо, а что плохо - решает уголовный кодекс и суд. И регулировать отношения в обществе можно только с помощью законов.
Хороший... плохой... главное - у кого ружьё ;)
>Я с вас фигею, граждане. Что хорошо, а что плохо - решает
>уголовный кодекс и суд.Да Вы что?...
Большое счастье, что это не так :)
Отвечать на такой важный вопрос в одиночку - слишком сложная задача.
Вот даже опросить по любому вопросу средних сто человек с улицы - точность решения (соответствие их субъективного мнения о добре-зле объективному добру-злу) будет куда выше.>И регулировать отношения в обществе можно только с помощью законов.
Есть ещё очень много способов их регулировать (хотя да, на Западе, думают, что человека, посмотревшего на тебя "не так" можно и нужно засудить).
>Вот даже опросить по любому вопросу средних сто человек с улицы -
>точность решения (соответствие их субъективного мнения о добре-зле объективному добру-злу) будет
>куда выше.Это характерный детский взгляд на мир - думать, что в нём всё исключительно чёрное или белое.
На досуге советую спросить средних сто человек в инете что лучше - линукс, или виндовс. Ну, или интел и амд. Или г-форс и радеон. И проанализировать ответы. А так же прикинуть, что же в данном случае будет Объективным Добром.
>Это характерный детский взгляд на мир - думать, что в нём всё
>исключительно чёрное или белое.Напрашиваетесь на шутку... Вы только с детьми-дальтониками общались?
Ваше высказывание было неоднозначным: с одной стороны, якобы упрекнуть меня, что
я "упрощаю" мир, видя в нём лишь чёрно-белое (хотя на самом деле в нём наличиствуют
множество разных частот, и некоторые из них люди видят разными цветами);
с другой стороны, это якобы алегория о добре и зле. Но тут Вы неправы,
ибо любое действие или бездействие - объективно относится либо к доброму поступку
(и бездёйствие тоже), либо к злому, невизрая на то, что об этом кто думает (невзирая на субъективное понимание добра и зла).Или Вы думаете, что есть ещё и некие "средние" поступки? не добрые и не злые?
Не "чёрное" и не "белое", а некое "рябое"?
>На досуге советую спросить средних сто человек в инете что лучше -
>линукс, или виндовс.БольшАя часть средних людей ответит "а что это?" по обоим пунктам.
Вообще-то, ответ то Вы получите, но придётся разсказать всем этим людям о _новых_ для
них вещах, чтобы узнать у них их _сознательное_ отношение (а не наобум).
Опять же: придётся быть конкретным. либо: "в школу нужен на компф софт" или "нужно автоматизировать систему учёта билетов в касссе автовокзала" - показать опрашиваемым _изначальную_задачу_, а не _некоторые_средства_ их решения, известные Вам (может кто ещё что покруче предложит, оставив Вас с вашими и пингвинами и маздаями отдыхать).Но спросите что-либо _обоюдно_ известное, то, с чем все сталкиваются по жихни так или иначе - и Вы получите решение правдивее любых судов.
>> (к примеру, задефейсить сайты какой-нить RIAA - это добро).
>
>В каком-то роде вы правы. На самом деле все просто: даже зло
>бывает во благо :-).Э, нет. Либо налево, либо направо.
Объективное Добро невозможно получить объективным злом.
>судя по коду, версия FreeBSD 6.4 является уязвимой.А можно поподробнее? А то по ссылкам говорят прямо противоположное. http://seclists.org/fulldisclosure/2009/Nov/381
>>судя по коду, версия FreeBSD 6.4 является уязвимой.
>А можно поподробнее? А то по ссылкам говорят прямо противоположное. http://seclists.org/fulldisclosure/2009/Nov/381Вывод о возможной уязвимости сделан на основе просмотра кода, который правит патч http://people.freebsd.org/~cperciva/rtld.patch . rtld.c из FreeBSD 6.4 сильно отличается от FreeBSD 6.3 и имеет примерно такой же вид как в FreeBSD 7 и 8. Детально я не разбирался, но при беглом осмотре FreeBSD 6.4 вполне подвержен уязвимости. Посмотрим, что завтра в официальном отчете будет сказано.
Ошибка не в rtld, а в lib/libc/stdlib/getenv.c. Грубо говоря, после unsetenv("LD_PRELOAD"), getenv("LD_PRELOAD") все равно может вернуть true, если среда процесса правильным образом испорчена.
>Ошибка не в rtld, а в lib/libc/stdlib/getenv.c. Грубо говоря, после unsetenv("LD_PRELOAD"), getenv("LD_PRELOAD")
>все равно может вернуть true, если среда процесса правильным образом испорчена.Вы правы, во FreeBSD 6.4 еще старая Berkeley реализация getenv, а начиная с FreeBSD 7 новый вариант.
fixed in svn 199979/80/81 (HEAD/8-STABLE/7-STABLE)
Проверил - работает, млин! FreeBSD 7.0-RELEASE .При попытке применить патч, выдавал что нет такого файла в src.
Как-нибудь можно исправить без обновления на 8.0 ?
Я не сильно паникую, так как у меня злоумышленники не имеют доступ в шелл. )
А хостерам, чую, весело.