Знаете, в чем самая большая ирония веб-безопасности? В том, что тебя могут убить не хакеры с zero-day эксплойтами, а твой собственный лень или забывчивость. История со взломом сайта лейбла Gazgolder - идеальный тому пример.
Никакого взлома там, по сути, и не было. Не было подбора паролей, не было инъекций в базу данных, не было даже фишинга. Был просто неправильно залитый конфиг и открытая папка, которую забыли закрыть.
Судя по разбору, который сделали ребята из башебаша, доступ открылся из-за того, что сервер был настроен "на тестовом сервере" - пока все работает, а переезжать на прод уже некогда. Итог: кто угодно мог зайти в чувствительные директории, посмотреть структуру, скачать бэкапы и, что самое опасное, вытащить данные, которые вообще не должны были быть в вебе.
Страшно, потому что так делают даже крупные проекты. Gazgolder - не какой-то студенческий сайт-визитка, а лейбл с сотнями тысяч фанатов, известными артистами, контрактами и, вероятно, какими-то платежами. И вот у них такой прокол.
Никакого взлома там, по сути, и не было. Не было подбора паролей, не было инъекций в базу данных, не было даже фишинга. Был просто неправильно залитый конфиг и открытая папка, которую забыли закрыть.
Судя по разбору, который сделали ребята из башебаша, доступ открылся из-за того, что сервер был настроен "на тестовом сервере" - пока все работает, а переезжать на прод уже некогда. Итог: кто угодно мог зайти в чувствительные директории, посмотреть структуру, скачать бэкапы и, что самое опасное, вытащить данные, которые вообще не должны были быть в вебе.
Что именно пошло не так
Обычно таких дыр три штуки, которые встречаются чаще всего:- Открытый .git - если сервер не запрещает доступ к папке .git, злоумышленник может скачать всю историю репозитория. А там часто бывают пароли, ключи API, старые конфиги.
- .env в открытую - этот файл должен лежать за пределами веб-директории. Но если он доступен по HTTP - привет, база данных, ключи шифрования и секреты администраторов.
- Бэкапы в публичной папке - backup.sql, site_old.tar.gz, config.php.bak. Разработчики часто делают дампы прямо на сервере, а потом забывают их удалить. И любой может скачать этот файл, открыть блокнот и прочитать всё.
В случае с Gazgolder, судя по всему, сработала одна из таких комбинаций. Исследователь просто перебирал стандартные пути и наткнулся на открытый доступ. Ни взлома, ни подбора - просто "ой, а тут не закрыто".
Почему это смешно и страшно одновременно
Смешно, потому что защититься от такого можно за пять минут. Выключить DirectoryListing в nginx, закрыть доступ к .git* через .htaccess или конфиг, хранить .env за пределами public_html. Базовая гигиена.Страшно, потому что так делают даже крупные проекты. Gazgolder - не какой-то студенческий сайт-визитка, а лейбл с сотнями тысяч фанатов, известными артистами, контрактами и, вероятно, какими-то платежами. И вот у них такой прокол.
Кто в зоне риска
Все, кто:- копирует проект с тестового сервера на боевой через FTP и тащит лишнее;
- не проверяет права доступа после деплоя;
- думает, что "никто не будет ломиться";
- прячет конфиги не туда.
Что делать, чтобы не стать следующим
- Запретить доступ к любым скрытым файлам и директориям через веб-сервер.
- Хранить конфиденциальные файлы выше корневой директории сайта.
- Использовать автоматические проверки (например, git-secrets или CI-сканеры).
- Сделать правило: "Если файл не должен быть доступен по HTTP - дай ему права 600 или 640".