- PVSM.RU - https://www.pvsm.ru -

Все, наверное, слышали про NoSQL базы, в частности, про MongoDB. Может даже быть кто-то ставил эту базу на свой сервер. Возможно, с дефолтными настройками. Если это так, пора срочно нырнуть под кат. Потому что MongoDB с дефолтными настройками абсолютно открыта извне всем и каждому.
Итак, все началось с письма от весьма недурственного Hetzner. Вот как оно выглядело:

Коротко суть в следующем:
MongoDB — это популярная база в вебе, но вот беда — она во многих местах ну абсолютно открыта всем. Это неправильно, поэтому вот рекомендации по безопасности. Ну, вы получили это письмо, потому что у вас она открыта тоже. Будете подобные письма и впредь, пока не закроете.
Я удивился. Блин, да я очень удивился.
Решил проверить, насколько же она открыта. Я, просто несказанно удивился результатам, understatement.
А результаты таковы: лучшего троянского коня мир просто не знал.
Ну, а теперь конкретика.
Это просто. Пробуем открыть сайт в браузере по порту 28017. Набираем — ваш_домен_ру:28017
И, вуаля:

Ну, да, да. Пока особого криминала пока нет, но как минимум неприятно, что служебная информация доступна всем.
Проверяем дальше.
Пробуем подключиться снаружи mongo-клиентом. Набираем в консоле на ноутбуке:
mongo ваш_домен.зона:27017
И, снова вуаля:

Вот так, не спрося пароля, просто подключаемся к шеллу MongoDB. Теперь мы можем создавать, менять, удалять, просматривать содержимое всех баз. Это уже полный абзац. Но, к сожалению, это только цветочки.
Набираем в shell MongoDB команду ls():

Ну и на закуску cat("/etc/passwd"):

Дальше ковыряться не стал. Мне хватило.
Смотрим настройки на сервере: less /etc/mongodb.conf. И вот что мы видим:

Настройки авторизации по дефолту выключены.
Ну и по дефолту слушаем все интерфейсы:

Как минимум добавить строчки в конфиг:
bind_ip = 127.0.0.1
И опционально настроить авторизацию:
# Turn on/off security. Off is currently the default
#noauth = true
auth = true
При этом проверьте, чтобы сайт/сервис не сломался, поскольку, возможно, придется научить авторизоваться и его. Плюс обязательно нужно провести полный аудит системы на предмет проникновения.
Статистика удручает. Только в Германии студенты, с которых все началось [2], обнаружили десятки тысяч открытых баз. Картина в мировых масштабах может быть в десятки, а то и сотни раз хуже.
Не буду задавать риторические вопросы, а впрочем, какого черта? Задам.
1) Зачем делать такие дефолтные настройки?
2) Зачем в Mongo shell встраивать доступ к файловой системе?
Понятно, что сам виноват, RTFM. Но зачем такие настройки?
Поневоле закрадывается мысль: «такая „странная логика“ встречается только в дефолтных настройках или, может, еще где нибудь, например, в ядре?»
Выводы: хотите кого-то взломать? Посоветуйте установить ему дефолтную MongoDB.
Автор: mrvol
Источник [3]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/vzlom/84414
Ссылки в тексте:
[1] хостинга: https://www.reg.ru/?rlink=reflink-717
[2] с которых все началось: http://www.securityweek.com/thousands-mongodb-databases-found-exposed-internet
[3] Источник: http://habrahabr.ru/post/251925/
Нажмите здесь для печати.