Журнал » Угрозы » Угроза доступа к защищаемым файлам с использованием обходного пути
Угроза доступа к защищаемым файлам с использованием обходного пути
Угрозы

Угроза доступа к защищаемым файлам с использованием обходного пути

6 0

Угроза заключается в возможности получения нарушителем доступа к скрытым/защищаемым каталогам или файлам посредством различных воздействий на файловую систему (добавление дополнительных символов в указании пути к файлу; обращение к файлам, которые явно не указаны в окне приложения). Данная угроза обусловлена слабостями механизма разграничения доступа к объектам файловой системы. Реализация данной угрозы возможна при условиях:
наличие у нарушителя прав доступа к некоторым объектам файловой системы;
отсутствие проверки вводимых пользователем данных;
наличие у дискредитируемой программы слишком высоких привилегий доступа к файлам, обработка которых не предполагается с её помощью.


ID угрозы: УБИ.015

Источник угрозы:
  • Внешний нарушитель с низким потенциалом
  • Внутренний нарушитель с низким потенциалом

Последствия реализации угрозы:
  • Нарушение конфиденциальности

Необходимые меры:

Угроза доступа к защищаемым файлам с использованием обходного пути (file system traversal, path traversal, directory traversal) – это тип уязвимости, при которой злоумышленник может получить доступ к файлам, находящимся за пределами предназначенной для него директории. Злоумышленник может использовать специальные символы (например, “..”, “%2E%2E”) в имени файла или пути к файлу, чтобы “перемещаться” по файловой системе и получить доступ к конфиденциальным файлам, таким как файлы конфигурации, системные файлы или другие ресурсы.

Для минимизации данной угрозы необходимо принять следующие меры:

1. Валидация и санитаризация входных данных:

  • Строгая проверка входных данных: Тщательно проверять все входные данные, которые используются для формирования путей к файлам, на наличие специальных символов и метасимволов (например, “..”, “/”, “", “%2E%2E”, “%2F”, “%5C”).
  • Использовать “белые списки” (allowlists): Вместо того, чтобы пытаться заблокировать все известные вредоносные шаблоны, лучше разрешать только те данные, которые соответствуют определенным критериям безопасности (например, разрешенные символы, длина, формат).
  • Нормализация путей: Нормализовать пути к файлам перед их использованием, чтобы удалить все относительные ссылки (например, “..”) и убедиться, что путь является абсолютным и находится в пределах разрешенной директории.
  • Декодирование URL: Выполнять декодирование URL перед проверкой путей к файлам, чтобы предотвратить обход проверки с использованием закодированных символов.

2. Ограничение доступа к файловой системе:

  • Принцип наименьших привилегий (Least Privilege Principle): Предоставлять процессам и пользователям только те права доступа к файловой системе, которые им необходимы для выполнения их задач.
  • Использовать chroot или контейнеры: Использовать chroot (в Unix-подобных системах) или контейнеры (например, Docker) для создания изолированной среды, в которой приложение имеет доступ только к определенному подмножеству файловой системы.
  • Контроль доступа к файлам (ACL): Использовать системы контроля доступа (ACL) для ограничения доступа к файлам на основе ролей и разрешений.
  • Использовать права доступа файловой системы: Убедитесь, что права доступа к файлам и каталогам правильно настроены, чтобы предотвратить несанкционированный доступ.

3. Безопасное кодирование:

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

4. Конфигурация веб-сервера:

  • Запретить доступ к чувствительным файлам и директориям: Настроить веб-сервер (например, Apache, Nginx) для запрета доступа к чувствительным файлам и директориям, таким как файлы конфигурации, системные файлы и директории с исходным кодом.
  • Использовать DirectoryIndex: Настроить DirectoryIndex для указания файла, который должен быть возвращен по умолчанию при запросе к каталогу. Это может помочь предотвратить отображение содержимого каталога, если файл DirectoryIndex не существует.
  • Отключить Directory Listing: Отключить отображение содержимого каталогов (Directory Listing) на веб-сервере.

5. Мониторинг и аудит:

  • Мониторинг доступа к файлам: Мониторить доступ к файлам и регистрировать все попытки доступа к защищаемым файлам.
  • Системы обнаружения вторжений (IDS): Использовать IDS для обнаружения атак, связанных с обходом каталогов.
  • Анализ журналов: Регулярно анализировать журналы веб-сервера и операционной системы для выявления подозрительной активности.

6. Регулярные обновления безопасности:

  • Своевременное обновление программного обеспечения: Своевременно устанавливать обновления безопасности для операционных систем, веб-серверов и других компонентов системы.

7. Обучение и осведомленность:

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

8. Дополнительные меры:

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

Пример:

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

$imagePath = "/var/www/images/" . $_GET["filename"];

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

?filename=../../../../etc/passwd

В результате приложение попытается открыть файл /etc/passwd, который находится за пределами разрешенной директории /var/www/images/.

Для защиты от этой уязвимости необходимо выполнить следующие действия:

  1. Проверить входной параметр filename на наличие специальных символов (например, “..”).
  2. Нормализовать путь к файлу, чтобы удалить все относительные ссылки.
  3. Убедиться, что путь находится в пределах разрешенной директории /var/www/images/.

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

Нет комментариев

Оставить комментарий

Оставить комментарий

Новости Новости Угрозы Угрозы Персональные данные Персональные данные