Хакеры взломали git-сервер PHP и внедрили в исходники бэкдоры

30 марта 2021 г. 10:27
 644

В ходе недавней supply-chain-атаки был взломан официальный Git-репозиторий PHP и подделаны исходники.

В ходе недавней supply-chain-атаки был взломан официальный Git-репозиторий PHP и подделаны исходники.

Вчера два вредоносных коммита были перенесены в php-src Git-репозиторий, поддерживаемый командой PHP на сервере git.php.net. Злоумышленники подписали эти коммиты так, как будто они были сделаны известными PHP-разработчиками и сотрудниками поддержки, Расмусом Лердорфом и Никитой Поповым.

Бэкдор RCE, установленный на Git-сервере PHP

В попытке скомпрометировать базу кода PHP вчера в официальный репозиторий Git PHP были внесены два вредоносных коммита.

Инцидент вызывает тревогу, учитывая, что PHP остается серверным языком программирования, на котором базируется более 79% сайтов в Интернете.

В коммитах [1, 2] атакующие опубликовали изменения с комментарием «исправление опечатки» под предлогом, что это было незначительное исправление.

Вредоносный коммит, который злоумышленники разместили от имени Расмуса Лердорфа закладывает бэкдор с возможностью  удаленного выполнения  произвольного кода.

Однако, взглянув на добавленную строку 370, где вызывается функция zend_eval_string, код на самом деле внедряет бэкдор для получения легкого удаленного выполнения кода на сайте, работающем с этой взломанной версией PHP.

«Эта строка выполняет PHP-код из пользовательского HTTP-заголовка, если строка начинается «zerodium»», - сообщил PHP-разработчик Джейк Бирхолл Михаилу Воржишеку, который первым указал на аномалию.

В интервью по электронной почте разработчик PHP Никита Попов сообщил изданию BleepingComputers:

«Первый коммит был найден через пару часов после добавления в рамках обычного ревью изменений. Изменения были явно вредоносными и сразу же были откачены».

Кроме того, вредоносные изменения были сделаны и от имени создателя PHP Расмуса Лердорфа.

Сам факт происшествия удивления не вызывает -  в системах контроля версий исходного кода, таких как Git, можно подписать коммит как исходящий от кого угодно локально, а затем загрузить поддельный коммит на удалённый Git-сервер, где создаётся впечатление будто он действительно подписан указанным локально человеком.

Хотя полное расследование инцидента продолжается, по сообщениям поддержки PHP эта вредоносная деятельность произошла из-за взлома сервера git.php.net, а не из-за компрометации отдельной учетной записи Git'а.

Официальная база кода PHP переехала на GitHub

В качестве меры предосторожности после этого инцидента разработчики PHP решили перенести официальный репозиторий исходного кода PHP на GitHub.

«Пока расследование ещё продолжается мы решили, что поддержание нашей собственной git-инфраструктуры является ненужным риском безопасности, и что мы прекращаем работу сервера git.php.net. Вместо этого репозитории на GitHub, которые раньше были только зеркалами, станут основными» - объявил Попов.

С учетом этих изменений Попов утверждает, что любые изменения кода с данного момента размещаются непосредственно на GitHub, а не на сервере git.php.net. Те, кто заинтересован в участии в проекте PHP, теперь должны быть добавлены как часть организации PHP на GitHub. Инструкции по этому поводу приведены в том же оповещении безопасности. Для членства в организации вам понадобится двухфакторная аутентификация вашей учетной записи GitHub.

«Мы проверяем репозитории на наличие любых повреждений помимо двух упомянутых коммитов», - сообщил Попов.

BleepingComputer обратился как к Попову, так и к команде безопасности PHP для выяснения всей полноты случившейся компрометации, а также факта утечки кода до того, как вредоносные коммиты были выявлены и устранены.

«Возможно, репозиторий и был клонирован или создан его форк, но никаких тегов или релизных артефактов не появилось. Изменения были сделаны в ветке разработки PHP 8.1, выпуск которой запланирован на конец года» - рассказал Попов в интервью BleepingComputer.

Команда PHP подтвердила, что планирует вывести из эксплуатации свой git-сервер в ближайшие дни и перейти на GitHub на постоянной основе.

 

Перевод сделан со статьи: https://www.bleepingcomputer.com