Опубликованный недавно метод атаки, эксплуатирующей более новые версии ядра
Linux, приковал к себе повышенное внимание, поскольку он срабатывает даже тогда,
когда предприняты дополнительные меры безопасности. Кроме того, баг практически
невозможно найти в исходном коде.

Код эксплоита
был выложен в прошлую пятницу Бредом Шпенглером из компании
grsecurity, занимающейся
разработкой средств защиты для открытых ОС. Несмотря на то, что эксплоит
направлен против тех версий Linux, которые большинству вендоров еще предстоит
внедрить, атака привлекла внимание экспертов в области безопасности, поскольку
она эксплуатирует невыявленные уязвимости.

Бас Альбертс из Immunity подчеркнул, что эксплоит работал даже тогда, когда
разработчики Linux попытались защититься от него, выставив все настройки
безопасности на максимальные. По мнению Альбертса, появление эксплоита открывает
целый класс весьма серьезных уязвимостей.

Баги кроются сразу в нескольких частях Linux, включая ту из них, которая
управляет функциями net/tun. Несмотря на то, что в коде проверка переменной tun
на предмет отсутствия NULL-указателей реализована верно, при сборке ядра
компилятор убирает ответственные за эту проверку строки в попытке оптимизировать
код. Итог: когда переменная указывает на ноль, ядро производит попытку записи в
запрещенную область памяти, что приводит к компрометации компьютера, работающего
под управлением атакуемой системы.

Наличие бага, получившего название "разыменовывание пустого указателя",
подтверждено для версий ядра Linux под номерами 2.6.30 и 2.6.30.1, которые в
настоящее время используются лишь в пятой версии Red Hat Enterprise Linux,
функционирующей в тестовом окружении. Эксплоит работает только при
активированном расширении SELinux, или при наличии установленной программы для
обработки аудио под названием PulseAudio.

Сценарий возможного использования эксплоита, если объединить его с эксплоитом
для чего-нибудь еще, например – приложения PHP, будет по большей части связан с
повышением привилегий пользователя. Сам по себе предложенный Шпенглером эксплоит
нельзя запустить удаленно. Впрочем, написание полноценного "боевого" эксплоита,
подходящего для 32- и 64-битных версий Linux (включая версию от Red Hat) заняло
у Шпенглера около четырех часов. По словам эксперта, опубликовать пример кода он
решил после того, как стало ясно, что Линус Торвальдс и другие разработчики ядра
Linux не считают данный баг угрозой для безопасности.

Оставить мнение