Как хакеры получают доступ к серверу?

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

- Обход фильтров загрузки.

- Загрузка файлов.

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

Почему это важно? Допустим, вы ведете онлайн-бизнес. Когда вы размещаете рекламу, поисковые системы индексируют ваш веб-сайт, чтобы потенциальные клиенты могли видеть ваши продукты, обзоры, обновления и т. д., не посещая ваш веб-сайт. Возможно, вы заметили это, когда использовали свою любимую поисковую систему. Предположим, что ваш веб-сайт взломан, и злоумышленник использует сценарий, который загружает спам-файлы и редактирует файл robots.txt, чтобы поисковые системы могли индексировать эти спам-файлы и отображать эти спам-ссылки вместо ваших обычных ссылок. Это эффективно разрушит ваш рейтинг в поисковых системах, отпугнет посетителей и может привести к тому, что ваш сайт попадет в черный список для спама. Для защиты от этих угроз важно понимать, как осуществляются эти атаки.

Обход фильтров загрузки

Один из методов, который злоумышленники могут использовать для загрузки своего вредоносного ПО — это манипулирование расширением файла, например изменение .php на .PhP, чтобы избежать базовых фильтров загрузки, которые проверяют только правильность расширений файлов. Однако более сложный метод обхода фильтров — злоупотребление «магическими байтами», именно так системы Linux определяют типы файлов, в отличие от систем Windows, которые определяют типы файлов по расширению.

Например, в файл с именем 1.png можно поместить PHP-код. Это позволит обходить фильтры, которые не проверяют метаданные и не выполняют углубленную проверку файлов. Теперь всякий раз, когда этот файл загружается, встроенный PHP-код будет выполняться, загружая вредоносный файл. Обратите внимание, что может быть множество дополнительных инструментов, которые веб-оболочка может загрузить, чтобы сохранить доступ и изменить настройки.

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

Загрузка файлов

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

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

Давайте рассмотрим еще один пример из реальной жизни. Во-первых, PHP-код может содержать системный вызов утилиты wget, которая используется для загрузки файлов или веб-страниц через Интернет. Она может обращаться к любому URL-адресу и загружать, к примеру, ZIP-файл. После завершения загрузки может появиться всплывающее диалоговое окно, предупреждающее злоумышленника об успешной загрузке.

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

Как появляются уязвимости

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

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

Резюме

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

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

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

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

Компания Mainton - разработка программного обеспечения под заказ, SEO и реклама в интернете с 2004 года.