Каким образом происходит взлом базы данных MongoDB?

У меня возникла проблема с безопасностью базы данных, которую я использую. Первоначально она не имела авторизации, что привело к взлому: злоумышленники удалили данные и оставили следующее сообщение, которое я приведу ниже. После этого я добавил авторизацию, но взлом произошел снова. Затем я запретил доступ к порту базы данных со всех внешних источников, как в конфигурации самой базы, так и через брандмауэр, оставив только локальный доступ. Однако это не помогло, и взлом произошел вновь, что меня удивило. Злоумышленники удалили текущего пользователя с правами readWrite и восстановили предыдущего с теми же логином и паролем, после чего осуществили свои действия. Каждый раз я восстанавливаю данные из бэкапов. Мой сервер (на nodejs) работает в Docker, как и база данных, и они общаются через созданный для них мост (network). В чем может быть проблема, возможно, кто-то знает? <br/> <br/> В README было оставлено следующее сообщение: <br/> <blockquote>All your data is backed up. You must pay 0.0067 BTC to *здесь был номер кошелька* In 48 hours, your data will be publicly disclosed and deleted. (more information: go to *здесь был адрес сайта*) After paying send mail to us: *здесь была почта* and we will provide a link for you to download your data. Your DBCODE is: ...</blockquote> <br/> <br/> PS: Если что, я занимаюсь фронтендом и могу чего-то не знать.
  • 19 сентября 2024 г. 11:23
Ответы на вопрос 4
Ситуация, с которой вы столкнулись, достаточно серьезна, и успешный взлом базы данных MongoDB указывает на наличие уязвимостей в вашей конфигурации или в самой системе. 

Вот несколько шагов и возможных причин, которые могут объяснить, как произошел взлом:

1. **Идентификация уязвимостей**:
   - Поскольку вы начали с базы данных без авторизации, злоумышленники могли получить доступ к ней просто через незащищенный порт. Даже после добавления авторизации, недостатки в конфигурации могли позволить им обойти ограничения.

2. **Ошибки в конфигурации**:
   - Убедитесь, что вы правильно настроили аутентификацию. Проверьте, что методы аутентификации включены, и без них доступ к базе данных невозможно.
   - Защититесь от доступа по IP-адресам. Используйте файлы конфигурации и настройки сети, чтобы ограничить доступ только с доверенных IP-адресов.

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

4. **Использование ulimit и прав доступа**:
   - Применяйте ограничения на использование ресурсов и уровни доступа к контейнерам. Убедитесь, что пользователь, под которым работает MongoDB, не имеет доступа к системным ресурсам, которые могут использоваться для компрометации безопасности.

5. **Атаки через уязвимости приложения**:
   - Злоумышленники могут использовать уязвимости вашего Node.js приложения для получения доступа к базе данных. Проверьте свое приложение на наличие уязвимостей, таких как SQL-инъекции, XSS и другие.

6. **Логи и мониторинг**:
   - Проверьте лог-файлы MongoDB и сервера, чтобы выявить подозрительное поведение или атаки. Включите мониторинг для вашего приложения и базы данных, чтобы отслеживать несанкционированные действия.

7. **Уведомления и бэкапы**:
   - Продолжайте делать регулярные бэкапы, но также настройте уведомления для проактивного обнаружения несанкционированных изменений в вашей базе данных.

8. **Обновление ПО**:
   - Убедитесь, что используете последнюю версию MongoDB и Node.js, поскольку обновления часто включают важные исправления безопасности.

9. **Общение с хостингом**:
   - Если ваша база данных хостится на облачном сервисе, возможно, стоит обратиться к провайдеру или использовать инструменты, предлагаемые провайдером для обеспечения безопасности (например, VPN, приватные сети).

Если проблема не решится, возможно, стоит обратиться за помощью к специалисту по информационной безопасности, который сможет провести аудит вашей системы и выявить уязвимости.
Ну и зачем же вы, фронт, занимаетесь эксплуатацией? Намите на фрилансе админа, он вам за два часа всё нормально настроит.
Для этого вам требуется провести аудит безопасности вашего сервера или серверов опытным системным администратором или безопасником. Если самостоятельно не можете этого сделать - то есть фриланс, как уже сказали. Дистанционно по симптомам механизм взлома выяснить невозможно - там тысячи вариантов. После выяснения деталей ОС со всем содержимым следует полностью удалить и поставить новую с правильными настройками безопасности.
нарисуйте схему взаимодействия компонентов приложения и что именно торчит от него в публичной части. будут понятны векторы атак. 

вангую что ломают вас не через субд как таковую (хотя держать ее с доступом извне странно) а через приложение. где то там есть возможность проводить инъекции и тд
Похожие вопросы