Код
#статьи

Почему команда Linux забанила Университет Миннесоты

Университет Миннесоты больше не может отправлять коммиты в ядро Linux. И всё из-за научной публикации. Что это — цензура или вынужденная мера?

21 апреля 2021 года Грег Кроа-Хартман, второй человек в команде разработки ядра Linux, объявил, что они блокируют все коммиты от Университета Миннесоты. Разбираемся, как же это вышло.

Что случилось

В 2020 году доцент факультета информатики и вычислительной техники Университета Миннесоты по фамилии Лю (Kangjie Lu) и аспирант Американского колледжа Ву (Qiushi Wu) опубликовали статью «О возможности скрытного внедрения уязвимостей в ПО с открытым исходным кодом через ложные коммиты».

Авторы рассказали, как попытались добавить несколько уязвимостей в ядро Linux. Они отправили несколько коммитов, которые выглядели как заплатки для реальных багов. Лю и Ву утверждали — это всего лишь исследовательская работа: мол, они просто хотели обнаружить проблемы в процессе разработки ПО с открытым кодом и никто из команды ядра Linux об их планах не знал.

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

Мы поделились результатами исследования с сообществом ещё до публикации статьи и даже собрали комментарии от участников сообщества. Они есть в нашей статье.

Лю и Ву, пояснительная записка

Интересен и контекст, в котором родилась статья. Незадолго до этого хакеры устроили «взлом года» — атаку на программу Orion от SolarWinds. Они внедрили в неё вредоносный код, который распространился по компьютерам многочисленных клиентов компании. Такой тип атаки получил название «атака на цепочку поставок» (supply chain attack).

Возможно, исследователи из Университета Миннесоты просто хотели хайпануть на этой теме и поставить эксперимент на разработчиках самого известного open source — ядра Linux.

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

Грег Кроа-Хартман, личный аккаунт в Twitter

Реакция сообщества Linux-разработчиков

У Linux-комьюнити знатно пригорело с этой статьи. Одна из главных претензий — исследователи никого не предупредили о своих опытах, а значит, их действия этически ничем не отличаются от поведения злоумышленников и были банальной хакерской атакой на ядро Linux. Аргумент тут простой — существует стандартная практика внешнего тестирования угроз (Red Team security testing), которая предполагает, что кто-то из атакуемых в курсе атаки. А парни из Университета Миннесоты решили посвоевольничать и пренебречь правилами.

Фактически Ву и Лю атаковали не столько сообщество разработчиков, сколько саму философию — ведь пользователь Linux по умолчанию доверяет разработчикам ядра.

Open source даже по определению зависит от живого сообщества. Должны быть люди, которые пишут код, документируют код, используют код и дают обратную связь, чтобы постоянно улучшать код. То есть ПО зависит от усилий множества людей — и тут не обойтись без определённого кредита доверия самой системе разработки… Если кто-то подрывает это доверие, это вредит всей системе.

Грег Скотт, разработчик open source с 20-летним стажем, из комментария изданию Gamers Grade

Джаред Флойд из Red Hat в комментариях изданию Zdnet выразился ещё резче:

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

Ещё одна претензия — разработчики потратили своё время и силы на проверку патчей, которые были «экспериментальными». А это неприятно как людям, которые занимаются разработкой Linux в свободное от работы время, так и компаниям, которые спонсируют разработку open source или держат в штате программистов, которые фултайм трудятся над ядром Linux.

В итоге после публикации статьи многие разработчики ядра Linux посчитали, что теперь необходимо пересмотреть и другие патчи от Университета Миннесоты. Правда, до масштабного пересмотра патчей дело так и не дошло.

Продолжение истории

6 апреля 2021 года магистрант Адитья Пакки прислал безобидный, на первый взгляд, патч в ядро Linux со своего университетского адреса. Патч был простой и вроде бы улучшал качество кода, поэтому сначала его утвердили, но уже 9 апреля один из участников сообщества, Эрик Дюмазе, засомневался в качестве патча.

