Неисправленные уязвимости ядра Linux [закрыто]
Вопрос
Недавно я узнал, что в ядре Linux есть несколько уязвимостей, позволяющих повысить привилегии, которые еще не исправлены в основных дистрибутивах и имеют публичные эксплойты в обычных источниках.Например, я мог получить root на любой из моих полностью обновленных систем Ubuntu 10.04, используя этот очень простой эксплойт.
Меня это беспокоит.Возникают два вопроса:
Почему ядро Linux не было исправлено для устранения эксплойта, существующего уже две недели?Мне кажется, это очень опасная ситуация.
Есть ли в такой ситуации безопасный способ предоставить кому-нибудь гостевую учетную запись на моем компьютере?Или мне следует предположить, что гостевая учетная запись — это скорее символическая безопасность, и предоставлять учетные записи только тем людям, которым я действительно доверяю.
Решение
Собственно патч написан 14 сентября и его можно найти здесь и здесь.Однако этот патч не был включен в основную ветку.Программирование ядра очень сложное.Патч может нарушить совместимость или привести к некорректному поведению системы.Microsoft обычно занимает 1 месяц, чтобы написать патч для чего угодно, даже для блокнота.
Часто злоумышленник может скомпрометировать процесс пользовательского уровня, например один из ваших демонов (unrealircd или sendmail).Или, что еще более вероятно, веб-приложение, такое как Wordpress или PHP-Nuke.На этом этапе у злоумышленника есть учетная запись пользователя, и он может получить root, если ему это нужно.Поэтому подобный эксплойт повышения привилегий часто используется в цепочке с другими эксплойтами.
Что еще более тревожно, Тораволдс известен тем, что тихие патчи.Это тоже развлечение, которое Microsoft наслаждается.
Другие советы
Большинство — за неимением лучшего слова — хардкорных дистрибутивов, таких как Gentoo и Slackware, исправлены уже неделю или около того.Кроме того, некоторые конфигурации вообще не были уязвимы, а другие были технически уязвимы, но не с опубликованными эксплойтами.
Вот несколько вещей, которые вы можете сделать для ультрапараноиков:
- Исправьте свое собственное ядро прямо из ветки git.Это то, что довольно сложно понять с первого раза, но на самом деле довольно легко поддерживать после настройки.Ваш выбранный дистрибутив, вероятно, поддерживает свои собственные общедоступные ветки git для своих ядер, которые, скорее всего, были объединены в опубликованную ветку исправлений около двух недель назад для тестирования.Даже если они ждут, пока он войдет в официальную версию основной ветки, git позволяет очень легко объединять ветки из разных источников, так что вам не придется ждать самостоятельно.
- Настройте свое ядро на минимум функций, которые вам действительно нужны.Насколько я понимаю, эта уязвимость не является проблемой, если отключены определенные параметры, необходимые для виртуализации.Напротив, стандартные ядра дистрибутива позволяют всем удовлетворить потребности каждого.Кроме того, опубликованный эксплойт опирается на таблицу символов ядра, доступную в /proc/kallsyms.Эту опцию можно отключить, и нет причин, по которым она может понадобиться большинству всех.
- Используйте обязательный контроль доступа, чтобы предоставить вашим гостевым пользователям и приложениям, доступным в Интернете, необходимый минимум привилегий.
Обратной стороной всех этих мер предосторожности является то, что вы с большей вероятностью сломаете свою систему, поэтому большинство дистрибутивов, ориентированных на пользователя, не торопятся с тестированием.
В соответствии с lwn.net :
Для более ориентированных на сообщество распределений (Debian, Fedora, OpenSuse, Ubuntu и других) ответ был несколько смешанным.Ubuntu, Debian и Fedora вышли на 17 сентября Для обеих ошибок (или, в случае с Debian, только один, поскольку его стабильное распределение («Ленни») основано на 2.6.26 и, следовательно, не уязвимого CVE-2010-3301).OpenSuse еще не выпустил исправление, и ни одно из вторичных распределений, которые мы отслеживаем (Gentoo, Mandriva, Slackware и т. Д.).
Так что, если ваша Ubuntu действительно обновлена, она должна была быть в безопасности довольно рано.Плюс я помню, что увидел обновление относительно вскоре после того, как было объявлено об ошибке.
Таким образом, либо исправление неверно, либо ваша система не обновлена правильно и не обновлялась где-то две недели.Обновления ядра требуют перезагрузки вашей системы.
Кстати, а где вопрос по программированию?