Теперь WordPress.org автоматически проверяет на безопасность каждый релиз плагина и блокирует обновления с высоким уровнем риска, не допуская их до пользователей.
В среду Дэвид Перес, один из руководителей команды Plugins Team, сообщил в блоге Make WordPress Plugins о нововведении в рамках инициативы «Protect the Shire». Теперь каждый новый релиз в течение шестичасового периода ожидания (так называемого «периода охлаждения») анализируется несколькими моделями искусственного интеллекта наряду с системой Jetpack Scan. Полученные результаты сопоставляются и сводятся в единый отчет с оценкой уровня безопасности; релизы с высоким уровнем риска автоматически блокируются еще до попадания к API обновлений WordPress.org.
По словам Переса, это нововведение призвано решить проблему, связанную с тем, что после первоначального одобрения плагина в каталоге его авторы могли выпускать апдейты без какой-либо дополнительной проверки.
«Плагин может быть безопасным сегодня, но в следующем его релизе может появиться уязвимость или вредоносный код, — написал Перес. — До сих пор не существовало этапа обязательной проверки в промежутке между коммитом релиза и его распространением на миллионы сайтов».
Если релиз плагина блокируется, его авторам отправляется электронное письмо с разъяснением причин. Перес отметил, что высокая оценка не обязательно указывает на вредоносный характер обновления. «Уязвимость, допущенная по неосторожности, может получить такой же высокий балл, как и намеренно внедренный вредоносный код. Эта оценка отражает уровень риска, а не намерения разработчика», — пояснил он.
Эффективность системы уже подтверждена на практике. В июле бэкдор был внедрен в плагин ARVE, насчитывавший около 20 000 активных установок. Тогда сообщалось, что агент PRISM от Wordfence обнаружил бэкдор и уведомил об этом команду Plugins Team, которая удалила плагин из каталога спустя 26 минут.
Однако из анонса Переса следует, что этот бэкдор был выявлен в ходе автоматической проверки безопасности. Поскольку апдейт находился на этапе заморозки (период задержки перед публикацией), скомпрометированная версия так и не попала к пользователям.
«Этот инцидент также выявил недостающее звено: обнаружение высокоуровневой угрозы должно автоматически останавливать распространение плагина, — отметил Перес. — Именно этот механизм мы сейчас и внедряем».
Перес сообщил, что апдейты с высоким уровнем риска не будут распространяться через API обновлений до тех пор, пока авторы не устранят проблемы безопасности, выявленные в ходе проверки. Авторам таких плагинов рекомендуется изучить отчеты о найденных уязвимостях, исправить ошибки и выпустить новую версию. Если авторы считают, что никаких рисков нет, а тревога является ложной, они могут связаться с командой Plugins Team по электронной почте или через Slack-канал WordPress.
«Учтите, что команда выполняет огромный объем проверок, поэтому выпуск исправленной версии практически всегда происходит быстрее, чем ожидание рассмотрения апелляции», — пояснил Перес.
Также в социальной сети X Перес подтвердил, что, если новая система будет работать без сбоев, период заморозки будет сокращен.
«Этот процесс будет развиваться по мере накопления данных и совершенствования механизмов проверки, — написал Перес в своем анонсе. — Обратная связь касательно ложных срабатываний — это то, что больше всего помогает нам улучшать систему».
