Comment empêcher les informations confidentielles de s'infiltrer dans votre code

Le codage en dur des secrets d’entreprise dans votre code constitue un risque de sécurité sérieux et évitable.

Traduit de Comment empêcher les secrets de s'infiltrer dans le code , auteur Robert Curlee.

Les informations confidentielles apparaissent souvent dans le code publié, exposant les propriétaires à des risques de sécurité. Ces informations confidentielles comprennent les mots de passe, les clés API, les clés de cryptage, les jetons, les informations d'identification de la base de données et d'autres informations privées sur l'entreprise.

Le codage en dur des informations confidentielles dans le code source est dangereux et, malgré les efforts les plus consciencieux du développeur, des informations confidentielles peuvent toujours s'infiltrer. Les développeurs peuvent prendre des raccourcis et transmettre des informations confidentielles dans le code lors de l'écriture du code, ou ils peuvent ne pas se rendre compte de l'impact des informations confidentielles dans le code. De plus, la plupart des solutions d'analyse laissent au développeur le soin de déterminer pourquoi le code a été signalé comme problème. Enfin, la plupart des outils ne recherchent les secrets dans le référentiel de code qu'après qu'une fuite s'est produite, ce qui nécessite une correction pénible (c'est-à-dire une rotation des secrets).

En raison des contraintes de temps, gérer, stocker et protéger correctement les informations confidentielles peut être compliqué, mal compris ou simplement ignoré. De plus, si les entreprises ne savent pas quand et où les informations confidentielles entrent dans un projet, elles ne peuvent pas empêcher leur fuite au fur et à mesure de la publication du projet, compromettant ainsi sa sécurité.

Les informations d'identification et autres informations confidentielles régulièrement infiltrées dans le code font la une des journaux - et le nombre d' expositions augmente en raison d'erreurs humaines . Les outils qui capturent les informations confidentielles dans l'EDI et tout au long du pipeline CI/CD, avant qu'ils ne puissent causer des problèmes, changent la donne.

Découvrez comment les informations confidentielles se retrouvent dans le code

Être capable de détecter les informations confidentielles avant qu'elles ne soient divulguées dans le code permet aux organisations de réduire leur exposition aux risques. En les détectant dans l'EDI, vous évitez d'avoir à faire pivoter les secrets pour y remédier. Mais d’abord, vous devez comprendre comment les informations confidentielles se retrouvent dans votre code. Il existe plusieurs raisons:

1. Manque de connaissances

Peut-être en raison d'un manque d'expérience ou d'une formation inappropriée, certains développeurs peuvent tout simplement ne pas comprendre la bonne gestion des informations confidentielles et la sécurité du code source. Il suffit d’un développeur qui ne connaît pas les meilleures pratiques en matière de traitement des informations confidentielles dans le code pour mettre une entreprise entre les mains d’acteurs malveillants. Si la connaissance est synonyme de pouvoir, alors la meilleure ligne de défense est une équipe compétente.

2. Par erreur

Un développeur peut temporairement coder en dur des informations d'identification ou des secrets pour des tests locaux rapides avec l'intention de les supprimer ultérieurement. Cependant, il arrive parfois que ces fichiers soient accidentellement transférés dans le référentiel public, rendant ces modifications temporaires permanentes. Même si le code est supprimé ultérieurement, quelqu'un peut avoir copié le code contenant des informations confidentielles avant de le nettoyer. Il est humain de commettre des erreurs, mais lorsque les conséquences peuvent être énormes, il est préférable de les prévenir de manière proactive autant que possible.

3. Confiance aveugle

Résoudre des problèmes soi-même est une excellente façon d’apprendre, et parfois les problèmes sont si spécifiques que la seule façon de les résoudre est de le faire soi-même. Si cela prend beaucoup de temps et que vous ne trouvez pas de solution, il est préférable de demander de l'aide à la documentation du produit et à des sites comme Stack Overflow. Cependant, même si ces documents fournissent des explications et des exemples utiles, ils ne doivent pas être simplement copiés-collés et pris au pied de la lettre.

