Что такое атака с включением файлов?
Опубликовано: 2023-03-31Любой инструмент можно использовать с хорошими или плохими намерениями, и включение файлов ничем не отличается. Включение файлов — это метод программирования, упрощающий поддержку кода и расширение функций на сайте. Атака с включением файлов злоупотребляет тем, как PHP использует включение файлов в качестве допустимого метода объединения и выполнения кода из множества отдельных файлов для создания единой веб-страницы. Поскольку PHP — это язык, который использует WordPress, WordPress и другие PHP-приложения подвержены уязвимостям включения файлов, когда соответствующие меры безопасности нарушены, неполны или отсутствуют.
В этом полном руководстве по атакам с включением файлов мы рассмотрим, как хакеры используют плохую очистку и проверку пользовательского ввода для внедрения вредоносного ПО и отправки неверных инструкций для взлома сайтов WordPress.
Вы узнаете, как происходят атаки включения файлов WordPress и что вы можете сделать, чтобы защитить свой сайт от них.
Что такое включение файлов?
Включение файлов — это метод разработки для включения множества файлов в один сценарий или веб-страницу для добавления функциональности, повторного использования шаблона дизайна или совместного использования фрагмента содержимого на нескольких страницах.
Включение файлов абсолютно необходимо. Разработчики обычно используют их для следующих целей:
- Включая файлы верхнего и нижнего колонтитула, общие для всех страниц веб-сайта, чтобы обеспечить согласованность дизайна и функций.
- Включая сценарии и библиотеки для ключевых функций веб-сайта или веб-приложения.
- Включая файлы конфигурации, содержащие настройки для приложения, такие как информация о подключении к базе данных и ключи API.
- Включая такой контент, как изображения, видео, текст или другой контент на веб-страницах.
- Включая функциональность для создания динамического контента на основе пользовательского ввода, переданного в качестве параметра URL. Например, пользователь может отправить форму для создания определенного вывода.
Типы включения файлов
Используя метод включения файлов, разработчики могут добавлять файлы и сценарии на веб-страницу статически или динамически.
Используя статическое включение файлов, разработчик может повторно использовать один и тот же текст или код на нескольких страницах, ссылаясь на унифицированный указатель ресурсов (URL) или путь к файлу, хранящемуся локально, то есть на том же сервере. Включение статических файлов позволяет темам использовать один и тот же код верхнего и нижнего колонтитула или меню навигации на многих веб-страницах.
Динамические включения файлов принимают пользовательский ввод во время выполнения. Пользователь указывает желаемый результат, передавая путь к определенному файлу. Обычно пользовательский ввод передается в качестве параметра в URL-адресе или при отправке формы. Например, пользователь может выбрать «английский» из раскрывающегося списка языков, что приведет его к англоязычной версии страницы, на которой он находится, изменив URL-адрес следующим образом: /page.php?language=english
. Если кто-то заменил « english
» URL-адресом удаленного файла, он мог бы внедрить веб-оболочку в качестве бэкдора и/или другое вредоносное ПО на целевой сайт, если для предотвращения этого не предусмотрены проверки.
Как реализовано включение файлов в WordPress?
Все динамические веб-приложения, написанные на PHP, например WordPress, могут безопасно использовать включение файлов. В приложениях, написанных на PHP, разработчики выполняют включение файлов с помощью операторов include
и require
. Разработчики используют оба оператора для вставки содержимого одного PHP-скрипта в другой. Это происходит до того, как код будет выполнен на сервере.
Если вы посмотрите на некоторые основные файлы WordPress, многие из них ссылаются на другие основные скрипты. Когда все они загружаются вместе, они создают структуру вашего сайта и генерируют отдельные веб-страницы, запрошенные посетителем. Основной index.php
ссылается на wp-blog-header.php
, который загружает среду WordPress и шаблон темы — wp-load.php
и template-loader.php
соответственно.
Наряду с ядром WordPress плагины и темы также используют включение файлов для выполнения необходимых задач. Однако, поскольку доступны десятки тысяч плагинов WordPress, не все из них так хорошо протестированы, как ядро WordPress.
Включение файлов представляет серьезную угрозу безопасности, если разработчики не защищают их должным образом. Если код, который вы используете, не проверяет и не очищает пользовательский ввод, хакеры могут использовать его. Они могут использовать его для установки вредоносных программ и кражи конфиденциальной информации — возможно, вашей или ваших клиентов!
Что такое атака с включением файлов?
Возможны два типа атак с включением файлов: локальное включение файлов (LFI) или удаленное включение файлов (RFI).
Атаки с включением файлов являются частью более широкого класса атак путем внедрения . К ним относятся SQL-инъекции (SQLi), межсайтовый скриптинг (XSS) и атаки с включением команд. Хакеры могут использовать уязвимости ввода для проведения других типов атак, таких как атаки на переполнение буфера.
Локальные и удаленные атаки с включением файлов
Веб-сайты и веб-приложения, использующие динамическое включение файлов для включения определенных функций, могут подвергаться как атакам удаленного включения файлов, так и атакам локального включения файлов.
Включение локальных файлов (LFI)
Атака с включением локального файла может внедрить файл, расположенный на том же сервере, что и целевой веб-сайт или веб-приложение. Атаки LFI часто могут получить доступ к обычно ограниченным файлам. При атаке LFI включенный файл уже должен присутствовать на локальном сервере приложений, на который нацелена атака. При атаке LFI злоумышленник может прочитать важные файлы, получить доступ к более конфиденциальной информации или выполнить произвольные команды.
Локальные атаки с включением файлов также могут позволить кому-либо получить доступ к конфиденциальным данным за пределами целевого веб-сайта. Сюда входят файлы конфигурации сервера, такие как /etc/passwd
или файлы конфигурации другого веб-сайта, такие как wp-config.php
. Однако важно отметить, что целевые файлы должны быть доступны для чтения непривилегированным пользователям — например, файл /etc/passwd
в системах Linux принадлежит пользователю root, но с правами доступа к файлам, установленными на 644, все остальные пользователи системы может просмотреть его.
Чтобы перемещаться по файловой системе, злоумышленники используют обход каталога, метод доступа к файлам за пределами текущего рабочего каталога путем манипулирования последовательностями обхода пути к каталогу, такими как ../../../
.
Удаленное включение файлов (RFI)
Атаки с удаленным включением файлов нацелены на веб-сайты и приложения, которые обращаются к файлам, размещенным на другом сервере. Используя удаленное включение файлов, злоумышленник может использовать вредоносный код, размещенный в другом месте. На целевом сервере должна существовать уязвимость, но злоумышленник будет использовать ее для выполнения вредоносного кода, размещенного в другом месте.
В атаках с удаленным включением файлов хакеры используют команду «динамическое включение файлов» в веб-приложениях. Хакеры могут использовать веб-приложения, которые принимают пользовательский ввод, такой как URL-адреса и значения параметров, и передавать их в механизмы «включения файлов» без надлежащей очистки. В этом типе уязвимости злоумышленники могут использовать веб-приложение для включения удаленных файлов с вредоносными сценариями.
Почему происходят атаки включения файлов WordPress?
Сайты WordPress составляют 43% Интернета, поэтому они являются большой целью для злоумышленников. Наш годовой отчет об уязвимостях WordPress за 2022 год показывает, что более 90% всех уязвимостей WordPress, обнаруженных в прошлом году, были в плагинах и темах. Как правило, еженедельно мы видели как минимум одну новую уязвимость в системе безопасности от 20 до 50 плагинов.
Недавно исследователи безопасности обнаружили уязвимость включения файлов в популярной теме OceanWP. У OceanWP более полумиллиона активных пользователей. (Мы сообщали об этом в нашем еженедельном отчете об уязвимостях WordPress.) Несмотря на то, что OceanWP быстро исправила уязвимость, у хакеров было время использовать ее, пока миллионы сайтов WordPress все еще использовали устаревший код.
Как обнаружить атаку включения файлов WordPress
В отличие от атак типа «отказ в обслуживании», которые могут значительно замедлить работу вашего веб-сайта, или вредоносных перенаправлений, уводящих людей с вашего веб-сайта на мошеннические ресурсы, атаки с включением файлов трудно обнаружить. Причина этого проста. Хакеры используют включение файлов в качестве точки входа для загрузки вредоносных программ и проведения дальнейших атак. Включение файла — это тихий путь к более заметным повреждениям. Таким образом, когда хакер внедряет вредоносный код на веб-сайт или получает доступ к конфиденциальной информации, есть большая вероятность, что вы вряд ли это заметите.
Это подводит нас к важному выводу. Безопасность веб-сайта должна начинаться с уменьшения поверхности атаки и ее защиты. Это поможет предотвратить использование хакерами уязвимостей ввода, из-за которых происходят атаки путем внедрения, такие как атаки с включением файлов, внедрение SQL и команд, а также межсайтовый скриптинг (XSS).
Как защититься от атак включения файлов WordPress?
В связи с растущим числом кибератак, нацеленных на WordPress, безопасность веб-сайта WordPress имеет большее значение, чем когда-либо прежде. Защита от атак включения файлов WordPress требует многогранного подхода, который ограничивает возможность использования уязвимостей ввода и выполнения произвольного кода. Вы можете сделать это, если примете комбинацию упреждающих и реактивных мер безопасности.
Вот три основных рекомендации по безопасности WordPress для защиты вашего сайта от атак с включением файлов.
Обновляйте все программное обеспечение
Постоянное обновление всего вашего программного обеспечения, включая ядро WordPress, темы, плагины и расширения, имеет решающее значение, когда речь идет об уменьшении поверхности атаки на ваш сайт. Поскольку каждый день появляются новые уязвимости, не давайте хакерам возможности их использовать. Установите исправления безопасности и делайте обновления, как только они станут доступны.
Выработайте привычку самостоятельно делать регулярные обновления или активируйте автоматические обновления, чтобы на вашем веб-сайте никогда не запускался уязвимый код. iThemes Security Pro может позаботиться об обновлениях ядра WordPress, плагинов и тем для вас.
iThemes Security Pro автоматически сканирует новые версии программного обеспечения, используемого вашим веб-сайтом. Его система управления версиями гарантирует, что у вас будут установлены все исправления и обновления безопасности, как только они станут доступны. Кроме того, iThemes также предупредит вас, если вы используете устаревшее программное обеспечение в своей серверной инфраструктуре. Например, если вы используете версию PHP с истекшим сроком службы или уязвимый сервер MySQL, iThemes Pro предупредит вас.
Если у вас есть несколько сайтов WordPress под вашим контролем, iThemes Sync Pro предоставляет вам единый интерфейс для управления ими всеми. Sync также предлагает расширенный мониторинг времени безотказной работы и обратную связь по SEO.
Отключить удаленное включение файлов в PHP
Веб-сайт может ссылаться на удаленные файлы с внешнего URL-адреса, если в среде PHP включена опция allow_url_fopen
. Это может увеличить риск удаленных атак с включением файлов. Отключение allow_url_fopen
эффективно устраняет возможность запуска вредоносного кода, загруженного из удаленного места на вашем веб-сайте WordPress.
Вы можете отключить allow_url_fopen
в глобальной конфигурации PHP или установить для параметра allow_url_fopen
значение 0
в локальном файле .user.ini
или php.ini
, созданном для отдельной веб-папки. Вы можете проверить, отключена ли эта опция в вашей среде PHP, создав простую информационную страницу PHP с помощью функции phpinfo()
, как показано ниже.
Внедрение заголовков безопасности WordPress
Заголовки ответов HTTP, такие как Content Security Policy (CSP) и Set-Cookie, могут добавить уровень защиты от включения файлов и других атак путем внедрения на ваш сайт WordPress.
Заголовки безопасности WordPress позволяют уменьшить или заблокировать векторы, по которым могут происходить атаки удаленного включения файлов и межсайтового скриптинга (XSS), путем составления списка надежных источников, сценариев и другого содержимого, которое может быть загружено. Все остальные источники будут отклонены. Кроме того, заголовки ответов HTTP могут помочь вам добавить защиту от подделки межсайтовых запросов (CSRF) и кликджекинга.
Защитите свой сайт WordPress от инъекций с помощью iThemes Security Pro
Наряду с внедрением SQL и команд атаки с включением файлов являются наиболее распространенными векторами атак, нацеленных на безопасность сайтов WordPress. Несмотря на то, что WordPress демонстрирует высокий уровень безопасности приложений, тщательно настроенные сайты в сочетании с плохой практикой безопасности могут подвергать веб-сайт WordPress атакам путем внедрения с использованием уязвимостей ввода.
Каждый день в растущем количестве плагинов и тем WordPress обнаруживаются новые уязвимости. И хотя они обычно быстро исправляются, отсутствие своевременных обновлений и зависимость от старого программного обеспечения могут сделать ваш сайт WordPress легкой мишенью для хакеров. Сегодня безопасность веб-сайтов важнее, чем когда-либо прежде. Растущее число кибератак означает, что даже самые бдительные владельцы веб-сайтов могут стать жертвами хакеров, если они не примут упреждающих мер для защиты своих сайтов.
iThemes Security Pro — это мощное решение для обеспечения безопасности WordPress, которое позволяет вам применять лучшие методы безопасности WordPress для защиты вашего веб-сайта от самых изощренных кибератак. Благодаря расширенному мониторингу целостности файлов, сканированию уязвимостей и автоматическому подавлению атак iThemes Security Pro станет отличным выбором, если вы ищете эффективный и надежный способ защитить свой сайт WordPress.
Лучший плагин безопасности WordPress для защиты и защиты WordPress
В настоящее время WordPress поддерживает более 40% всех веб-сайтов, поэтому он стал легкой мишенью для хакеров со злым умыслом. Плагин iThemes Security Pro устраняет сомнения в безопасности WordPress, чтобы упростить защиту вашего веб-сайта WordPress. Это похоже на штатного эксперта по безопасности, который постоянно отслеживает и защищает ваш сайт WordPress для вас.
Кики имеет степень бакалавра в области управления информационными системами и более двух лет опыта работы с Linux и WordPress. В настоящее время она работает специалистом по безопасности в Liquid Web и Nexcess. До этого Кики была частью группы поддержки Liquid Web Managed Hosting, где она помогла сотням владельцев веб-сайтов WordPress и узнала, с какими техническими проблемами они часто сталкиваются. Ее страсть к писательству позволяет ей делиться своими знаниями и опытом, чтобы помогать людям. Помимо технологий, Кики любит узнавать о космосе и слушать подкасты о реальных преступлениях.