В systemd нашли дыру, линуксоиды заподозрили руку спецслужб

Эксперты по информационно безопасности нашли в systemd критическую уязвимость, позволяющую локальному пользователю получить права root. Дыры находят в любом софте и ничего необычного в этом нет, но в данном случае интересна реакция сообщества фанатов Linux.

Дыра в systemd

Для тех, кто знает, что такое CVE сразу дадим код: CVE-2016-10156. Этого достаточно, чтобы сделать запрос к базе данных и получить исчерпывающую информацию об уязвимости. А для фанатов Минта поясним: функция touch() в systemd некорректно проверяет режим доступа к файлу, что позволяет создавать в директории с общим доступом файлы с установленным битом SUID. Такие файлы выполняются с привилегиями root. Это значит, что эксплуатируя дыру, локальный пользователь может повысить свои полномочия до админских.

Systemd и быдлокодеры

В исходном коде systemd есть проверка корректности режима доступа: переменная типа mode_t проверяется на отрицательное значение. Только вот сама она имеет тип unsigned, то есть всегда 0 и более. Следовательно, выполнение условия MODE_INVALID

Как защититься?

Всё давно защищено. Ошибка появилась в версии systemd v228, а уже в следующей версии была исправлена. И произошло это больше года назад.

Реакция линуксоидов

Но гораздо интереснее реакция фанатов Linux. Тут сообщество разделилось на несколько враждующих групп.

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

Вторая группа — идейные противники systemd. Их позиция такова: посмотрите, systemd разрастается, код пухнет, а пишут его люди, квалификация которых вызывает вопросы. Уязвимость CVE-2016-10156 — это первая ласточка, за которой гарантированно последуют всё новые и новые факапы. Пока есть время, нужно срочно отказываться от systemd и перейти на менее одиозные системы инициализации.

Третья группа самая интересная — разоблачители заговора. По их мнению, дыра в systemd не является случайной дырой, а ни что иное, как специально внедренный бэкдор (тайный вход), замаскированный под случайную ошибку. И аргументы у этой группы весьма убедительные: ну не может даже говнопрограммист не знать, что значения типа unsigned int всегда строго положительны.

Любопытный факт для размышлений:

АНБ просило Торвальдса встроить в Linux шпионский модуль:

Линус Торвальдс признал, что представители американского разведывательного ведомства связывались с ним относительно встраивания бэкдоров в ядро Linux. Торвальдс заметил, что в реальности бэкдоров в ядре Linux нет, хотя подобные попытки были.

Возможно, если не удалось договориться с руководителем разработчиков Linux, то получится (или уже получилось) договориться с программистами, которые разрабатывают systemd — сильно раздутую программу, выполняющую неспецифические функции, которая со временем окажется в каждом дистрибутиве и которая работает с полномочиями root. Более идеальной программы для встраивания черного входа не найти. Единственное условие — дыра должна выглядеть как случайная ошибка, досадное недоразумение. Сколько таких зондов уже интегрировано в systemd можно только догадываться.
field_vote: 
Ваша оценка: Нет Средняя: 4.7 (6 оценки)
Дистрибутивы: 

Комментарии

Раньше не заморачивался этим вопросом. Всё работает и без разницы что там, системд стоит или что другое.
После таких новостей уже начинаю понимать проекты типа Devuan.
Хотя как знать, ещё неизвестно насколько дырявы прочие опенрц и прочие иниты.

Оценка: 
Пока без оценки

Не существует идеального кода и придуманное для защиты одним, другими могут быть найдены возможности обхода этих средств защиты. Так было, есть и будет. Не стоит драматизировать, не существует идеально защищённых информационных систем, к классу которых вполне можно отнести и операционную систему.
Во-вторых, даже ознакомившись с CVE-2016-10156 пользователь может её устранить? Здесь необходимо говорить о необходимости своевремнного обновления своей системы, в том числе и обновлениями безопасности.
В сети очень много репостов: "при использовании таймеров systemd выполнение функции touch() приводит к созданию файлов в директории /run, /var/run и /var/lib/systemd/timers/ с правами 07777", однако только в одном месте удалось найти этому пояснение: "В примечании к исправлению указано, что исправленная ошибка может привести к DoS-атаке через исчерпание дискового пространства в разделе через заполнение файла /run/systemd/show-status, созданного с правами 07777."
Вас, как домашнего пользователя, будут подвергать DoS-атаке? Это может быть актуально только для тех, у кого имеется выделенный IP, но не для тех у кого IP от провайдера один, а внешний - совсем другой, например для домашнего хомячка в моём лице (да и эти IP всё время меняются). Тогда в моём случае - это, в основном, головная боль провайдера и моя лишь в малой степени, которая ещё больше снижается при задействовании должным образом настроенного firewall и трансляции адресов.

P.S. Обещал себе не реагировать на пояснение "для фанатов Mint", но ... практика - критерий истинности.
Проверяю: systemctl --version и получаю ответ = systemd 229. Так что мой случай попадает под абзац статьи под заголовком "Как защититься", где указано, что "Всё давно защищено. Ошибка появилась в версии systemd v228, а уже в следующей версии была исправлена. И произошло это больше года назад." Так что, лично с моей точки зрения, не совсем удачная аргументация "А для фанатов Минта поясним ...". А так как происхождение установленного у меня systemd, исходя из свойств пакета = 229-4ubuntu16, то указанную в статье аргументацию следовало бы распространить и на Ubuntu. Или, не исключаю, у меня что-то с логикой напряжённо?

Оценка: 
Средняя: 4 (1 оценка)

Это всё русские реперы виноваты. 228 же.

Оценка: 
Пока без оценки

Комментировать

Filtered HTML

  • Use [fn]...[/fn] (or <fn>...</fn>) to insert automatically numbered footnotes.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote> <strike> <code> <h2> <h3> <h4> <h5> <del> <img>
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.