Seguridad de las bases de datos NoSQL

5

Esperemos que esto no sea demasiado amplio.

Tengo poca experiencia con las bases de datos NoSQL, pero sé que están aumentando en popularidad. Como desarrollador que está extremadamente preocupado por la seguridad, me pregunto, en general, cuáles son los pros y los contras desde una perspectiva de seguridad cuando se trata de usar bases de datos NoSQL.

Por ejemplo, ¿son seguros en general? ¿Son vulnerables a los mismos tipos de ataques que son una amenaza para las bases de datos relacionales tradicionales? ¿Hay nuevas vulnerabilidades asociadas con ellos de las que alguien como yo, con solo experiencia de DB relacional, nunca haya escuchado? ¿Y hay mejores prácticas / recomendaciones para las bases de datos NoSQL como las que puedes encontrar fácilmente para las bases de datos relacionales?

    
pregunta David Stratton 01.01.2013 - 21:01
fuente

2 respuestas

2

En general, por lo que he visto, los problemas con las bases de datos NoSQL son algo diferentes al SQL estándar, generalmente como resultado de su enfoque.

Lo primero es que, en general, muchas bases de datos NoSQL carecen de muchas características de seguridad (por ejemplo, autenticación / autorización detallada). Los sitios web de los productos en sí mismos dirán que solo están diseñados para ser accedidos desde "entornos confiables" (por ejemplo, redis , y < a href="http://docs.mongodb.org/manual/administration/security/"> mongodb ).

Qué tan importantes son sus limitaciones, probablemente dependería de para qué quieres usarlas. Por lo tanto, una aplicación web estándar puede estar bien (solo se necesita un nivel de acceso y puede restringir el acceso a nivel de IP solo al servidor web), pero un sistema diseñado para múltiples usuarios con diferentes privilegios para acceder directamente a la base de datos podría ser problemático. / p>

En segundo lugar (y acepto que este punto podría verse como un poco FUD'y) hay una madurez del código base. Todos estos productos son relativamente nuevos y han crecido con bastante rapidez, por lo que espero que haya habido menos escrutinio desde un punto de vista de seguridad en comparación con los motores como Oracle DBMS o MS SQL. Si bien ambos DB han tenido muchos problemas en el pasado, más recientemente (especialmente en el caso de MS-SQL) han tenido un registro de seguridad bastante bueno.

La otra cara de esto es que las bases de código son mucho más pequeñas y los productos mucho más simples, por lo que hay menos funcionalidad para atacar. Además, como (AFAIK) carecen de funciones como la capacidad de ejecutar comandos de sistemas operativos, hay un impacto de compromiso potencialmente menor que el que podría ver con los grandes DBMS relacionales que tienen una gran variedad de funciones disponibles.

    
respondido por el Rоry McCune 02.01.2013 - 13:52
fuente
2

NoSQL es vulnerable de la misma manera que las bases de datos SQL o LDAP son vulnerables. Cuando se usa un lenguaje para programar una aplicación y usted se conecta a una base de datos, deberá ingresar información en la base de datos.

El peligro con cualquiera de los productos es que un usuario puede incluir código en lugar de información. Esto no depende del tipo de base de datos o idioma utilizado.

Cuando recibe comentarios del usuario, debe asegurarse de que lo desinfecte para evitar que se produzca la inclusión del código. El problema con las bases de datos NoSQL es que a menudo todavía no hay API o no lo suficientemente exhaustivamente probadas para su idioma. Esto significa que tendrá que escribirlo usted mismo. Esto es peligroso ya que siempre puede haber algo que se mire por encima de la cabeza. Quiero referirlo a OWASP - Referencias inseguras de objetos directos

Sé que ha habido preocupaciones sobre, por ejemplo, MongoDB, sobre el mecanismo de autenticación estándar que se está utilizando para la base de datos en sí. Esto es más un problema de no exponer su base de datos a fuentes no confiables directamente. Por ejemplo, esto es como si permitiera que un usuario de su sitio web se conecte directamente a su base de datos MySQL. Si bien esto puede tener un gran impacto, la probabilidad de que su base de datos se vea comprometida de esta manera es baja y no depende de su aplicación web.

    
respondido por el Lucas Kauffman 01.01.2013 - 22:18
fuente

Lea otras preguntas en las etiquetas