
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.
Une recherche sur Github pour les bonnes requĂȘtes ouvre de nombreux scripts intĂ©ressants avec des secretsLe 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).
Un exemple de secret laissé dans le code: une clé privée pour se connecter à la plateforme SaaSUn 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
Géographie des installations disponibles de la plateforme SonarQube
Nombre d'installations SonarQube par paysSi 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.
Scripts contenant (éventuellement) des secrets de connexion à la plateformeSi 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.
Clés responsables du transfert des informations de compte dans la plateformeEn 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é.
Nous avons lu la documentation, fait une nouvelle demande, reçu un problÚme plus pertinentSecrets 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:
Processus de recherche de secretsPour 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!