19 апреля ветеран Linux-комьюнити Эл Виро упрекнул коллег за то, что они утвердили патч, который на деле ничего не исправляет. А домен Университета Миннесоты, с которого отправил коммит Пакки, серьёзно повысил градус дискуссии.

Уже на следующий день, 20 апреля, в дело вмешался Грег Кроа-Хартман. Он отправил Пакки письмо: «Пожалуйста, прекратите присылать свои неработающие патчи. Ваш профессор нас дурачит, чтобы таким странным способом опубликовать очередную статью».

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

На этом история могла бы закончиться, но тут Пакки резко ответил Кроа-Хартману: «Я прошу вас прекратить дикие обвинения, которые граничат с клеветой». Магистрант утверждал, что для этих патчей был использован новый статический анализатор кода, который он сам и написал.

Однако уже 21 апреля Кроа-Хартман опроверг слова Пакки, сказав, что патчи были созданы без использования статического анализатора кода и на деле ничего не исправляют.

Вы и ваш коллектив публично признали, что отправляли заведомо вредные патчи, чтобы посмотреть на реакцию сообщества. И даже опубликовали статью по мотивам этих событий. Теперь вы вновь присылаете явно некорректные патчи — и что же я должен думать обо всём этом?

Из переписки на kernel.org

В тот же день Грег официально заявил, что коммиты с адреса umn.edu сообщество будет просто-напросто отклонять. И тут же подкрепил слова делом, отклонив 190 сабмитов от людей, связанных с университетом.

23 апреля в дело вступил Линус Торвальдс: он сказал, что действия исследователей подорвали доверие к сообществу, а значит, блокировка университета оправдана. В тот же день Майк Долан, первый вице-президент Linux Foundation, отправил в университет письмо с четырьмя требованиями:

1) предоставить информацию, которая поможет выявить все вредоносные патчи, отправленные во время эксперимента Лю;

2) снять с публикации статью;

3) убедиться в том, что в будущем эксперименты сотрудников университета будут проходить по принятым в сообществе правилам;

4) до начала эксперимента обязательно получать согласие участников.

Два пункта Лю и Ву уже выполнили: они отозвали статью и предоставили все детали своего исследования, а также вместе с Пакки принесли извинения сообществу Linux.

Что будет дальше

Мнения в профессиональном сообществе разделились:

  1. Статья достаточно капитанская, а любой, кто знаком с принципами open source, понимает, что на этапе проверки кода сообщество можно обмануть.
  2. Необходимо пересмотреть политику согласования патчей — особенно от новых контрибьюторов.

Уже давно назрела необходимость показать такой тип «атаки» — статья породила важное обсуждение, и я считаю, исследователи заслужили медаль почёта.

Кристоф Хэллвиг, разработчик Linux-ядра, из обсуждения на kernel.org

3. Модель open source устойчива: Linux-разработчики вовремя обнаружили «хакеров» и уязвимости не попали в ядро, в отличие от ситуации с SolarWinds.

Что же до бана, то его наверняка отменят, когда пересмотрят все коммиты с университетского домена.

Университет может восстановить доверие, принеся искренние, а не для галочки, извинения и, возможно, отправив ящик пива нужным людям.

Грег Скотт, из комментария изданию The Verge

В общем, ничего непоправимого не случилось, а без пива у девелоперов и тут не обошлось :)

Если вам интересно отслеживать уязвимости и бороться с хакерами, попробуйте профессию «Специалист по кибербезопасности». Тем более стартовать в ней можно даже без опыта в программировании.

Изучайте IT на практике — бесплатно

Курсы за 2990 0 р.

Я не знаю, с чего начать
Освойте топовые нейросети за три дня. Бесплатно
Знакомимся с ChatGPT-4, DALLE-3, Midjourney, Stable Diffusion, Gen-2 и нейросетями для создания музыки. Практика в реальном времени. Подробности — по клику.
Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована