Что такое .DS_Store?
.DS_Store (Desktop Services Store) — это скрытый файл, создаваемый операционной системой macOS для хранения метаданных о папке. Он используется Finder для записи таких параметров, как расположение значков, порядок сортировки, выбранный вид (иконки, список и т.д.), фон папки и другие настройки интерфейса.Информация, изложенная в статье, основана на моём личном опыте и практических наблюдениях. Однако формат и содержание файла .DS_Store могли изменяться с течением времени. Ранее этот файл мог содержать информацию о вложенных каталогах и файлах, однако, как уточнили специалисты, в текущих версиях macOS это уже не так. Тем не менее, в определённых ситуациях .DS_Store всё ещё может быть полезен для исследования структуры сайта.
Почему он появляется?
.DS_Store автоматически создаётся Finder'ом в любой папке, к которой пользователь macOS получил доступ через графический интерфейс. Это касается как локальных директорий, так и удалённых (например, через SMB, FTP или WebDAV).
Опасность .DS_Store
- разглашение структуры директорий .
.DS_Store может содержать ссылки на файлы и директории, которые находятся в папке даже если они недоступны через веб-сервер. Это может дать злоумышленнику карту сайта и информацию о скрытых ресурсах. - Утечка конфиденциальных данных:
Если в .DS_Store указаны пути к конфиденциальным файлам (например, admin/config.php или backup.zip), это может помочь злоумышленнику в поиске уязвимостей. - Помощь в атаках на безопасность:
.DS_Store может упростить взлом сайта, так как злоумышленник получает информацию о структуре файлов и возможно даже о путях к чувствительным данным.
Почему он появляется на сайтах?
.DS_Store появление его на сайте:- Ошибка при загрузке файлов:
Разработчик использовал macOS для работы с проектом и случайно загрузил .DS_Store вместе с другими файлами на сервер. - Автоматическая генерация:Если сервер поддерживает протоколы WebDAV, SMB или аналогичные, то .DS_Store может быть создан Finder'ом при доступе к папкам через macOS.
- Недостаточная очистка:При разработке или деплое проекта .DS_Store не был исключён из файлов для загрузки.
Чем полезен для исследования в Bug Bounty?
- Изучение структуры сайта:
.DS_Store позволяет узнать о файлах и папках, которые могут быть скрыты от обычных пользователей. Например, можно обнаружить:
Страницы администратора,
Резервные копии,
Временные файлы,
Конфигурационные файлы. - Поиск уязвимостей:
Найдя .DS_Store исследователь может определить пути к файлам с конфиденциальной информацией или скрытые функции, интерфейсы сайта которые менее защищены . - Автоматизация анализа:
С помощью инструмента который я разработал специально для этой статьи:
DsSScan при его помощи можно легко извлечь полезную информацию из .DS_Store и ускорить процесс анализа.
Как предотвратить появление .DS_Store?
- Игнорирование файла при загрузке:
Настройте системы деплоя, чтобы .DS_Store не загружался на сервер. Например, добавьте его в .gitignore . - Удаление перед загрузкой:
Используйте команды для поиска и удаления .DS_Store перед деплоем:
find . -name ".DS_Store" -delete - Настройки в macOS:
Вы можете отключить создание .DS_Store в сетевых директориях, выполнив следующую команду:
defaults write com.apple.desktopservices DSDontWriteNetworkStores true - Настройка сервера:
Добавьте правило в конфигурацию веб-сервера (например, Nginx или Apache), чтобы доступ к .DS_Store блокировался:
- Apache:
<Files ".DS_Store">
Require all denied
</Files> - Nginx :
location ~ /\.DS_Store {
deny all;
access_log off;
log_not_found off;
}
- Apache:
- Проверка безопасности :
Используйте инструменты для аудита безопасности, чтобы сканировать сервер на наличие .DS_Store и других чувствительных файлов.