Решение текущих проблем безопасности MongoDB

MongoDB (или просто Mongo) – это документоориентированная система управления базами данных, которая используется для хранения информации во многих современных веб-приложениях. Крайне важно, чтобы лица, ответственные за управление базой данных Mongo (впрочем, это касается любой СУБД), придерживались передовых методов обеспечения безопасности – это позволяет избежать потери данных в случае аварии, предотвратить их попадание в руки злоумышленников и т.п.

В этой серии мануалов вы найдете общий обзор встроенных функций безопасности MongoDB, а также узнаете о главных передовых методах обеспечения безопасности БД.

Примечание: Другие мануалы этой серии вы найдете по тегу mongodb-security.

Сколько бы усилий вы ни приложили для повышения безопасности своей установки MongoDB в самом начале, со временем в системе неизбежно возникнут новые уязвимости. Начальная настройка безопасности Mongo очень важно, однако не менее важно своевременно выполнять проверки и диагностику для определения состояния безопасности вашей системы и выявления уязвимостей.

Во-первых, следует регулярно проверять наличие обновлений пакета MongoDB, чтобы вовремя устранить ошибки и баги в системе безопасности. Версии Mongo нумеруются в формате X.Y.Z, где X означает номер версии, Y – номер релиза или серии разработки, а Z – номер версии или патча. MongoDB выпускает новый релиз примерно каждый год. Последний релиз на момент написания статьи – 4.4, Кроме того, по мере необходимости разработчики MongoDB выпускают новые версии и исправления.

Как правило, документация MongoDB рекомендует использовать последнюю доступную версию для оптимизации безопасности. Однако при этом стоит иметь в виду, что новая серия релизов (от версии 4.4 до версии 4.6) потенциально может нарушить совместимость. Тем не менее, MongoDB рекомендует всегда обновляться до последней стабильной версии в рамках серии вашего релиза (это значит, если у вас установлена ​​версия 4.4.4, вы должны обновиться до 4.4.5, когда она будет доступна), поскольку они обычно содержат обратно-совместимые патчи для исправления ошибок.

Также следует подумать о том, как вы намереваетесь взаимодействовать со своей базой данных MongoDB и изменится ли это со временем. MongoDB предоставляет несколько команд и методов, которые позволяют по умолчанию выполнять функции JavaScript на стороне сервера. Например, оператор $where можно использовать для оценки JavaScript-выражения запроса документов. Эта возможность обеспечивает большую гибкость, поскольку позволяет выражать запросы, для которых нет эквивалентного стандартного оператора MongoDB. Однако помните: разрешая выполнение Javascript на стороне сервера, вы подвергаете свою базу данных воздействию потенциально вредоносных выражений. Соответственно, MongoDB рекомендует отключить обработку сценариев на серверной стороне, если вы не планируете использовать эту функцию.

Кроме того, MongoDB по умолчанию проверяет все вводимые пользователем данные, чтобы не дать клиентам вставить неверно сформированный BSON в базу данных. Эта проверка не обязательна для всех ситуаций использования БД, но MongoDB рекомендует не отключать ее, чтобы в вашу БД не попали недопустимые документы BSON.

Читайте также: Официальная документация MongoDB

Tags: ,

Добавить комментарий