Рекомендации по безопасности WordPress

Опубликовано: 2022-03-10

Существует много мифов и FUD (страх, неуверенность и сомнения) о безопасности WordPress. И есть много вещей, которые следует учитывать при защите веб-сайта от потенциальных атак. Так как же компании могут изучить лучшие практики безопасности WordPress, которые обеспечат им наилучшую возможную веб-защиту?

На прошлой неделе я провел вебинар, чтобы демистифицировать проблемы безопасности WordPress. Ко мне на сессию присоединились Аюш Малакар (разработчик полного стека и WordPress в Fresh Consulting) и Шон О'Шонесси (руководитель отдела разработки VIP-решений WordPress).

С помощью четырех наводящих вопросов эти два эксперта рассмотрели передовые методы обеспечения безопасности, о которых следует помнить разработчикам, администраторам, владельцам сайтов и руководителям. Давайте подытожим то, о чем мы говорили.

Безопасно ли программное обеспечение с открытым исходным кодом?

Не все с открытым исходным кодом одинаковы. Но поскольку WordPress существует уже 18 лет и поддерживает более 40% веб-сайтов в мире, становится ясно, что его внедрение растет. Но даже самое популярное в мире программное обеспечение с открытым исходным кодом вызывает вопросы о его уязвимостях в системе безопасности. Разве весь этот открытый код не уязвим для атак?

Не обязательно, говорит Аюш: «Поскольку на это смотрит так много глаз, это более безопасно».

Хотя это может показаться нелогичным, программное обеспечение с открытым исходным кодом на самом деле может быть более безопасным, чем проприетарное программное обеспечение с закрытым исходным кодом. Вот почему.

Больше внимания на потенциальные угрозы

Поскольку open source работает в открытом доступе, скрывать нечего. Многие разработчики в сообществе смотрят на него и вносят обновления, внушая уверенность и доверие. Если обнаружена уязвимость, ее исправляют как можно скорее — часто в течение дня или двух.

Непрерывное тестирование кода и вознаграждение за ошибки

Любой может внести свой вклад в WordPress, а код тестируется сообществом тысяч основных участников WordPress. Поскольку код постоянно тестируется, он становится все более надежным.

Кроме того, программы вознаграждения за обнаружение ошибок побуждают общественность находить бреши и уязвимости, включая атаки методом перебора, DDoS, фишинг и многое другое.

Обновления безопасности

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

Безопасен ли мой код?

Ядро WordPress — это лишь одно из «ядер» кода, из которых состоит веб-сайт WordPress. Над программным обеспечением, разработанным сообществом, стоит код приложения веб-сайта — его тема или внешний интерфейс, а также плагины.

В то время как основной код WordPress с открытым исходным кодом разрабатывается сообществом, код приложений, написанный для отдельных веб-сайтов или развернутый на них, также может создавать уязвимости в системе безопасности.

Существуют различные меры, которые вы можете предпринять, чтобы убедиться, что код вашего приложения максимально защищен от атак. Хотя вы можете принимать разные решения для разных проектов, в зависимости от уровня приемлемого риска, самое главное — знать о потенциальных векторах атаки.

Здесь у наших экспертов по вебинару есть несколько советов.

Инструменты для безопасности WordPress

Существуют различные инструменты, которые разработчики могут использовать для выявления недостатков безопасности как в собственном, так и в стороннем коде.

«Всякий раз, когда мы говорим об инструментах, нам нужно понимать, каковы их плюсы и минусы и как нам лучше всего использовать эти инструменты в наших интересах?»

— Аюш Малакар, Fresh Consulting

Эти инструменты могут выполнять статический или динамический анализ кода. Статический анализ выполняется без выполнения какого-либо кода и обычно может выявить около 85% ошибок в коде. Динамический анализ кода основан на изучении того, как код ведет себя во время выполнения, и имеет дополнительную возможность находить проблемы безопасности, вызванные взаимодействием кода с другими компонентами системы, такими как базы данных SQL, серверы приложений или веб-службы.

Важно взвесить преимущества людей по сравнению с машинами, выполняющими этот анализ кода. Машинное обучение (МО) и искусственный интеллект (ИИ) могут использоваться в качестве первой линии защиты для обеспечения идентификации общих ценных бумаг. Но есть также ценность в том, чтобы человек посмотрел на код позже. Это гарантирует, что люди могут работать над различными аспектами, такими как уязвимость на основе функций, крайние случаи и т. д.

Некоторые инструменты, которые рекомендуют наши специалисты:

  • WPScan — это инструмент командной строки, который разработчики могут использовать для сканирования своего кода на наличие дыр в безопасности. Аюш рекомендует разработчикам запускать это в задании cron.
  • PHP_CodeSniffer (PHPCS) проверяет код и выявляет проблемы, начиная от синтаксиса и заканчивая уязвимостями безопасности. Для WordPress существует набор определенных стандартов. Его можно настроить для работы в конвейере непрерывной интеграции (CI) и запуска во всех VIP-репозиториях WordPress.
  • Sonar Cloud, используемый Fresh Consulting для статического анализа кода, сканирует код PHP и JS на наличие уязвимостей и более безопасную реализацию.

«Достаточно ли мы проверяем входные данные? Мы должным образом очищаем любой вывод, который мы собираемся иметь в нашем коде?»

— Шон О'Шонесси, WordPress VIP

Плагины безопасности и WordPress

При выборе сторонних плагинов ищите плагин с хорошими отзывами и рейтингами, большим количеством загрузок и гибкостью для использования на вашем веб-сайте. Убедитесь, что плагин обновлен и совместим с последней версией WordPress.

