Scraping Github: recherche de "secrets" à développer

image

Lors du dĂ©veloppement d'un produit logiciel ou d'un service SaaS basĂ© sur le cloud, il est assez difficile de suivre les activitĂ©s tierces de tous les spĂ©cialistes impliquĂ©s dans le processus de dĂ©veloppement. Ouvrez simplement Github, saisissez «<company_domain_name.com> pass» dans la recherche et Ă©valuez les rĂ©sultats. Dans le cas oĂč Github montre soudainement quelque chose d'intĂ©ressant dans sa livraison, nous envisagerons des scĂ©narios qui peuvent aider les attaquants Ă  perturber le processus commercial de votre entreprise. Et si Github est toujours silencieux, alors nous envisagerons des options alternatives pour attaquer le cycle de dĂ©veloppement du produit, dans lequel non seulement les dĂ©veloppeurs, mais mĂȘme les ingĂ©nieurs de sĂ©curitĂ©, peuvent devenir le point d'entrĂ©e de l'infrastructure.

Mise au rebut de Github


Avec les bonnes requĂȘtes de recherche, vous pouvez trouver toutes sortes de fragments de code contenant des informations d'identification pour la connexion Ă  l'infrastructure de l'entreprise, qui sont utilisĂ©s par les dĂ©veloppeurs et les ingĂ©nieurs d'assurance qualitĂ©. Cependant, non seulement Github peut ĂȘtre examinĂ© pour des secrets. La technique d'Ă©tude des rĂ©fĂ©rentiels publics pour les secrets (donnĂ©es de compte, clĂ©s privĂ©es, etc.) vous permet d'ouvrir l'accĂšs Ă  des endroits intĂ©ressants dans l'application avant mĂȘme que son analyse de sĂ©curitĂ© directe ne commence.

