Il y a quelque temps, parmi les chercheurs en sécurité, il était très «à la mode» de trouver des stockages cloud AWS mal configurés avec toutes sortes d'informations confidentielles. Ensuite, j'ai même publié une petite note sur la découverte du stockage en nuage ouvert Amazon S3.
Cependant, le temps passe et l’accent est mis sur la recherche de bases de données accessibles au public. Plus de la moitié des cas connus de fuites de données majeures au cours de la dernière année sont des fuites de bases de données ouvertes (un examen des fuites pour 2018 ici et ici ).

Aujourd'hui, nous allons essayer de comprendre comment ces bases de données sont détectées par les chercheurs en sécurité ...
Avis de non-responsabilité requis: cet article n'aborde ni ne soulève de problèmes juridiques et éthiques liés à la recherche et à l'identification de bases de données accessibles au public. Toutes les informations ci-dessous doivent être considérées exclusivement comme éducatives et informatives.
Je ne découvrirai pas l'Amérique si je dis que les principaux outils pour trouver des bases de données ouvertes sont les moteurs de recherche spécialisés Shodan et Censys . Je dois dire tout de suite que ce ne sont pas des services gratuits et que vous devez payer vos non-roubles honnêtement gagnés pour accéder aux résultats de recherche complets (dans le cas de Shodan, c'est 59 $ / mois, et pour Censys - 99 $ / mois, et ce n'est que pour les packages de base minimum). Les versions gratuites des moteurs de recherche limitent considérablement le nombre de résultats dans les résultats de recherche.
En plus de la recherche classique de type Google utilisant la barre de recherche, ces moteurs de recherche offrent la possibilité de s'y connecter via l'API. L'heureux propriétaire d'un abonnement payant recevra sa clé API. Cela permet de faciliter considérablement la tâche de ratisser un tas d'ordures de recherche. J'ai donné une liste de scripts utiles et de programmes d'automatisation de la recherche qui utilisent des clés API à la fin de cet article.
, , GitHub, API-, .
Regardons le moteur de recherche Shodan comme un exemple de recherche de bases de données MongoDB et Elasticsearch ouvertes.
La requête la plus simple et la plus évidente qui supplie est "MongoDB":

Comme le montre la capture d'écran, cette demande nous a renvoyé tous les serveurs MongoDB indexés (sur le port par défaut 27017). De plus, la plupart d'entre eux (dans la capture d'écran ce sont les trois premiers) seront des bases de données fermées, nécessitant des comptes pour la connexion. Et ce n'est pas tout à fait ce qui nous intéresse. Plus précisément, ce n'est pas du tout le cas.
Compliquons un peu la requête en utilisant les filtres de recherche "all:" mongodb server information "all:" metrics "":

Le résultat est déjà bien meilleur. Toutes les bases de données trouvées étaient disponibles gratuitement au moment où elles ont été indexées par le moteur de recherche. Avec un degré de probabilité élevé, vous pouvez vous y connecter aux adresses IP spécifiées à l'aide d'un gestionnaire pour MongoDB (par exemple, NoSQL Manager pour MongoDB ou Studio 3T pour MongoDB).
Vous pouvez limiter la recherche à un pays. Supposons que nous recherchons des MongoDB ouverts en Chine (requête "tous:" informations sur le serveur mongodb "tous:" métriques "pays:" cn ""):

Pour rechercher des bases de données Elasticsearch ouvertes, il est pratique d'utiliser la requête "port:" 9200 "all:" indices élastiques "":

Malheureusement, je n'ai pas trouvé de moyen de définir la condition de recherche dans la barre de recherche en fonction de la taille de la base de données. Si vous savez comment faire cela (définissez un filtre sur les paramètres "totalSize" ou "sizeOnDisk" dans la barre de recherche), alors écrivez dans les commentaires.
Vous pouvez appliquer des filtres plus complexes (restrictions sur la taille de la base de données, la date à laquelle le serveur est entré dans l'index, etc.) aux résultats de la recherche à l'aide de scripts et de programmes spécialisés. Pour cela, vous aurez déjà besoin d'un accès payant et d'une clé API, comme je l'ai écrit ci-dessus.
Voici une courte liste de ce qui pourrait être utile:
- cli.shodan.io est la console Shodan officielle. En russe sur son utilisation peut être lu ici .
- shodan-manual.com - un guide de Shodan en russe.
- github.com/woj-ciech/LeakLooker est un programme en python pour trouver des bases de données ouvertes (MongoDB, CouchDB, Elasticsearch, etc.).
- lampyre.io est une interface graphique très puissante (et jusqu'à présent très boguée!) pour rechercher et visualiser ce qui a été trouvé. Il a des modèles intégrés pour rechercher MongoDB et bien plus encore. C'est en beta test avec toutes les conséquences ...
- t.me/dataleak (s'il est bloqué, alors tele.click/dataleak ) est ma modeste chaîne Telegram dans laquelle je passe en revue les fuites d'informations et, en particulier, j'écris sur ce que les chercheurs en sécurité trouvent dans le domaine public. C'est intéressant.