Разпространението на нарушенията на данните вече не е изненадващо. Въз основа на току-що публикуван доклад за киберпрестъпленията на ФБР, жертвите на киберпрестъпления са загубили кумулативно огромни $4,2 милиарда през 2020 г., което е със 700 милиона долара повече от отчетените загуби през 2019 г. По-специално, несигурните бази данни MongoDB са част от проблема, водещ до значителни нарушения на данните. . През февруари 2019 г., компанията за услуги за проверка на имейли разби тяхната база данни MongoDB и разкри 763 милиона записа, включително имейл адреси, телефонни номера, IP адреси и дати на раждане. Причината е публичен екземпляр на MongoDB без парола.
Липсата на удостоверяване, липсата на ограничаване на портовете на защитната стена или неспособността да се защитят данните при предаването може да доведе до пробив на данни. В този блог ще обсъдим как да подготвим и защитим своята база данни MongoDB в производствена среда.
Удостоверяване и упълномощаване
Удостоверяването и упълномощаването са две различни неща, но са свързани. Удостоверяването означава, че потребителят има достъп до базата данни MongoDB, докато упълномощаването позволява на потребителя да има достъп до ресурса в базата данни.
Инсталацията по подразбиране за удостоверяване в MongoDB е деактивирана. MongoDB поддържа множество удостоверения, например:SCRAM, x.509 удостоверяване на сертификат. По подразбиране в MongoDB е SCRAM (Механизъм за удостоверяване с отговор на солените предизвикателства), който проверява предоставения достъп с идентификационни данни с потребителското име, паролата и базата данни за удостоверяване.
Преди да активирате удостоверяването, моля, създайте суперпотребител в MongoDB с ролята userAdminAnyDatabase. След като приключи, просто трябва да отворим файла /etc/mongod.conf и да намерим секцията за сигурност. По подразбиране е деактивирано, просто трябва да го активираме.
security:
authorization: "disabled"
Рестартирайте услугата MongoDB, за да приложите промените в конфигурацията. Можем също да конфигурираме RBAC (Role Based Access Control) в базата данни MongoDB за по-добра сигурност, свързана с потребителя. Така че разделяме достъпа до базата данни въз основа на потребителя и привилегиите.
Сегментиране на мрежата
Сегментацията на мрежата е важен аспект, когато проектираме архитектура на база данни, тя се прилага за всички бази данни, не само за MongoDB. Най-добрата практика е да отделим мрежата за базата данни. Настроихме сървъра на база данни в частна мрежа, където не може да се достигне от интернет.
Комуникацията с базата данни се осъществява в частната мрежа и когато потребителят иска да получи достъп до базата данни, той може да използва VPN или jumphost. Освен сегментирането на мрежата, ограничаването на порта също играе ключова роля, ние отваряме порта на базата данни, специфичен за сегментираната мрежа, за да контролираме входящия и изходящия мрежов трафик. И така, знаем, че входящият трафик е от доверения адрес на източника.
Криптиране на данни
Друга област, която трябва да разгледаме, е криптирането на данни. Шифроването на данни е метод, при който информацията се кодира в друга форма по време на предаването и се съхранява в базата данни.
Криптирането на данни обхваща:
-
Данни в пренос:данни в състояние на предаване
-
Данни в покой:данни, съхранявани на диска. Има различни видове криптиране на данни в състояние на покой, можем да използваме криптиране на ниво база данни или можем да използваме криптиране в слоя за съхранение.
Активирането на SSL/TLS от клиентите и сървъра на MongoDB и между възлите на MongoDB (в репликация и архитектура на раздробени клъстери), ще защити данните при пренос. Прехвърлянето на данни няма да бъде в обикновен текст.
Има различни инструменти за криптиране и функции за криптиране на данни в покой, например; AWS осигурява EBS дисково криптиране, комбинирано с KMS (Услуга за управление на ключове) в хранилището, докато на слоя на базата данни, Enterprise изданието на MongoDB осигурява криптирането на базата данни в покой.
Одит на база данни
Внедряването на база данни за одит за MongoDB дава видимост на това, което се изпълнява в базата данни; например:от кой потребител и каква команда е изпълнила и източника на ip адреса. Можем да комбинираме тези регистрационни файлове и да създаваме правила въз основа на достъпа за оторизация. Можем да открием дали има неволен потребител, изпълняващ някакъв скрипт в MongoDB. Можем да видим раздела auditLog.
auditLog:
destination: syslog
Можем да изпратим регистрационния файл за одит на MongoDB в syslog файловете и да го изпратим в Log Management. Искате ли да получите още съвети за осигуряване на MongoDB? Гледайте този видеоклип, за да получите по-добро разбиране за най-добрите практики за защита на вашата база данни MongoDB
Заключение
Внедряването на стандарти за сигурност за MongoDB е задължително, особено за производствена среда. Не можем да приемем всяка загуба и нарушаване на данните, съхранявани в базата данни.