Preguntas con etiqueta 'nosql'

3
respuestas

¿Cómo asegurar una instancia de MongoDB? [cerrado]

¿Alguien tiene experiencia en asegurar / fortalecer el servidor MongoDB? Las listas de verificación o guías serían bienvenidas.     
hecha 27.09.2011 - 13:26
4
respuestas

¿Qué tipo de ataques se pueden usar contra MongoDB?

Estoy empezando a aprender MongoDB y sentí curiosidad por saber si era susceptible a algún tipo de ataque de inyección similar a SQLi . Debido a la naturaleza de la base de datos, no creo pensar que se pueda inyectar en ella, pero ... ¿Qué o...
hecha 07.11.2012 - 17:08
2
respuestas

¿La inyección en una arquitectura de base de datos NoSQL también se llama inyección SQL?

Es la inyección en una arquitectura de base de datos NoSQL también llamada inyección SQL y sigue siendo parte de OWASP 2013 Top 10 , ¿Inyección de la categoría A1? Por ejemplo, una inyección en el código que se comunica con las siguientes ar...
hecha 22.06.2016 - 10:45
2
respuestas

Encriptación con Mongo

¿Cómo puedo lograr los siguientes objetivos? Toda la computación y el almacenamiento se ubicarán en la nube. Cifrado en tránsito de todos los datos entre los nodos web y los nodos db que ejecutan MongoDB. ¿Cómo configurar túneles? ¿Qué p...
hecha 11.04.2011 - 18:10
2
respuestas

___ inyección de qstnhdr ___ MongoDB Nosql en código python ______ qstntxt ___

Aquí está el fragmento de código para acceder a MongoDB.

%pre%

Me dijeron que este código es vulnerable a la inyección NoSQL ya que la variable de condición no está correctamente desinfectada. Pero no pude entender cómo funciona la inyección con python. ¿Puede alguien darme un ejemplo como qué entrada puede causar los problemas o algunas referencias a un ataque de inyección relacionado? Por cierto, también hice algunas investigaciones por mi cuenta, pero solo encontré la inyección basada en Javascript y traté de no funcionar en este caso. Gracias.

    
______ answer83234 ___

El operador %code% en MongoDB es una característica que es mejor evitar. Su rendimiento es abismal, y no solo porque no se beneficia de los índices. Casi todos los casos de uso comunes se pueden resolver de manera mucho más eficiente con una consulta o agregación de búsqueda común, especialmente una tan trivial como esta. Pero esto es un intercambio de seguridad de pila, no un flujo de pila, así que concentrémonos en las implicaciones de seguridad.

La declaración %code% pasa un fragmento de código javascript a la base de datos que la base de datos ejecutará una vez para cada documento de la colección. Afortunadamente, este script no tiene acceso al objeto %code% ni a otras funciones de shell peligrosas y funciona en copias de los documentos, por lo que el atacante al menos no puede cambiar el contenido de la base de datos como ocurre con muchas inyecciones de SQL. Pero, por ejemplo, es vulnerable a los ataques donde el atacante quiere devolver otros resultados de los previstos.

Vamos a hacer un ejemplo. Digamos que tenemos un blog. Nuestro blog tiene muchos artículos que se pueden leer en público, pero también tenemos algunos artículos privados que son para nuestro uso interno y que no deben publicarse. Así que tenemos un campo %code% en nuestros documentos que puede ser %code% o %code% dependiendo de si nuestros visitantes deben ver el artículo o no. Nuestra consulta de MongoDB para obtener una lista de todos los artículos en una categoría determinada para mostrarla al visitante del sitio web es así:

%pre%

Eso debería asegurarnos de que nadie vea nuestros artículos ocultos. O lo hace? Cuando el usuario controla la variable %code% , puede establecerla en esta cadena:

%pre%

El fragmento de código Javascript resultante que se envía a la base de datos es el siguiente:

%pre%

Cuando tiene un fragmento de código javascript con varios comandos separados por %code% , se ejecutarán como una función y se necesita una declaración %code% para determinar qué valor se devolverá al llamante. Esta función siempre devolverá verdadero. Eso significa que el usuario también verá todos los artículos de nuestra colección, incluidos aquellos que se supone que están ocultos.

    
______ answer83261 ___
  

¿Puede alguien darme un ejemplo como qué entrada puede causar los problemas?

Para su pieza concreta de código, esto debería funcionar:

%pre%

%code% se usa para escapar de la cadena y la instrucción, luego sigue el ataque real %code% (ataque DOS), y luego el %code% aún en pie se transforma en una sintaxis válida a través de %code% .

Hasta la versión 2.4 de MongoDB, el objeto %code% era realmente global, por lo que podría cambiar los datos en la base de datos, e incluso recuperar datos usando inyección ciega .

Como ya no es posible, lo máximo que puede hacer un atacante es DOS y la evasión del filtro descrita por Philipp (lo que no sería un problema para su ejemplo, pero puede ser un problema en general).

Eso todavía es bastante malo, por lo que deberías defenderte escapando %code% , %code% y %code% .

    
___

Aquí está el fragmento de código para acceder a MongoDB. client = MongoClient() db = client.test_database collection = db.test # Get data from fields condition = form.getvalue('name') if condition: where = {"$where": "this.name == '"+cond...
hecha 07.03.2015 - 00:35
1
respuesta

¿Qué estructura de datos usaría / ha usado para almacenar las ACL dentro de un sistema híbrido ACL / RBAC?

En nuestro sistema, cada recurso tiene una lista de control de acceso (ACL), que enumera las entradas (ACE) que tienen un tipo específico de acceso a ese recurso. El ACE puede ser para entidades finales (por ejemplo: usuarios como "Mr Q") o enti...
hecha 24.12.2013 - 22:01
2
respuestas

¿Qué tan seguro es el protocolo de conexión de MongoDB?

Estoy creando una aplicación independiente JavaFX 2.0 (se distribuirá como un archivo .exe) y abre una conexión a una instancia de MongoDB. La conexión es solo una conexión estándar de Mongo que utiliza el protocolo de conexión Mongo. ¿Es el...
hecha 22.10.2013 - 18:13
2
respuestas

Seguridad de las bases de datos NoSQL

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á...
hecha 01.01.2013 - 21:01
0
respuestas

Inyección de MongoDB, lectura y escritura en archivos

He estado jugando con Nosql y específicamente con la inyección de MongoDB en algunos desafíos y en mi laboratorio. Si tiene un punto de inyección, puede enumerar y volcar fácilmente la base de datos. Pero, ¿puedes ir más allá de eso, como las mu...
hecha 15.10.2015 - 12:47
1
respuesta

¿Cuáles son algunos de los peores DBMS para software final y por qué?

Parece que hay una explosión de nuevas bases de datos, especialmente en las ofertas no relacionales y "NotOnly SQL". ¿Cómo afecta la moda de la base de datos a la integridad y seguridad de los datos? ¿Cuáles son algunas formas en que los program...
hecha 11.01.2013 - 19:59