Удаленное выполнение кода: руководство для пользователей WordPress

Опубликовано: 2021-04-28

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

Термин удаленное выполнение кода (RCE) относится к нескольким различным методам взлома и кибератакам, но все они имеют одну общую черту. RCE, иногда называемый инъекцией кода, становится все более распространенным для хакеров способом взлома веб-сайтов всех типов, включая сайты, использующие WordPress в качестве своей системы управления контентом.

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

В этом руководстве

    Что такое атаки удаленного выполнения кода (RCE)?

    Удаленное выполнение кода (RCE) - это тип уязвимости, которая дает хакеру возможность получить доступ и изменить компьютер или базу данных, принадлежащую другому лицу. Во время атаки RCE хакер захватывает сервер или компьютер с помощью вредоносного ПО (произвольного вредоносного ПО).

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

    Объяснение атак RCE

    Может быть полезно подумать об атаках с удаленным выполнением кода, таких как заражение термитами:

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

    Хотя метафора не совсем такая, как работает атака RCE, атака RCE на самом деле хуже . В отличие от термитов, которые должны быть у вас дома (или в нем), хакер может попасть на ваш сайт откуда угодно.

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

    Пример удаленного выполнения кода

    В 2018 году Microsoft раскрыла уязвимость удаленного выполнения кода, обнаруженную в программе Excel. Злоумышленник может использовать уязвимость для запуска произвольного кода в контексте текущего пользователя.

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

    удаленное выполнение кода

    Какие существуют типы удаленного выполнения кода?

    Чтобы лучше понять хаки RCE, вам нужно знать о различных типах удаленного выполнения кода:

    SQL-инъекции

    Ваш веб-сайт WordPress использует базу данных MySQL для работы. SQL-инъекции происходят, когда злоумышленник получает доступ к вашей базе данных WordPress и ко всем данным вашего веб-сайта.

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

    Многие уязвимости RCE атакуют способ построения SQL-операторов WordPress. В качестве примера, если приложению необходимо прочитать имена пользователей базы данных, разработчик может совершить ошибку, используя код, подобный приведенному ниже, для поиска имени пользователя:

     ВЫБРАТЬ * ИЗ пользователей, ГДЕ name = 'username'

    Но в чем проблема такого запроса, связанного с RCE? Любой посетитель вашего сайта WordPress, даже злонамеренный хакер, может ввести имя пользователя. Например, хакер может ввести «1» 1 '= -, OR', что приведет к следующему оператору SQL:

     ВЫБРАТЬ * ИЗ пользователей, ГДЕ name = '1' = '1' - 'OR' '

    Предполагая, что приложение переходит к поиску имен пользователей сайта по всей базе данных, затем выбирает каждое поле с пустым именем, когда 1 равно 1, последнее всегда верно. В конечном итоге хакерам предоставляется каждое имя пользователя в базе данных SQL.

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

    Межсайтовый скриптинг

    Межсайтовый скриптинг - еще одна уязвимость RCE. Это напрямую влияет на посетителей сайта, а не на ваши серверы. Межсайтовый скриптинг (XSS) - это тип атаки вредоносного ПО, который выполняется путем использования межсайтовых уязвимостей на любом сайте WordPress. Фактически, это наиболее распространенный способ взлома сайтов WordPress, потому что существует очень много плагинов WordPress, имеющих XSS-уязвимости.

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

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

    Когда эта атака выполняется, браузер, на котором запущен ваш веб-сайт, запускает вредоносный код.

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

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

    Они также потенциально могут просматривать личную информацию этого пользователя, такую ​​как данные кредитной карты или данные учетной записи PayPal.

    ВНИМАНИЕ! Ваши пользователи могут быть заражены хакерами. Надежная безопасность, пусть не только для вашей, но и для их защиты.

    Обход каталогов

    Эта атака не нацелена на приложение или посетителей вашего сайта WordPress. Вместо этого основной целью является ваш фактический веб-сайт.

    Уязвимость RCE использует способ хранения файлов сайта в файловой системе сервера вашего сайта.

    Обычно данные хранятся в стандартном каталоге, например / home / user / public_html. Скрипты в файлах каталога получают доступ по относительному пути, например wp-admin / index.php, который напрямую ссылается на /home/user/public_html/wp-admin/index.php.

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

    Например, шаблон каталога /home/user/public_html/../ направлен в / home / user /.

    Если скрипту разрешено читать или выгружать файлы с любыми пользовательскими именами, злоумышленник направит приложение в обход каталогов с таким именем, как ../../../../../../../ ../../etc/passwd.

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

    Что вы можете сделать, чтобы предотвратить атаки с удаленным выполнением кода (RCE)?

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

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

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

    Как предотвратить атаки удаленного выполнения кода (RCE): 5 шагов

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

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

    1. Загрузите и установите подключаемый модуль iThemes Security Pro.

    Чтобы приступить к обеспечению безопасности и защите вашего сайта, загрузите и установите плагин iThemes Security Pro.

    Получите iThemes Security Pro сейчас

    2. Активируйте управление версиями, чтобы обновлять ядро ​​WordPress, плагины и темы.

    Проще говоря: вы подвергаете себя риску атаки, если используете на своем веб-сайте устаревшие версии WordPress, плагинов и тем. Обновления версий часто включают исправления для проблем безопасности в коде, включая уязвимости удаленного выполнения кода (RCE), поэтому важно всегда запускать последнюю версию всего программного обеспечения, установленного на вашем веб-сайте WordPress.

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

    обновления плагина wordpress

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

    Функция управления версиями в плагине iThemes Security Pro позволяет автоматически обновлять WordPress, плагины и темы. Помимо этого, в системе управления версиями также есть возможности для повышения безопасности вашего веб-сайта, когда вы используете устаревшее программное обеспечение и сканируете старые веб-сайты.

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

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

    • Обновления WordPress - автоматическая установка последней версии WordPress.
    • Обновления плагинов - автоматическая установка последних обновлений плагинов. Включение этого параметра отключит функцию автоматического обновления плагинов WordPress для предотвращения конфликтов.
    • Обновления тем - автоматическая установка последних обновлений тем. Включение этого параметра отключит функцию автоматического обновления темы WordPress для предотвращения конфликтов.
    • Усиление сайта при использовании устаревшего программного обеспечения - автоматическое добавление дополнительных средств защиты для сайта, если доступное обновление не было установлено в течение месяца.
    • Сканирование старых сайтов WordPress - запускайте ежедневное сканирование учетной записи хостинга на наличие старых сайтов WordPress, которые могут позволить злоумышленнику скомпрометировать сервер. Один устаревший сайт WordPress с уязвимостью может позволить злоумышленникам взломать все другие сайты в той же учетной записи хостинга.
    • Автоматическое обновление, если устраняет уязвимость - этот параметр работает в тандеме со сканированием сайта iThemes Security Pro, чтобы проверить ваш сайт на наличие известных уязвимостей WordPress, плагинов и тем и применить исправление, если оно доступно.

    Обновления плагинов и тем

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

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

    1. Пусто / Нет - оставив поле пустым, WordPress сможет управлять обновлениями плагинов и тем.
    2. Пользовательский - параметр Пользовательский позволяет настроить обновления точно по своему вкусу. Мы поговорим об этом подробнее чуть позже.
    3. Все - Все будут обновлять все ваши плагины или темы, как только будет доступно обновление.

    Теперь давайте подробнее рассмотрим параметр Custom .

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

    3. Просканируйте свой сайт на наличие уязвимых плагинов и тем.

    Сканер сайта iThemes Security Pro - еще один способ обезопасить и защитить ваш сайт WordPress от основной причины всех взломов программного обеспечения: устаревших плагинов и тем с известными уязвимостями. Сканер сайта проверяет ваш сайт на наличие известных уязвимостей и автоматически применяет исправление, если оно доступно.

    Проверено 3 типа уязвимостей

    1. Уязвимости WordPress
    2. Уязвимости плагина
    3. Уязвимости темы

    Чтобы включить сканирование сайта при новых установках, перейдите к настройкам iThemes Security Pro и нажмите кнопку « Включить» в модуле настроек сканирования сайта .

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

    Результаты сканирования сайта отобразятся в виджете.

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

    На странице «Проверка уязвимостей» вы увидите, доступно ли исправление для этой уязвимости. Если доступно исправление, вы можете нажать кнопку « Обновить подключаемый модуль» , чтобы применить исправление на своем веб-сайте.

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

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

    4. Предотвращение взлома сеанса

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

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

    Функция надежных устройств в iThemes Security Pro позволяет идентифицировать устройства, которые вы и другие пользователи используете для входа на свой сайт WordPress. После того, как ваши устройства будут идентифицированы, мы сможем помешать злоумышленникам и другим злоумышленникам нанести какой-либо ущерб вашему веб-сайту.

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

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

    В настройках «Надежные устройства» выберите пользователей, которым вы хотите использовать эту функцию, а затем включите функции « Ограничение возможностей» и « Защита от перехвата сеанса» .

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

    Нажмите кнопку « Подтвердить устройство» в электронном письме о неопознанном входе в систему, чтобы добавить текущие устройства в список надежных устройств.

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

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

    5. Включите двухфакторную аутентификацию для всех пользователей-администраторов.

    Двухфакторная аутентификация - это процесс проверки личности человека, требующий двух отдельных методов проверки. Google поделился в своем блоге, что использование двухфакторной аутентификации может остановить 100% автоматических атак ботов. Неплохие шансы!

    Плагин iThemes Security позволяет активировать двухфакторную аутентификацию для вашего сайта WordPress, поэтому пользователи должны вводить дополнительный код для входа в систему.

    Три метода двухфакторной аутентификации, предоставляемые iThemes Security Pro, включают:

    1. Мобильное приложение. Метод мобильного приложения - самый безопасный метод двухфакторной аутентификации, предоставляемый iThemes Security Pro. Этот метод требует, чтобы вы использовали бесплатное двухфакторное мобильное приложение, такое как Authy или Google Authenticator.
    2. Электронная почта - двухфакторный метод электронной почты отправляет чувствительные ко времени коды на адрес электронной почты вашего пользователя.
    3. Резервные коды - набор одноразовых кодов, которые можно использовать для входа в систему в случае утери основного двухфакторного метода.

    Чтобы начать использовать двухфакторную аутентификацию на своем веб-сайте, включите эту функцию на главной странице настроек iThemes Security Pro.

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

    двухфакторная аутентификация

    Предотвращение RCE: дополнительные советы

    1. Используйте только хорошо зарекомендовавшие себя программные приложения и плагины.

    Процесс «побега» отлично работает как первая линия защиты от уязвимостей RCE. Однако есть некоторые дополнительные способы интерпретации кода серверами и браузерами, помимо тегов сценария.

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

    К счастью, разработчики приложений много думали над проблемой уязвимостей RCE.

    Лучше всего использовать надежную и авторитетную CMS (систему управления контентом), такую ​​как WordPress, потому что есть решения, встроенные прямо в платформу, а также в темы и плагины, которые вы запускаете на ней.

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

    Это верно как для авторов плагинов, так и для авторов тем.

    Если вы используете настраиваемую CMS вместо WordPress, вы можете защитить свой сайт от потенциальных SQL-инъекций, используя параметризованные запросы. Этот тип запроса заранее проинформирует приложение о точном типе запроса, который вы собираетесь выполнить. Затем он распознает и удалит добавленные команды, которые может попытаться вставить хакер. Вместо успешной вставки он отправит исходный запрос и исключит добавленную строку.

    В приведенном выше примере параметризованный запрос будет выглядеть так:

     $ query = "ВЫБРАТЬ * ОТ пользователей WHERE name =?"
    $ results = $ query.execute («'ИЛИ' 1 '=' 1 '-»)

    В этом сценарии ваша база данных правильно обрабатывает 'OR' 1 '=' 1 '. Он рассматривает этот запрос как строку, состоящую только из текста, и понимает, что с указанным именем не связан ни один пользователь.

    2. Подтвердите ввод пользователей

    Лучшее место для начала предотвращения уязвимостей RCE - это то, где пользователи вашего сайта взаимодействуют с вашим приложением.

    Самый простой способ - удалить и отфильтровать любые нежелательные символы.

    Еще один вариант - сохранить содержимое путем его экранирования.

    Если вы не знакомы с тем, что означает экранирование, это процесс, в котором вы инструктируете свой компьютер смотреть на что-то, что выглядит как код в виде обычного текста. Например, вы бы заменили тег скрипта на «<script>».

    Таким образом, веб-браузер понимает необходимость отображения символов «меньше» и «больше»> в указанном месте. Но он не будет рассматривать всю строку текста как код.

    Для пользователя результат незаметен.

    3. Принцип наименьших привилегий

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

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

    Например, представьте, что вы разрабатываете приложение, считывающее данные из базы данных. На самом деле нет необходимости давать новому приложению возможность или разрешение на удаление или запись записей в базе данных.

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

    Принцип наименьших привилегий также полезен, поскольку он относится к функциям PHP.

    Функции PHP - стандартная цель для онлайн-злоумышленников. Надежные функции, которые могут не понадобиться вашему приложению, такие как ini_set () (это позволяет вам обновлять настройки PHP из сценария) или exec () (который запускает код, переданный как текст), должны быть отключены.

    Это не позволяет хакерам и злоумышленникам использовать их в злонамеренных целях.

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

    4. Контент-безопасность-политика

    Content-Security-Policy - это заголовок, используемый в HTTP большинством современных веб-браузеров. Он определяет, какие типы контента браузер должен загружать на ваш сайт. Когда вы отправляете заголовки из вашего приложения или веб-сервера, вы можете указать типы скриптов, которые разрешено запускать, и в какие места.

    Использование стратегии помогает предотвратить внедрение хакерами своих вредоносных сценариев.

    5. Запретить скрипту читать файлы cookie

    Еще один вариант - запретить скриптам читать файлы cookie. Это останавливает отправку запросов на другие сайты.

    Это делается путем установки их с помощью атрибутов SameSite = Strict или HttpOnly. Даже в сценарии, когда код хакера запускается на вашем сайте WordPress, вы не позволите им получить доступ к файлам cookie аутентификации пользователя вашего сайта.

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

    Подведение итогов: удаленное выполнение кода WordPress

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

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

    Получайте еженедельный отчет об уязвимостях WordPress на свой почтовый ящик
    Подпишитесь на отчет

    удаленное выполнение кода