Разработчики ядра WordPress инвестируют силы в автоматизацию значительной части рутинных задач, выполняемых при подготовке релизов — от создания исправлений и их переноса в более ранние версии до формирования пакетов. Необходимость в такой автоматизации возникла из-за роста числа сообщений об уязвимостях, что вынуждает команду выпускать минорные обновления безопасности гораздо чаще.
Джон Блэкборн, представитель команды безопасности WordPress, сообщил, что в данный момент автоматизация является для них приоритетным направлением. Она охватит как плановые мажорные и минорные обновления, так и внеплановые релизы, направленные на устранение уязвимостей, при этом «на определенных этапах по-прежнему будет требоваться участие человека». Кроме того, команда подробно задокументировала свои рабочие процессы и расширила покрытие тестами для более старых веток программного обеспечения.
Цель состоит в том, чтобы ускорить выпуск обновлений, сократив при этом затраты человеческого труда. По словам Блэкборна, это позволит команде безопасности сосредоточиться на устранении большего количества уязвимостей, «поскольку некоторые из них остаются неисправленными гораздо дольше, чем нам хотелось бы».
Согласно данным WordPress HackerOne, за последние 90 дней поступило 2306 сообщений об уязвимостях (для сравнения: три недели назад их было 2004). Вчерашний релиз WordPress 7.1.4, направленный на повышение безопасности, устранил 22 уязвимости.
Блэкборн, один из коммитеров ядра WordPress, чью деятельность спонсирует компания Human Made, рассказал, что обычный день выпуска обновления может длиться 9–10 часов. Большая часть этого времени уходит на запуск скриптов для каждой ветки и ожидание завершения каждого коммита.
«Если выполнение каждого такого скрипта занимает минуту, а веток — 25, то на одно исправление уходит полчаса, и этот процесс приходится повторять для каждого исправления», — пояснил он.
По словам Блэкборна, осознание того, что предстоит такой долгий и утомительный день, может снизить энтузиазм контрибьюторов: им становится сложнее находить мотивацию для завершения исправлений и помощи в подготовке следующего релиза. Именно эту проблему призвана решить автоматизация процессов.
«В этом не должно быть никакой сложности, а сейчас она есть, — сказал он. — И со временем это начинает сильно утомлять».
Автоматизация процесса переноса исправлений в более старые версии (бэкпортирование) оказалась проще, чем ожидалось. Команда предполагала, что для самых старых веток, где код уже значительно отличается от основной ветки разработки (trunk), потребуется искусственный интеллект. Однако, по словам Блэкборна, «в 95% случаев перенос исправлений выполняется обычным PHP-скриптом, который последовательно проходит по нужным веткам». Он объясняет это тем, что WordPress уделяет огромное внимание обратной совместимости.
Конечная цель, как отмечает Блэкборн, — создание того, что разработчики называют «идеальным релизом безопасности»: полноценного сквозного рабочего процесса, объединяющего платформу HackerOne, GitHub и инфраструктуру WordPress.org. Впрочем, некоторые существующие барьеры созданы намеренно: например, право формировать релизы на WordPress.org есть лишь у небольшой группы разработчиков — это защищает проект от атак на цепочку поставок.
«Если кто-то завладеет моим паролем от SVN, он всё равно не сможет выпустить новую версию WordPress — и это сделано специально», — пояснил Блэкборн.
Часть работы по автоматизации ведется открыто. Инструменты, не связанные напрямую с вопросами безопасности, переносятся из закрытого репозитория команды в публичный репозиторий core-release-utils на GitHub, созданный в конце августа. Большую часть коммитов на данный момент сделал Лэнс Уиллетт, директор по качеству в компании Automattic; информация о его обновлениях на GitHub автоматически транслируется в канал #core в Slack-сообществе WordPress.
На данный момент это отдельные инструменты, которые запускаются один за другим. По словам Блэкборна, в будущем команда займется созданием «надстройки, которая объединит их все в единую систему».
Тем временем ИИ-агенты уже анализируют поступающие в HackerOne отчеты, хотя окончательные решения по-прежнему принимают люди.
«На текущем этапе они (ИИ-агенты) не принимают самостоятельных решений — например, не закрывают отчеты. Но они публикуют сводку и рекомендацию, в которой говорится: „Обоснован ли запрос? Насколько он серьезен? Является ли запрос дубликатом?“» — сказал Блэкборн.
Что касается численности команды по безопасности, то, как отметил Блэкборн, сейчас она «вполне достаточна» — привлечение дополнительных сотрудников не ускорило бы работу. Однако вопрос финансирования стоит отдельно. Ранее в этом месяце исполнительный директор WordPress Мэри Хаббард обратилась к 30 крупнейшим компаниям экосистемы WordPress с просьбой поддержать программу безопасности финансово. С момента запуска программы WordPress на платформе HackerOne в 2017 году все вознаграждения выплачивала компания Automattic.
Источник: oddstyle.ru