В свободном пакете для web-аналитики Piwik, позиционируемом в роли открытого аналога Google Analytics, выявлено наличие бэкдора. При помощи установленного бэкдора злоумышленники имели возможность контролировать системы, на которых для анализа посещаемости был установлен PHP-код Piwik. Вредоносный код находился в архиве последней версии Piwik 1.9.2 в течение нескольких часов (релиз 1.9.2 вышел 9 ноября).
Вредоносный код был включен неизвестными злоумышленниками в zip-архив, доступный для загрузки с сайта проекта. Код для получения доступа к системе был интегрирован в файл piwik/core/Loader.php, бэкдор был оформлен в виде прикреплённого в конец файла набора данных, закодированных методом base64, декодирование и вызов которых осуществлялся в процессе работы приложения. Вредоносный код осуществлял отправку данных на подконтрольный злоумышленникам сервер, информируя о появлении новой жертвы, и путем манипуляций с файлом piwik/core/DataTable/Filter/Megre.php открывал доступ к форме для выполнения на сервере произвольного PHP-кода.
Изначально бэкдор присутствовал в официальном архиве latest.zip, в данный момент вредоносный код из архива уже удалён. Так как удаление бэкедора произведено без смены нумерации версии и без переименования архива, следует обратить особое внимание при установке Piwik. Наличие вредоносного кода можно определить путем поиска в файле piwik/core/Loader.php строки «eval(gzuncompress(base64_decode(», осуществляющей декодирование бэкдора. Пользователям Piwik рекомендуется срочно проверить наличие бэкдора и в случае его присутствия провести полный аудит безопасности своих систем. Разработчики Piwik пока только приступили к разбору инцидента, путь внедрения бэкдора ещё не ясен.
Дополнение: Разработчики Piwik сообщили, что подстановка бэкдора была совершена в результате взлома сайта, который был осуществлён через содержащий уязвимость плагин к системе управления контентом WordPress. Сообщается, что взлом был совершён 26 ноября и содержащий бэкдор архив распространялся всего несколько часов, с 19:43 26 ноября по 3:59 часов 27 ноября по московскому времени.