Hace algún tiempo, estaba muy de moda entre los investigadores de seguridad encontrar almacenamientos en la nube de AWS mal configurados con todo tipo de información confidencial. Luego incluso publiqué una pequeña nota sobre cómo se descubre el almacenamiento en la nube abierta de Amazon S3.
Sin embargo, el tiempo pasa y el énfasis en la investigación se ha desplazado a la búsqueda de bases de datos disponibles públicamente. Más de la mitad de los casos conocidos de filtraciones de datos importantes durante el año pasado son filtraciones de bases de datos abiertas (una revisión de las filtraciones para 2018 aquí y aquí ).

Hoy intentaremos comprender cómo los investigadores de seguridad detectan esas bases de datos ...
Descargo de responsabilidad requerido: este artículo no aborda ni plantea problemas legales y éticos relacionados con la búsqueda e identificación de bases de datos disponibles públicamente. Toda la información a continuación debe considerarse exclusivamente como educativa e informativa.
No descubriré América si digo que las principales herramientas para encontrar bases de datos abiertas son los motores de búsqueda especializados Shodan y Censys . Debo decir de inmediato que estos no son servicios gratuitos y que tiene que pagar sus no rublos ganados honestamente para acceder a los resultados de búsqueda completos (en el caso de Shodan es de $ 59 / mes, y para Censys - $ 99 / mes, y esto es solo por los paquetes básicos mínimos). Las versiones gratuitas de los motores de búsqueda limitan en gran medida el número de resultados en los resultados de búsqueda.
Además de la búsqueda clásica similar a Google que usa la barra de búsqueda, estos motores de búsqueda brindan la capacidad de conectarse a ellos a través de la API. El afortunado propietario de una suscripción paga recibirá su clave API. Esto hace posible facilitar significativamente la tarea de recoger un montón de basura de búsqueda. Al final de este artículo, proporcioné una lista de scripts útiles y programas de automatización de búsqueda que usan claves API.
, , GitHub, API-, .
Veamos el motor de búsqueda Shodan como un ejemplo de cómo encontrar bases de datos abiertas MongoDB y Elasticsearch.
La consulta más simple y obvia que pide es "MongoDB":

Como se puede ver en la captura de pantalla, esta solicitud nos devolvió todos los servidores MongoDB indexados (en el puerto predeterminado 27017). Además, la mayoría de ellos (en la captura de pantalla, estos son los primeros tres) serán bases de datos cerradas, que requieren cuentas para la conexión. Y esto no es exactamente lo que nos interesa. Más precisamente, este no es el caso en absoluto.
Vamos a complicar un poco la consulta usando los filtros de búsqueda "todos:" información del servidor mongodb "todos:" métricas "":

El resultado ya se ve mucho mejor. Todas las bases de datos encontradas estaban disponibles gratuitamente en el momento en que fueron indexadas por el motor de búsqueda. Con un alto grado de probabilidad, puede conectarse a ellos en las direcciones IP especificadas utilizando algún administrador para MongoDB (por ejemplo, NoSQL Manager para MongoDB o Studio 3T para MongoDB).
Puede limitar la búsqueda a un país. Digamos que busquemos MongoDB abiertos en China (consulta "all:" información del servidor mongodb "all:" metrics "country:" cn ""):

Para buscar bases de datos abiertas de Elasticsearch, es conveniente utilizar la consulta "puerto:" 9200 "todos:" índices elásticos "":

Desafortunadamente, no encontré una manera de establecer la condición de búsqueda en la barra de búsqueda de acuerdo con el tamaño de la base de datos. Si sabe cómo hacerlo (establezca un filtro en los parámetros "totalSize" o "sizeOnDisk" en la barra de búsqueda), escriba los comentarios.
Puede aplicar filtros más complejos (restricciones en el tamaño de la base de datos, la fecha en que el servidor ingresó el índice, etc.) a los resultados de búsqueda utilizando scripts y programas especializados. Para esto, ya necesitará acceso pagado y una clave API, como escribí anteriormente.
Aquí hay una breve lista de lo que puede ser útil:
- cli.shodan.io es la consola oficial de Shodan. En ruso sobre su uso se puede leer aquí .
- shodan-manual.com - una guía de Shodan en ruso.
- github.com/woj-ciech/LeakLooker es un programa de Python para encontrar bases de datos abiertas (MongoDB, CouchDB, Elasticsearch, etc.).
- lampyre.io es una interfaz gráfica muy poderosa (¡y hasta ahora muy defectuosa!) para buscar y visualizar lo que se encontró. Tiene plantillas integradas para buscar MongoDB y mucho más. Está en prueba beta con todas las consecuencias ...
- t.me/dataleak (si está bloqueado, entonces tele.click/dataleak ) es mi modesto canal de Telegram en el que reviso las filtraciones de información y, en particular, escribo sobre lo que los investigadores de seguridad encuentran en el dominio público. Es interesante