Риск: Высокий 8.6 High CWE-530: Exposure of Backup File to an Unauthorized Control Sphere

Оставленные файлы бэкапов: утечка дампов БД и архивов сайта

В процессе миграции или обслуживания сайтов разработчики нередко создают архивы веб-директории прямо в корне сервера под стандартными именами: backup.zip, dump.sql, site.tar.gz или old.rar.

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

Степень критичности и чем опасна уязвимость

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

Вектор атаки: Автоматизированные сканеры и поисковые ботнеты постоянно исследуют интернет по данной сигнатуре. При обнаружении уязвимости атака запускается в автоматическом режиме без участия человека.

Как наш сканер находит эту уязвимость

Site Check тестирует стандартные паттерны резервных копий (backup.zip, 1.sql, db.tar.gz, site.zip), отправляя легковесный HEAD-запрос для проверки статуса 200.

В рамках сканирования конфигурационных файлов модуль Site Check отправляет легковесные изолированные HEAD- и GET-запросы с валидацией статус-кодов (404/403 vs 200). Запросы содержат стандартные маркеры безопасности и не сохраняют скачиваемые данные в постоянное хранилище, предотвращая несанкционированное распространение конфиденциальной информации.

Как устранить уязвимость (Пошаговое руководство)

Для ликвидации риска выполните следующие действия в конфигурации вашего сервера или приложения:

Запрет отдачи архивов и дампов баз в Nginx
      # Блокировка скачивания бэкапов и дампов баз данных:
location ~* \.(sql|bak|dump|old|backup|zip|tar\.gz|rar)$ {
    deny all;
    return 404;
}
    
  • Никогда не храните резервные копии в веб-директории сайта (/var/www или /usr/share/nginx/html).
  • Настройте выгрузку бэкапов в изолированное зашифрованное хранилище S3 с закрытыми правами доступа.
  • Добавьте правило блокировки расширений .sql, .bak, .zip в конфигурацию веб-сервера.

Анатомия атаки и реальные последствия для проекта

Редакторы вроде Vim или архиваторы создают временные файлы backup.zip, dump.sql, index.php~, database.tar.gz прямо в веб-директории. Боты проверяют до 50 популярных имён архивов и дампов, получая в открытом виде полный слепок базы данных пользователей без необходимости взлома приложения.

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

Влияние на соответствие стандартам: Грубейшее нарушение ст. 13.11 КоАП РФ (до 15 млн рублей за утечку ПДн), GDPR (штраф до 4% годового оборота компании) и требований PCI-DSS.

Матрица эшелонированной защиты (Defense-in-Depth)

Уровень защиты Техническое действие Инструмент / Механизм
Веб-сервер Блокировка доступа к архивам и дампам (location ~* \.(sql|tar|gz|zip|bak|old)$ { deny all; }) Nginx deny rule
Регламент бэкапов Создание дампов вне корневого веб-каталога (/var/backups) и их немедленная выгрузка в S3 Bash / Sentry / Beget S3
Файловые права Назначение прав chmod 600 на любые файлы резервных копий и ограничение доступа пользователю root Linux ACL

Верификация устранения: команды для быстрой проверки

После внесения изменений в настройки сервера или исходный код приложения проверьте отсутствие уязвимости с помощью терминальных утилит:

Терминал: Проверка эндпоинта и заголовков ответа
curl -I -s https://ваш-домен.com/dump.sql | grep "HTTP/"
# Ожидается 404
    

Рекомендации DevSecOps для безопасного развертывания

Создавайте резервные копии во временных изолированных каталогах (/tmp, /var/backups) вне корня веб-сервера и сразу выгружайте их в защищенное S3-хранилище с шифрованием на стороне сервера.

Контрольный чеклист инженера безопасности:
  • ✓ Добавить шаблоны .env* и .git* в корень .gitignore и глобальный gitignore
  • ✓ Внедрить автоматический pre-commit хук gitleaks в локальный пайплайн разработки
  • ✓ Настроить регулярную ротацию скомпрометированных токенов API
  • ✓ Проверить конфигурацию веб-сервера на блокировку запросов к скрытым файлам

Часто задаваемые вопросы по устранению

Как боты находят файлы бэкапов?
Они перебирают комбинации имени домена и стандартных расширений: domain.sql, backup-2026.zip, db.sql, dump.tar.gz.
Где правильно хранить резервные копии?
В изолированном объектном хранилище (S3) с включенным версионированием и ограничением доступа по IAM-политикам.
Экспертное резюме инженера по информационной безопасности

Утечки секретов и конфигурационных файлов представляют максимальную угрозу автоматизированного захвата инфраструктуры. Рекомендуется внедрить pre-commit хуки (GitLeaks, TruffleHog), вынести переменные окружения в защищённые хранилища секретов (HashiCorp Vault, Doppler, AWS Secrets Manager) и настроить в веб-сервере безусловный запрет отдачи скрытых файлов с точкой.

Для предотвращения вектора «Оставленные файлы бэкапов: утечка дампов БД и архивов сайта» зафиксируйте проверочные правила в CI/CD пайплайне и настройте непрерывный мониторинг внешнего периметра через Site Check.