Обход путей (Path Traversal / LFI): чтение системных файлов сервера
Уязвимость Path Traversal возникает, когда приложение принимает имя файла из параметров пользователя без должной санитизации (например, ?file=report.pdf).
Злоумышленник использует последовательности ../../etc/passwd для выхода за пределы веб-директории и чтения системных файлов операционной системы.
Степень критичности и чем опасна уязвимость
Чтение системных файлов сервера, исходного кода и ключей шифрования.
Как наш сканер находит эту уязвимость
Site Check выполняет неразрушающее тестирование параметров путей на корректную валидацию перехода по каталогам.
Тестирование прикладных уязвимостей веб-приложения базируется на пассивном анализе структуры параметров, форм и рефлексии входных данных без передачи вредоносных деструктивных эксплойтов. Это позволяет выявить риски XSS, CSRF, Open Redirect и инъекций без деградации производительности приложения.
Как устранить уязвимость (Пошаговое руководство)
Для ликвидации риска выполните следующие действия в конфигурации вашего сервера или приложения:
// В Node.js используйте безопасное разрешение путей с белым списком:
const safePath = path.basename(userInput);
if (!ALLOWED_FILES.includes(safePath)) {
throw new Error('Access denied');
}
- Никогда не передавайте пути к файлам напрямую из параметров пользователя.
- Используйте привязку к каталогу через path.basename или проверку по белому списку.
Анатомия атаки и реальные последствия для проекта
Уязвимость Path Traversal позволяет манипулировать путями файлов через последовательности ../../, заставляя веб-сервер отдавать системные файлы (/etc/passwd, файлы исходного кода) вместо запрошенных картинок.
Влияние на соответствие стандартам: Нарушение требований безопасности стандартов OWASP Top 10 (A05:2021 Security Misconfiguration), ISO/IEC 27001 и отраслевых норм 152-ФЗ.
Матрица эшелонированной защиты (Defense-in-Depth)
| Уровень защиты | Техническое действие | Инструмент / Механизм |
|---|---|---|
| Периметр веб-сервера (Nginx / Edge) | Применение изолирующих правил блокировки для маршрутов, связанных с path-traversal-lfi | Nginx Security Directives |
| Среда исполнения и конфигурация | Отключение отладочных механизмов и разграничение прав доступа к компоненту path-traversal-lfi | Runtime Security Hardening |
| Пайплайн DevSecOps контроля | Автоматическое тестирование конфигурации path-traversal-lfi в CI/CD пайплайне при каждом релизе | Site Check Security Gate |
Верификация устранения: команды для быстрой проверки
После внесения изменений в настройки сервера или исходный код приложения проверьте отсутствие уязвимости с помощью терминальных утилит:
curl -s "https://ваш-домен.com/download?file=../../../../etc/passwd" | grep "root:"
# Должен возвращать ошибку 400 или 404
Рекомендации DevSecOps для безопасного развертывания
Никогда не передавайте пути файлов напрямую из пользовательского ввода. Используйте белый список разрешенных идентификаторов или функцию path.basename().
- ✓ Использовать параметризованные запросы и подготовленные выражения во всех SQL-запросах
- ✓ Выполнять контекстную санитизацию и экранирование пользовательского ввода во фронтенде
- ✓ Внедрить валидацию CSRF-токенов для всех изменяющих состояние POST/PUT запросов
- ✓ Ограничить внешние перенаправления белым списком разрешённых доменов
Часто задаваемые вопросы по устранению
Прикладные уязвимости логики кода (OWASP Top 10) требуют комплексного подхода: использование параметризованных ORM-запросов, контекстное экранирование HTML-шаблонизаторов, внедрение анти-CSRF токенов и интеграция Web Application Firewall (WAF) на внешнем шлюзе.
Для предотвращения вектора «Обход путей (Path Traversal / LFI): чтение системных файлов сервера» зафиксируйте проверочные правила в CI/CD пайплайне и настройте непрерывный мониторинг внешнего периметра через Site Check.