OpenMandriva заявила, что бывший участник проекта с доверенным админским доступом удалил части репозиториев с годами разработки и опубликовал пустой пакет, способный поломать часть установок в dev-ветке. Для open source это неприятный, но полезный кейс: саботаж OpenMandriva уперся не в сложный взлом, а в старую проблему из серии «слишком много полномочий у одного человека».
Инцидент произошел на фоне внутреннего конфликта в сообществе, сообщает The Register. По версии OpenMandriva, разработчик Давиде Беатричи, известный по работе над мессенджером Mumble, раньше предложил перенести инфраструктуру репозиториев с GitHub на свой частный инстанс OneDev и в процессе зеркалировал несколько десятков репозиториев. Часть мейнтейнеров, как утверждает проект, изначально нервничала из-за того, что слишком заметная доля инфраструктуры уходит под контроль одного человека, но идея все же прошла: Беатричи считался заметной и надежной фигурой.
Дальше история пошла по классическому для сообществ сценарию, только с очень дорогой развязкой. По словам OpenMandriva, после прихода в проект еще двух контрибьюторов один из них систематически вел себя агрессивно по отношению к пользователям и участникам команды, в том числе в личных сообщениях. Проект пишет, что из-за этого успели уйти несколько людей, прежде чем мейнтейнеры вмешались и исключили проблемного участника из Matrix-чата OpenMandriva-Cooker. Из самого проекта его не банили, но именно это решение, по версии OpenMandriva, запустило цепную реакцию: Беатричи и еще один контрибьютор после этого вышли из команды.
Что именно, по версии проекта, было сломано
Когда OpenMandriva решила, что держать зеркала на частной инфраструктуре бывшего участника уже не имеет смысла, она начала разрывать эти связи. Проект утверждает, что реакция последовала почти сразу: Беатричи якобы использовал еще не отозванные административные права и «саботировал дистрибутив» ранним утром. В заявлении говорится о двух эпизодах. Первый: удаление частей GitHub-репозиториев, где хранились результаты нескольких лет разработки. Второй: публикация пустого пакета в репозитории Cooker, который помечал как устаревшие все пакеты GNOME и COSMIC и тем самым мог повредить системы пользователей этих окружений.
Здесь важна оговорка, без которой новость превращается в дешевую драму. Речь идет не о стабильном релизе для всех пользователей OpenMandriva, а о Cooker — rolling-ветке разработки. То есть удар, если верить описанию проекта, пришелся по тем, кто сидит на bleeding edge и сознательно живет рядом с незакрученными гайками. Это не делает ситуацию безобидной. Если один администратор способен одним движением вынести репозитории и протолкнуть пакет, который ломает обновления рабочего окружения, проблема уже не в чьем-то характере, а в архитектуре управления доступами.
OpenMandriva заявила, что начала восстанавливать удаленные репозитории и чинить затронутые пакеты. Проект также провел «полный системный аудит» и утверждает, что, кроме удаленных пакетов, других нарушений не обнаружил. В заявлении есть и юридическая нота: команда сочла произошедшее потенциально уголовным преступлением, но в итоге решила не идти по пути судебного разбирательства. Это тоже показательный штрих. Для небольших open source-команд разбирательство в суде часто означает еще один ресурсный провал поверх уже случившейся аварии.
Почему эта история важнее одной ссоры в чате
Со своей стороны Беатричи, по данным The Lunduke Journal, не признал произошедшее саботажем в прямом смысле. Он якобы говорил, что не пытался навредить дистрибутиву, за которым сам раньше ухаживал, но при этом признавал удаление репозиториев Cosmic и Gnome, объясняя это тем, что кто-то «лез в его работу». Даже если принять эту версию как минимум частично, для индустрии вывод не меняется: спор о границах ответственности не должен решаться через административный доступ к продоподобной инфраструктуре. Удаление репозиториев в ответ на конфликт — это уже не идеологическая дискуссия про правила сообщества, а вполне осязаемый operational risk.
Для разработчиков и IT-руководителей здесь сразу несколько неприятно практичных уроков. Первый: перенос критической инфраструктуры на частный сервис одного контрибьютора может выглядеть удобно, пока все друг другом довольны. Второй: репутация участника, даже очень сильного и известного, не заменяет ролевую модель доступа, журналирование действий и формальную процедуру отзыва прав. Третий: в open source часто принято думать о рисках как о нехватке людей и денег, но такие истории напоминают, что governance и IAM могут быть не менее важны, чем CI, зеркала и бэкапы.
Саботаж OpenMandriva, если изложенная проектом версия подтвердится, вряд ли станет последней подобной историей в open source. Слишком много сообществ до сих пор держатся на личном доверии, чатах и хорошей памяти о том, кому когда выдали root. Вопрос уже не в том, может ли конфликт между контрибьюторами переехать из Matrix в репозитории. Вопрос в том, сколько проектов еще считают это теоретической угрозой, пока не получают свой собственный саботаж OpenMandriva в миниатюре.