Билет WordPress № 30465 был открыт 10 лет назад. Будет ли 2025 год годом, когда проблема наконец будет решена?
Опубликовано: 2025-01-03Еще в ноябре 2014 года разработчик WordPress по имени Сергей Мюллер выразил, казалось, разумную обеспокоенность: у пользователей не было возможности узнать, был ли используемый ими плагин удален из официального репозитория – даже если он был удален по соображениям безопасности. Его билет – официальный номер 30465 – был закрыт относительно скоро, но безрезультатно. Сергей и не подозревал, что почти десять лет спустя он будет вновь открыт.
И вот мы здесь, в начале 2025 года, и я пишу об этом обновленную информацию.
Почему?
По нескольким причинам.
Во-первых, это очень актуально для некоторых событий безопасности плагинов, которые произошли недавно — точнее, в октябре прошлого года. Я расскажу о них в ближайшее время. И, во-вторых, воля и импульс для решения проблемы набирают серьезный оборот — последняя активность в заявке была менее месяца назад:
Так что, похоже, терпение Сергея скоро наконец окупится…
Начнем с того, что проследим развитие билета. Затем мы можем перейти к тому, что происходило с ним в последние недели:
От «не исправлю» до выхода на сцену WCEU 2023 🙅♂️
Когда заявка была впервые открыта, она получила несколько ответов, но была довольно быстро закрыта ведущим разработчиком WordPress Эндрю Нэйсином. Он закрыл его и пометил как «не исправит», объяснив, что удаление плагинов произошло по разным причинам, а не только из-за проблем безопасности:
После этого последовал шквал комментариев, но затем он превратился в комментарий раз в год (иногда даже реже) о том, что кто-то пытается оживить проблему.
Затем, в марте 2023 года , произошло нечто интересное. Йост де Валк, известная фигура в сообществе WordPress, официально возобновил заявку . Его аргумент заключался в том, что WordPress обязан сообщать пользователям, поддерживается ли плагин или нет.
Он также отметил, что WordPress.org уже показывал эту информацию на самой платформе, но только после 60-дневного периода ожидания. Его предложение заключалось в том, чтобы обеспечить такую же прозрачность в серверной части WordPress, где пользователи фактически управляют своими плагинами.
Это вызвало новую волну энтузиазма по всей ветке. Билет стал настолько популярным , что Оливер Силд, генеральный директор и соучредитель Patchstack, даже упомянул его в своей речи на WCEU 2023 :
Он не только упомянул об этом, но и призвал участников WCEU оставлять комментарии в теме, используя специальный QR-код, который он добавил в свою презентацию. Он также использовал этот плагин в качестве отложенной заставки для конкурса, который Patchstack проведет в следующем году.
Мероприятие Patchstack в октябре 2024 г. 🪲
В октябре 2024 года Patchstack запустил мероприятие Bug Bounty в рамках Месяца кибербезопасности. Если бы упоминание Оливером билета № 30465 в его речи на WCEU было пустяком, то результаты этого мероприятия были бы его ударом.
Исследователи безопасности, принявшие участие в мероприятии, в конечном итоге обнаружили ошеломляющие 1571 действительный отчет об уязвимостях безопасности за один месяц. Это были не просто незначительные проблемы – мы говорим о:
- 73 случая, когда злоумышленники могли загрузить вредоносные файлы.
- 67 уязвимостей SQL-инъекций, которые могут поставить под угрозу целые базы данных.
- 58 способов повысить свои привилегии для злоумышленников.
- 17 уязвимостей удаленного выполнения кода (ууу!)
Последствия привели к временному закрытию около 1000 плагинов. А когда Patchstack попытался связаться с разработчиками плагинов по поводу этих проблем, почти 74% из них были полностью недоступны. Либо их контактные формы были сломаны, либо их электронные письма были возвращены, либо срок действия их доменов истек.
Самое интересное, что многие из этих уязвимых плагинов находились в репозитории по 6–11 лет. Некоторые датированы еще 17 годами! И да, до сих пор существуют живые сайты, зависящие от этих плагинов.
Излишне говорить, что все эти данные дали Оливеру возможность продвинуть заявку № 30465 к завершению. Он с радостью воспользовался этим и опубликовал некоторые подробности за две недели до публикации официального поста в блоге Patchstack, обсуждающего это событие:
От обсуждения к действию 🛠️
Когда Оливер добавил свой комментарий, активность в теме уже нарастала как снежный ком, поэтому оценить его индивидуальное влияние сложно. Однако небезосновательно предположить, что это подлило масла в разгорающееся пламя. Особенно, когда другие пользователи (из которых по крайней мере один является сотрудником Patchstack) открыто поддерживают его комментарий.
В ответ ведущий разработчик WordPress Дион Халс (@dd32) высказал некоторую критику по нескольким пунктам, но также значительно активизировался, создав экспериментальный плагин, реализующий долгожданную функцию:
Реализация удивительно проста: когда плагин закрывается в репозитории WordPress.org, пользователи видят четкое, но размеренное уведомление. Никаких вызывающих панику красных предупреждений, только простая информация о статусе плагина.
Кто-нибудь найдите Сергея и скажите ему: «Мама, мы справились!»
Ну… почти.
Это еще не часть ядра WordPress, но я чувствую, что мы близки к финишу!
Теперь, когда было показано, что это возможно, следующим шагом будет принятие решения об окончательной реализации. Затем его можно будет интегрировать в ядро WordPress.
Что дальше? 🎯
На момент написания этой статьи эта функция рассматривалась для включения в WordPress 6.8 (согласно Диону Халсу), хотя еще есть некоторые препятствия, которые необходимо устранить. К ним относятся:
- Завершение срока уведомления (есть обсуждение возможного продления 60-дневного окна).
- Стандартизация документации по причинам закрытия.
- Баланс между осведомленностью пользователей и нагрузкой на поддержку разработчиков.
- Выбор точного местоположения (экран состояния сайта или непосредственно на плагине, как показано на скриншоте примера плагина).
Общая картина 🌐
Эволюция билета WordPress № 30465 рассказывает нам кое-что интересное о том, как изменилась безопасность WordPress за последнее десятилетие. То, что когда-то считалось крайним случаем, становится все более важным по мере роста экосистемы и умножения проблем безопасности.
Несмотря на то, что на это ушло десять лет, экспериментальный плагин предполагает, что мы наконец подошли к решению, которое сочетает в себе осведомленность о безопасности и удобство работы с пользователем. Поскольку миллионы установок WordPress потенциально подвержены уязвимым плагинам, эта функция появится не скоро.
Если вы хотите следить за разработкой, ознакомьтесь с экспериментальным плагином на GitHub или обратите внимание на заявку № 30465. Возможно, это один из тех редких моментов, когда мы можем стать свидетелями того, как десятилетний разговор превращается в ощутимый результат. 💡
Что вы думаете об этой функции? Считаете ли вы, что вам, как пользователю WordPress, будет полезно узнать, что плагин закрыт? Дайте мне знать в комментариях. Увидимся там.