Étant donnĂ© que de nombreuses sociĂ©tĂ©s informatiques de produits de niveaux de maturitĂ© complĂštement diffĂ©rents (du dĂ©marrage Ă  l'entreprise) impliquent divers entrepreneurs dans leur cycle de dĂ©veloppement, la probabilitĂ© de fuite de donnĂ©es prĂ©cieuses vers des rĂ©fĂ©rentiels publics augmente. Tout expert impliquĂ© dans le cycle de dĂ©veloppement comporte certains risques pour le produit.

Ainsi, par exemple, dans le processus de recherche de fragments de code source contenant le domaine d'un produit SaaS, des fragments de tests automatiques contenant des informations d'identification privilĂ©giĂ©es pour la connexion Ă  la plate-forme peuvent ĂȘtre trouvĂ©s. Et pour vous assurer que cet exemple n'est pas hypothĂ©tique, mais bien rĂ©el, rendez-vous sur Techcrunch, trouvez le nom d'une entreprise qui fournit le produit SaaS et recherchez son domaine sur le github.

Nous ouvrons des nouvelles sur les startups, voyons beaucoup de portefeuilles blockchain et de plateformes blockchain, sélectionnons n'importe quelle startup avec un nom de fantaisie et recherchons son domaine sur le github. Nous rencontrons de nombreux secrets dans différents scripts pour se connecter à la plateforme.

image
Une recherche sur Github pour les bonnes requĂȘtes ouvre de nombreux scripts intĂ©ressants avec des secrets

Le plus souvent, les secrets se trouvent dans les référentiels suivants:

  • des tests automatiques de code que les ingĂ©nieurs de l'assurance qualitĂ© sauvegardent dans leurs rĂ©fĂ©rentiels publics personnels;
  • des rĂ©fĂ©rentiels d'organisations contractantes chargĂ©es d'intĂ©grer les clients au produit;
  • RĂ©fĂ©rentiels personnels des dĂ©veloppeurs qui sauvegardent leurs outils internes;
  • scripts d'installation du produit et fichiers de microservices squelettes utilisĂ©s par les entrepreneurs chargĂ©s d'installer et de maintenir le produit (opĂ©rations).

image
Un exemple de secret laissé dans le code: une clé privée pour se connecter à la plateforme SaaS

Un exemple de secrets pour aider un attaquant Ă  compromettre un produit ou son utilisateur:

  • informations d'identification de connexion (exemple de requĂȘtes de recherche: "nom_produit + passe", "nom_domaine + connexion");
  • clĂ©s privĂ©es et certificats (exemple d'une requĂȘte de recherche: "nom_domaine + privĂ©").

Secrets des ingénieurs en sécurité


Un expert en sĂ©curitĂ© s'est alors exclamĂ©: "Mais si les dĂ©veloppeurs avaient utilisĂ© Hashicorp Vault, ces problĂšmes n'auraient pas Ă©tĂ©!" Oui, sous certaines conditions, de telles solutions de gestion secrĂšte sont efficaces. Cependant, parfois, mĂȘme les professionnels de la sĂ©curitĂ© font des erreurs.

Prenez les meilleures solutions commerciales pour l'analyse de code statique des vulnérabilités (SAST). Parmi ce sommet, il y a probablement des produits volumineux et coûteux qui représentent une plate-forme complÚte pour l'intégration dans les processus de développement CI / CD et ont des API pour les scripts d'automatisation tiers.

SonarQube est un exemple de plateforme d'analyse de la qualité et de la sécurité du code. Sa popularité est indiquée par le nombre d'installations que l'on peut trouver à Shodan avec une seule demande:
port: 9000 sonarqube

image
GĂ©ographie des installations disponibles de la plateforme SonarQube

image
Nombre d'installations SonarQube par pays

Si vous consultez Github pour tout secret lié à SonarQube, vous pouvez trouver de petits scripts qui sont utilisés pour connecter et contrÎler l'analyse.

image
Scripts contenant (Ă©ventuellement) des secrets de connexion Ă  la plateforme

Si vous consultez la documentation officielle de SonarQube, vous pouvez trouver une description du format de lancement des tùches à partir de la CLI. En particulier, l'une des clés est chargée de transmettre les données du compte pour le compte duquel la commande sera exécutée.

image
Clés responsables du transfert des informations de compte dans la plateforme

En utilisant ces informations, vous pouvez obtenir des résultats de recherche plus pertinents. Les recherches contenant «sonar + login» ou «sonar + mot de passe» vous permettent de trouver des scripts d'automatisation qui sont utilisés non seulement par les développeurs, mais aussi directement par les commandes de sécurité.

image
Nous avons lu la documentation, fait une nouvelle demande, reçu un problÚme plus pertinent

Secrets Search Automation


Vous pouvez rechercher une fuite de secrets dans le rĂ©fĂ©rentiel officiel de l'entreprise, ou dans les rĂ©fĂ©rentiels non officiels de ses employĂ©s ou sous-traitants (et peut-ĂȘtre des utilisateurs). Le processus de recherche de secrets sur Github ou dans d'autres rĂ©fĂ©rentiels peut ĂȘtre illustrĂ© comme suit:

image
Processus de recherche de secrets

Pour automatiser ces actions, il existe de nombreux utilitaires et scripts, il est donc recommandé de ne pas réinventer la roue. Par exemple, vous pouvez utiliser les outils suivants:

  • gitGrabber (https://github.com/hisxo/gitGraber) - permet une surveillance en temps rĂ©el de Github et d'autres services pour les secrets. Convient pour la tĂąche de surveillance de l'apparence des secrets pour des requĂȘtes de recherche donnĂ©es.
  • gitLeaks (https://github.com/zricethezav/gitleaks) - un outil pour surveiller des rĂ©fĂ©rentiels spĂ©cifiques pour la fuite de secrets. IdĂ©al pour effectuer des tĂąches de surveillance du rĂ©fĂ©rentiel officiel de l'entreprise.

L'utilisation de ces utilitaires avec des requĂȘtes pertinentes pour leurs objectifs vous permettra d'organiser un systĂšme de surveillance des fuites de secrets dans les rĂ©fĂ©rentiels publics. Dans le mĂȘme temps, comme les collĂšgues AppSec l'ont correctement notĂ© dans les commentaires sur Twitter , afin de garder le secret secret, vous devez implĂ©menter et utiliser des solutions de gestion des secrets. Par exemple, Hashicorp Vault, qui est dĂ©diĂ© Ă  un matĂ©riau distinct.

Chercheurs, recherche réussie! Pour les développeurs, des commits sûrs!

Source: https://habr.com/ru/post/fr484462/


All Articles