Sicurezza dei database NoSQL

5

Speriamo che non sia troppo ampio.

Ho poca esperienza con i database NoSQL, ma so che stanno crescendo in popolarità. Essendo uno sviluppatore estremamente preoccupato per la sicurezza, mi chiedo, in generale, quali sono i pro e i contro dal punto di vista della sicurezza quando si tratta di utilizzare i database NoSQL.

Ad esempio, sono sicuri in generale? Sono vulnerabili agli stessi tipi di attacchi che rappresentano una minaccia ai database relazionali tradizionali? Ci sono nuove vulnerabilità associate a loro che qualcuno come me - con solo esperienza di DB relazionale - potrebbe non averne mai sentito parlare? E ci sono best practice / raccomandazioni per i database NoSQL come quelli che puoi trovare facilmente per i database relazionali?

    
posta David Stratton 01.01.2013 - 21:01
fonte

2 risposte

2

In generale, da ciò che ho visto, i problemi con i database NoSQL sono in qualche modo diversi dallo standard SQL, generalmente come risultato del loro focus.

Innanzitutto, in generale molti database NoSQL mancano di molte funzionalità di sicurezza (ad esempio autenticazione / autorizzazione a grana fine). I siti web dei prodotti in realtà diranno che sono progettati solo per l'accesso da "ambienti attendibili" (ad esempio redis e < a href="http://docs.mongodb.org/manual/administration/security/"> mongodb ).

Quanto sono importanti i loro limiti, probabilmente dipenderanno da ciò che si desidera usarli. Quindi un'applicazione web standard potrebbe essere ok (solo un livello di accesso è necessario e si può limitare l'accesso a livello IP solo al server web), ma un sistema progettato per più utenti con diversi privilegi per accedere direttamente al database sarebbe problematico. / p>

In secondo luogo (e accetto che questo punto potrebbe essere visto come un po 'FUD'y) c'è la maturità del codice base. Questi prodotti sono tutti relativamente nuovi e sono cresciuti abbastanza rapidamente, quindi mi sarei aspettato che ci fosse stato meno scrutinio su di essi dal punto di vista della sicurezza rispetto a motori come Oracle DBMS o MS SQL. Anche se entrambi questi DB hanno avuto molti problemi in passato, più recentemente (specialmente nel caso di MS-SQL) hanno avuto un buon record di sicurezza.

Il rovescio della medaglia è che le basi di codice sono molto più piccole ei prodotti molto più semplici quindi c'è meno funzionalità da attaccare. Inoltre (AFAIK) mancano di funzionalità come la possibilità di eseguire comandi dei sistemi operativi, c'è potenzialmente un impatto inferiore del compromesso rispetto a quello che si potrebbe vedere con il grande DBMS relazionale 'che ha una vasta gamma di funzioni disponibili.

    
risposta data 02.01.2013 - 13:52
fonte
2

NoSQL è vulnerabile allo stesso modo in cui i database SQL o i database LDAP sono vulnerabili. Quando si utilizza una lingua per programmare un'applicazione e si interfaccia a un database, è necessario inserire le informazioni nel database.

Il pericolo con uno qualsiasi dei prodotti è che un utente possa includere il codice invece delle informazioni. Questo non dipende dal tipo di database o lingua utilizzata.

Quando ottieni l'input dell'utente devi assicurarti di sterilizzarlo per evitare che si verifichi l'inclusione del codice. Il problema con i database NoSQL è che spesso non ci sono ancora API testate a sufficienza per la tua lingua. Ciò significa che dovrai scriverlo da solo. Questo è pericoloso perché potrebbe esserci sempre qualcosa che si guarda oltre la testa. Desidero fare riferimento a OWASP - Riferimenti agli oggetti diretti non sicuri

So che ci sono stati dubbi, ad esempio MongoDB, sul meccanismo di autenticazione standard utilizzato per il database stesso. Questo è più un problema di non esporre direttamente il database stesso a fonti non attendibili. Ad esempio, è come se si consentisse a un utente del proprio sito Web di connettersi direttamente al proprio database MySQL. Anche se questo può ancora avere un grande impatto, la probabilità di ottenere il tuo database compromesso come questo è bassa e non dipende dalla tua applicazione web.

    
risposta data 01.01.2013 - 22:18
fonte

Leggi altre domande sui tag