Le code dans Stack Overflow et la documentation peuvent répondre à la question, mais ce n'est pas le moyen le plus sûr d'implémenter une solution. Par exemple, la documentation contient souvent des extraits de code pour illustrer les fonctionnalités du produit, mais peut ne pas mentionner s'il doit être utilisé avec prudence et s'il existe des options plus sûres. résultat? Mauvais code . Toute solution que vous introduisez dans votre base de code doit être correctement évaluée pour confirmer qu'elle répond aux normes de qualité et ne pose pas de problèmes au code.

Un autre problème de confiance conduisant à la fuite d'informations confidentielles dans le code est l'utilisation accrue du code généré par l'IA . À mesure que l’IA générative devient plus populaire dans le développement de code, vous constaterez une augmentation du nombre de lignes de code à analyser et du nombre de problèmes d’informations confidentielles. Le code généré par l’IA peut vous amener à penser que la bonne façon de se connecter au service consiste à coder en dur un jeton ou un secret. En fonction de la qualité des indices et de la connaissance du problème, l'IA peut ne pas générer de code propre et entraîner une fuite d'informations confidentielles. Le code généré par l'IA peut servir de base pour comprendre comment se connecter au service, mais vous devez le modifier pour utiliser le coffre-fort d'informations confidentielles.

En fin de compte, vous devez contester tout code que vous trouvez ou générez à l’aide de l’IA. Les organisations doivent s'assurer que leurs équipes de développeurs disposent des outils de qualité de code appropriés pour empêcher les informations confidentielles de s'infiltrer dans le code et remédier à toute fuite dès le stade le plus précoce possible du développement du code.

Capturez les informations confidentielles dès le départ

Lorsque des informations publiquement confidentielles sont signalées au point d’introduction, que ce soit en temps réel pendant le codage ou juste avant une validation, cela peut éviter bien des maux de tête à l’équipe. Des erreurs humaines se produisent, mais en effectuant les bonnes vérifications au bon moment, vous pouvez prévenir les conséquences des erreurs dès le début.

Le meilleur endroit pour détecter et résoudre ces problèmes dans le flux de travail de développement est au début, dans l'EDI. Les capacités de détection d'informations confidentielles de SonarLint, SonarQube et SonarCloud permettent aux organisations de détecter les informations confidentielles accessibles au public dans le code source, d'éliminer leur exposition et de réduire le risque de sécurité lié à un accès illégal ou non autorisé aux données privées. Les développeurs utilisant SonarQube Enterprise Edition 10.3 et versions ultérieures peuvent également créer des règles de détection de modèles de secrets personnalisées . Les associer aux méthodes Clean as You Code (CaYC) et Learn as You Code permet de fournir un code propre , un code qui produit des logiciels maintenables, fiables et sécurisés.

En éliminant les informations confidentielles du code dans l'IDE dès le début du développement, les équipes peuvent empêcher les informations confidentielles d'entrer dans leurs référentiels. La détection et la suppression des informations confidentielles dès le début du développement du projet réduisent les mesures correctives complexes et coûteuses requises lorsque des informations confidentielles exposées sont découvertes plus tard dans le cycle de publication.

Cet article a été publié pour la première fois sur Yunyunzhongsheng ( https://yylives.cc/ ), tout le monde est invité à le visiter.

J'ai décidé d'abandonner les logiciels industriels open source. OGG 1.0 est sorti, Huawei a contribué à tout le code source. Ubuntu 24.04 LTS a été officiellement publié. L'équipe de Google Python Foundation a été tuée par la "montagne de merde de code" . ". Fedora Linux 40 a été officiellement lancé. Une société de jeux bien connue a publié de nouvelles réglementations : les cadeaux de mariage des employés ne doivent pas dépasser 100 000 yuans. China Unicom lance la première version chinoise Llama3 8B au monde du modèle open source. Pinduoduo est condamné à compenser 5 millions de yuans pour concurrence déloyale Méthode de saisie dans le cloud domestique - seul Huawei n'a aucun problème de sécurité de téléchargement de données dans le cloud.
{{o.name}}
{{m.nom}}

Je suppose que tu aimes

Origine my.oschina.net/u/6919515/blog/11063471
conseillé
Classement