Тщательно спланированная атака на xz Utils и обнаружение в пакете бэкдора, который успел проникнуть в крупные дистрибутивы Linux, потрясла все опенсорсное сообщество. А сопровождающему F-Droid Хансу-Кристофу Штайнеру (Hans-Christoph Steiner) это напомнило о странном случае, который произошел с ним еще в 2020 году. Теперь он полагает, что F-Droid пытались скомпрометировать по той же схеме.
Напомним, что бэкдор в xz Utils (CVE-2024-3094 и 10 баллов из 10 возможных по шкале CVSS) был случайно обнаружен на прошлой неделе. Как выяснилось, операция по его внедрению длилась несколько лет, а злоумышленники тщательно планировали свою атаку и втирались в доверие к сопровождающему xz Utils, Лассе Коллину (Lasse Collin aka Larhzu).
Так, согласно этим версиям (1, 2) детальной хронологии событий, составленным разработчиком Эваном Бохсом (Evan Boehs) и экспертом Google Рассом Коксом (Russ Cox), атака на xz Utils и Лассе Коллина началась еще в 2021 году, когда был создан аккаунт JiaT75 на GitHub, принадлежавший некоему Цзя Тану (Jia Tan). Сейчас многие полагают, что за произошедшим могли стоять профессионалы из спецслужб, а Цзя Тан – полностью вымышленная личность.
Исследователи считают, что JiaT75 и его вероятные сообщники использовали несколько подставных аккаунтов и вымышленных личностей, чтобы постепенно убедить Коллина принять помощь Цзя Тана в работе над проектом и уступить место новому мейнтейнеру.
Например, некие Джигар Кумар (Jigar Kumar) и Деннис Энс (Dennis Ens) активно жаловались на то, что Коллин совсем не уделяет внимания xz Utils, а патчи Цзя Тана, который уже начал «помогать» в разработке, остаются без внимания месяцами.
В то время у Коллина действительно был сложный период из-за проблем с психическим здоровьем, и он не мог уделять xz Utils много времени.
В итоге тактика давления на Коллина сработала, JiaT75 получил больше власти, фактически заняв место мейнтейнера, и со временем внедрил сложный бэкдор в код xz Utils. И, похоже, этот случай может быть неуникален.
Как теперь рассказывает в Mastodon мейнтейнер F-Droid Ханс-Кристоф Штайнер, в 2020 году с ним случилась практически аналогичная ситуация. Некий человек попытался заставить разработчиков F-Droid внедрить «улучшение», которое на проверку оказалось SQL-инъекцией. Эта попытка не увенчалась успехом, но атака была очень похожа.
Дело в том, что в случае с F-Droid подставные аккаунты точно так же попытались оказать давление на разработчиков, чтобы те поскорее внедрили вредоносный код. Штайнер пишет, что проекту очень повезло, что команда заметила SQL-инъекцию и не поддалась давлению.
По его словам, новый код должен был улучшить поисковую функциональность F-Droid за счет опцимизации конкатенации SQL-запросов.
«Автор [исходного] SQL-кода больше не участвовал в разработке, — рассказывает Штайнер. — А плохо разбираюсь в SQL, но прекрасно понимаю, что конкатенация строк для построения SQL-запросов — плохая идея. Поэтому я побоялся мерджить какие-либо изменения в SQL, не убедившись в них».
Хотя в ответ на пост Штайнера некоторые пользователи предположили, что в случае с F-Droid внедрение уязвимости SQL-инъекции могло быть настоящей ошибкой разработчика, желавшего помочь, Штайнер с этим не согласился.
«Поскольку автор удалил свой аккаунт сразу после ревью, думаю, это было намеренной попыткой внедрения уязвимости, — пишет он. — Плюс все это внезапное внимание со стороны рандомных новых аккаунтов. Если бы с процессом ревью все было нормально, это могла бы быть настоящая ошибка. Хотя такой сценарий мог быть даже более привлекателен для злоумышленников, поскольку ошибка в таком случае вполне правдоподобна и могла бы послужить легким прикрытием».
Теперь многие специалисты полагают, что подобных атак или попыток атак могло быть куда больше, и, возможно, вскоре мы можем услышать о других подобных инцидентах.