sql >> Databáze >  >> NoSQL >> MongoDB

Architektura pro bezpečnost:Průvodce pro MongoDB

Výskyt úniků dat již není překvapující. Na základě právě zveřejněné zprávy FBI o kybernetické kriminalitě oběti kybernetické kriminality v roce 2020 kumulativně ztratily neuvěřitelných 4,2 miliardy dolarů, což je o 700 milionů dolarů více, než byly hlášené ztráty v roce 2019. Zejména nezabezpečené databáze MongoDB byly součástí problému vedoucího k významným únikům dat. . V únoru 2019 došlo k porušení databáze MongoDB jedné společnosti poskytující služby pro ověřování e-mailů a odhalila 763 milionů záznamů včetně e-mailových adres, telefonních čísel, IP adres a dat narození. Důvodem je veřejná instance MongoDB bez hesla.

Nedostatek ověření, žádné omezení portů na bráně firewall nebo selhání zabezpečení dat při přenosu může vést k narušení dat. V tomto blogu probereme, jak připravit a zabezpečit databázi MongoDB v produkčním prostředí.

Ověření a autorizace

Autentizace a autorizace jsou dvě různé věci, ale spolu souvisí. Autentizace znamená, že uživatel má přístup k databázi MongoDB, zatímco autorizace uživateli umožňuje přístup ke zdroji v databázi.

Výchozí instalace pro ověřování v MongoDB je zakázána. MongoDB podporuje více autentizace, např.:SCRAM, x.509 Certificate Authentication. Výchozí v MongoDB je SCRAM (Salted Challenge Response Authentication Mechanism), který ověřuje přístup k dodaným přihlašovacím údajům pomocí uživatelského jména, hesla a ověřovací databáze.

Před povolením ověřování prosím vytvořte v MongoDB superuživatele s rolí userAdminAnyDatabase. Po dokončení stačí otevřít soubor /etc/mongod.conf a najít sekci o zabezpečení. Výchozí nastavení je zakázáno, musíme jej pouze povolit.

security:
    authorization: "disabled"

Restartujte službu MongoDB, aby se změny konfigurace projevily. Můžeme také nakonfigurovat RBAC (Role Based Access Control) uvnitř databáze MongoDB pro lepší zabezpečení týkající se uživatele. Takže oddělujeme přístup k databázi na základě uživatele a oprávnění.

Segmentace sítě

Segmentace sítě je důležitým aspektem při návrhu architektury databáze, vztahuje se na všechny databáze, nejen na MongoDB. Nejlepším postupem je oddělit síť pro databázi. Databázový server zřizujeme v privátní síti, kde není dostupný z internetu.

Komunikace s databází probíhá v privátní síti, a když chce uživatel získat přístup k databázi, může použít VPN nebo jumphost. Kromě segmentace sítě hraje klíčovou roli také omezení portu, otevíráme databázový port specifický pro segmentovanou síť pro řízení příchozího a odchozího síťového provozu. Víme tedy, že příchozí provoz pochází z adresy důvěryhodného zdroje.

Šifrování dat

Další oblastí, na kterou se musíme podívat, je šifrování dat. Šifrování dat je metoda, kdy jsou informace během přenosu zakódovány do jiné formy a uloženy v databázi.

Šifrování dat zahrnuje:

  • Přenos dat:data ve stavu přenosu 

  • Data v klidu:data uložená na disku. Existují různé typy šifrování dat v klidu, můžeme použít šifrování na úrovni databáze nebo můžeme použít šifrování ve vrstvě úložiště.

Povolení SSL/TLS z klientů a serveru MongoDB a mezi uzly MongoDB (v replikované sadě a architektuře sdíleného clusteru) zajistí přenos dat. Přenos dat nebude v prostém textu.

Existují různé šifrovací nástroje a funkce pro šifrování dat v klidu, například; AWS poskytuje šifrování disku EBS v kombinaci se službou KMS (Key Management Service) na úložišti, zatímco na databázové vrstvě poskytuje Enterprise Edition MongoDB šifrování databáze v klidu.

Audit databáze

Implementace auditní databáze pro MongoDB poskytuje přehled o tom, co běží uvnitř databáze; např.:od kterého uživatele a jaký příkaz provedl a zdroj IP adresy. Tyto logy můžeme kombinovat a vytvářet pravidla na základě autorizačního přístupu. Dokážeme zjistit, zda v MongoDB nespouští nějaký nezamýšlený uživatel nějaký skript. Můžeme vidět sekci auditLog.

auditLog:
   destination: syslog

Můžeme odeslat protokol auditu MongoDB do souborů syslog a odeslat protokoly do správy protokolů. Chcete mít další tipy na zabezpečení MongoDB? Podívejte se na toto video, abyste lépe porozuměli osvědčeným postupům pro zabezpečení databáze MongoDB

Závěr

Implementace bezpečnostních standardů pro MongoDB je nutností, zejména pro produkční prostředí. Nemůžeme akceptovat každou ztrátu a porušení dat uložených v databázi.


  1. Získejte BinData UUID z Mongo jako řetězec

  2. Víceúrovňová hierarchie dat Ember s vloženými vždy

  3. Úrovně nejistoty MongoDB a jak se jim vyhnout

  4. MongoDB:Najděte vnořený dokument v Array Matching Parameters