Не используйте плагин, который вы можете написать сами. Особенно в тех случаях, когда требуется лишь небольшое количество кода, напишите этот код в своей теме вместо использования плагина. Это гарантирует отсутствие уязвимостей при обновлении плагина.

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

— Аюш Малакар, Fresh Consulting

Как всегда, важно обновлять код. Следите за обновлениями ядра и плагинов, а также обновляйте WordPress, плагины и темы.

Безопасность и конечные точки WordPress

XML-RPC и REST API — это конечные точки, которые WordPress использует для связи с другими системами или внешним интерфейсом приложения. Важно иметь представление об этих конечных точках и о том, будут ли они важны для вашего приложения, поскольку они являются потенциальными векторами атаки, которые можно отключить, если они не нужны.

XML-RPC как потенциальный вектор атаки

XML-RPC — это спецификация, которая обеспечивает связь между WordPress и другими системами. В ранних версиях WordPress XML-RPC был отключен по умолчанию. Но начиная с версии 3.5 он включен по умолчанию. Основная причина этого заключалась в том, чтобы позволить мобильному приложению WordPress взаимодействовать с вашей установкой WordPress.

REST API как потенциальный вектор атаки

Убедитесь, что используете лучшие методы безопасности при использовании WordPress REST API. Хотя компаниям может потребоваться держать их открытыми, например, в безголовой архитектуре, где контент должен передаваться на несвязанный внешний интерфейс, убедитесь, что те, кто остается открытым, имеют надлежащую аутентификацию и авторизацию.

«У вас есть этот замок, WordPress, ваше приложение, и наличие разводного моста само по себе не делает ваше приложение безопасным. Но это проспект. Это путь в тот замок. Таким образом, простое хорошее понимание, знание и учет этих вещей, безусловно, жизненно важно для улучшения положения в отношении безопасности вашего приложения».

— Шон О'Шонесси, WordPress VIP

Безопасен ли мой хостинг?

Есть много соображений, которые необходимо учитывать при определении того, достаточно ли безопасен ваш хост для ваших нужд. Это хорошая идея, чтобы рассмотреть все доступные параметры безопасности и не забывать о важности быстрой поддержки в случае чрезвычайных ситуаций, таких как обновление плагина, вызывающее инцидент безопасности.

«Предлагает ли ваш хостинг-провайдер быструю и проактивную поддержку? Кроме того, как они реагируют на публикацию уязвимостей приложений или плагинов?»

— Шон О'Шонесси, WordPress VIP

В целом, ищите платформу, которая считает хостинг совместной ответственностью. Некоторые особенности, которые следует учитывать, включают:

Разрешения файловой системы

Некоторые хосты предлагают файловую систему только для чтения, но не могут записывать файлы. Это не позволяет пользователям веб-процессов записывать файлы где угодно, закрывая потенциальный вектор атаки.

Контейнеризация

Ищите хост, который изолирует ресурсы вашего сайта от сайтов других клиентов. Хотя это не всеобъемлющая мера безопасности, контейнеризация обеспечивает базовую меру безопасности. В качестве бонуса он также предоставляет выделенные ресурсы для горизонтального или даже вертикального масштабирования.

Контроль версий

Когда платформа хостинга WordPress блокирует SFTP и позволяет обновлять код через систему контроля версий, они уменьшают поверхность атаки вашего приложения. Кроме того, управление исходным кодом приложения с помощью контроля версий обеспечивает «чистую» копию кода в качестве источника правды, а также полную, поддающуюся аудиту и контекстную историю этого кода.

Как моя компания может обеспечить безопасность WordPress?

Безопасность — это не просто соображение на уровне кода или хоста. Есть также человеческий фактор, и компании могут встраивать такие процессы, как регулярные проверки безопасности и правила гигиены паролей, которые будут иметь большое значение для повышения безопасности вашего веб-сайта.

«На организационном уровне важно мыслить с точки зрения внедрения нескольких уровней постоянной аутентификации или проверки».

— Шон О'Шонесси, WordPress VIP

Управление доступом с нулевым доверием и минимальными привилегиями

Благодаря тщательно продуманным ролям и управлению доступом организации могут предоставить людям возможность выполнять свою работу с наименьшим количеством привилегий, а значит, с наименьшим возможным риском. Убедитесь, что вы правильно определяете и назначаете роли и возможности пользователей. Эта возможность поставляется с WordPress из коробки и может быть расширена для любого варианта использования.

Гигиена паролей

Пользователи должны создавать уникальные и трудно угадываемые пароли для каждого приложения. Шону особенно нравится этот комикс, в котором рекомендуется использовать набор случайных слов, а не комбинацию букв, цифр и символов:

Комикс XKCD

2FA и единый вход

Хотя технологии двухфакторной аутентификации (2FA) и единого входа (SSO) сами по себе не повышают безопасность вашего веб-сайта, они предлагают преимущества централизованного управления пользователями во всех поддерживаемых приложениях.

Основные выводы по безопасности WordPress

  • Открытый исходный код имеет преимущества в плане безопасности
  • Обновляйте WordPress и плагины
  • Используйте контроль версий
  • Понимание конечных точек WordPress
  • Ищите хост, который отвечает за безопасность
  • Внедрите зрелые методы обеспечения безопасности на уровне организации

Мы рассмотрели гораздо больше вопросов безопасности WordPress на часовом вебинаре. Если вы пропустили его в прямом эфире, я рекомендую вам посмотреть запись здесь.