Quels sont les risques croissants en matière de cybersécurité dans le paysage moderne du développement de logiciels qui occupent les RSSI ?
Les développeurs et les équipes de sécurité sont confrontés à un éventail toujours croissant de menaces, allant des attaques sophistiquées de la chaîne d'approvisionnement open source et contrôlées par les fournisseurs aux vulnérabilités introduites par le code généré par l'IA, comme l'injection rapide et la mauvaise sécurité du code par GitHub Copilot. La complexité des applications modernes, qui s'appuient souvent fortement sur des composants open source (tels que ceux que l'on trouve sur npm, PyPI ou RubyGems) et des déploiements conteneurisés, ajoute au défi.
Compte tenu de l’ampleur et de la complexité de ces risques, l’automatisation de la gestion des vulnérabilités est devenue essentielle. Les processus manuels de cybersécurité ne peuvent tout simplement pas suivre le volume et la vitesse des vulnérabilités potentielles et du développement de logiciels. L'automatisation accélère non seulement l'identification et la résolution des problèmes de sécurité, mais garantit également que ces processus, suivis régulièrement par les équipes de sécurité, sont appliqués de manière cohérente à toutes les étapes du cycle de vie du développement logiciel.
Décomposons cela un peu plus loin… Un autre exemple d'attaque de grande envergure contre la chaîne d'approvisionnement est l'attaque contre Codecov, où les attaquants ont obtenu l'accès à des données sensibles en exploitant les vulnérabilités d'un outil de couverture de code populaire. La routine d’un développeur comprend la gestion des risques associés aux dépendances open source. Les dépendances open source peuvent introduire des vulnérabilités à la fois directes et transitives dans votre base de code. Des vulnérabilités directes se trouvent dans les bibliothèques que vous incluez explicitement, tandis que des vulnérabilités transitives existent dans les dépendances de ces bibliothèques. La gestion manuelle de ces risques est intimidante, ce qui fait de l'automatisation un élément essentiel d'une stratégie de sécurité robuste.
Avec GenAI, les assistants de code d'IA comme GitHub Copilot ou ChatGPT introduisent des vulnérabilités réelles et potentielles. GenAI peut introduire par inadvertance des pratiques de codage non sécurisées ou ne pas reconnaître les exigences de sécurité spécifiques au contexte. Par exemple, un modèle d’IA peut générer du code vulnérable aux attaques par injection SQL ou par cross-site scripting (XSS). La surveillance et la sécurisation du code généré par l’IA sont donc cruciales pour maintenir la sécurité des applications.
La complexité de suivre les nouvelles vulnérabilités des conteneurs n’échappe pas non plus aux équipes de sécurité. Le rythme rapide des nouvelles vulnérabilités des conteneurs peut être accablant. Chaque nouvelle vulnérabilité nécessite une identification et une correction rapides pour prévenir les exploits potentiels. Cette complexité nécessite des solutions automatisées dotées d'une expertise en matière de sécurité pour gérer efficacement la sécurité des conteneurs.
Les vulnérabilités des conteneurs peuvent avoir un impact significatif sur la sécurité globale de vos applications. Une seule image de conteneur vulnérable peut compromettre l’ensemble de la pile d’applications. Des outils tels que Snyk Container automatisent le processus d'identification et de correction des vulnérabilités dans les images de conteneurs. Snyk Container peut suggérer de nouvelles balises d'image de base qui minimisent le nombre de vulnérabilités et automatisent les demandes d'extraction pour mettre à jour vos référentiels de code.
Comment pouvons-nous atténuer toutes ces menaces de cybersécurité AppSec ?
Pour atténuer les risques associés au code généré par l'IA, envisagez d'utiliser des outils comme Snyk Code. Propulsé par Snyk DeepCode AI, cet outil SAST rapide peut être intégré directement dans l'IDE d'un développeur via un plugin. Il utilise une formation sur les données spécifiques à la sécurité pour reconnaître le code vulnérable et non sécurisé, garantissant ainsi que les problèmes sont identifiés et résolus dès le début du développement.
Démarrer avec Snyk DeepCode AI est simple. Le plugin prend en charge les IDE populaires tels que Visual Studio Code, IntelliJ IDEA, VS Code et PyCharm.
Une fois installé, le logo Snyk sur la barre latérale présentera les vulnérabilités et les problèmes de sécurité trouvés dans vos dépendances open source, votre propre code (ou le code produit par GenAI) et les problèmes IaC.
Voyons un exemple d'atténuation des vulnérabilités introduites par GenAI. J'ai utilisé GitHub Copilot dans ce projet pour compléter automatiquement le code qui crée une route de point de terminaison Express POST pour interroger l'API OpenAI, puis j'ai utilisé res.send() pour envoyer la réponse au navigateur.
Cependant, que se passerait-il si la réponse de cette charge utile devait être rendue directement dans le navigateur ? Si l’en-tête Text/html Content Type par défaut était utilisé pour envoyer cette requête, une vulnérabilité de cross-site scripting aurait un impact sur l’application en cours d’exécution. Que pouvons-nous faire à ce sujet ?
Comme vous pouvez le voir dans l'annotation au-dessus de la ligne 31, Snyk propose de résoudre ce problème de sécurité. J'ai cliqué dessus et en quelques secondes, l'extension Snyk DeepCode AI a proposé une atténuation qui a remplacé res.send() par res.json comme suit :
res.json(response.choices[0].message.content);
Avec ce changement, l'application Express force le type de contenu dans la réponse à être application/json qui est un texte générique et peut autoriser du texte tel que alert().
En tirant parti de Snyk dans leur IDE, les développeurs peuvent identifier et atténuer de manière proactive les vulnérabilités à l'aide du moteur d'IA Snyk DeepCode sous-jacent, garantissant ainsi que leur code est sécurisé dès le départ. Cette approche proactive de la sécurité des applications est essentielle dans l'environnement actuel, où les risques associés aux chaînes d'approvisionnement open source et au code généré par GenAI sont omniprésents.
Snyk Open Source est un outil puissant conçu pour aider les développeurs et les équipes de sécurité à gérer les risques associés aux dépendances open source. Avec le recours croissant aux bibliothèques open source, le besoin d’une gestion robuste et automatisée des dépendances n’a jamais été aussi critique. Snyk Open Source offre des capacités complètes d'analyse et de correction des vulnérabilités, garantissant que vos projets restent sécurisés et conformes.
Dans ma précédente application Node.js, j'utilise également une dépendance SQLite, dont Snyk m'alerte d'un problème de sécurité comme suit :
Ces informations sur les vulnérabilités sont utiles pour comprendre quelle dépendance transitive introduit le risque de sécurité et comment l'atténuer, si possible. Dans ce cas, la dépendance transitive en vol est détectée comme ayant une vulnérabilité moyenne.
Snyk détecte que mon fichier de verrouillage et ma dépendance sont potentiellement obsolètes et ne peut donc pas trouver de chemin de remédiation. Cependant, voyons l'automatisation en pratique lorsque nous importons le référentiel de code GitHub dans Snyk. Ce faisant, affiche les informations suivantes sur l'application Snyk :
À partir de ce moment, Snyk ouvrira automatiquement de nouvelles Pull Requests pour suggérer des mises à niveau de dépendances lorsque des vulnérabilités de sécurité sont détectées dans le manifeste de mon package.
La gestion des dépendances ne concerne pas seulement les bibliothèques que vous incluez directement dans votre projet. Les dépendances transitives (celles attirées par vos dépendances directes) peuvent également introduire des vulnérabilités. Snyk excelle dans l'identification et la correction des vulnérabilités dans les dépendances directes et transitives.
Considérez le scénario suivant :
{ "dependencies": { "express": "^4.17.1", "lodash": "^4.17.20" } }
Dans cet exemple, express et lodash sont des dépendances directes. Cependant, express peut avoir son propre ensemble de dépendances, qui à leur tour peuvent avoir leurs propres dépendances. Snyk parcourra l'intégralité de cet arbre de dépendances, identifiant et corrigeant les vulnérabilités à tous les niveaux.
Lorsqu'il s'agit de gérer les vulnérabilités des conteneurs, Snyk Container permet de supprimer le fardeau de la mise à jour des balises d'image de base avec les correctifs de sécurité.
Snyk Container est une solution complète conçue pour aider les développeurs et les équipes de sécurité à gérer efficacement les vulnérabilités des conteneurs. Les charges de travail d'applications conteneurisées sont répandues dans l'entreprise, tout comme la nécessité de sécuriser ces environnements. Snyk Container s'intègre parfaitement à votre pipeline CI/CD, offrant une surveillance continue et une correction proactive des vulnérabilités dans vos images de conteneurs.
L'une des fonctionnalités remarquables de Snyk Container est sa capacité à automatiser la création de Pull Requests pour corriger les vulnérabilités de vos images de conteneur. Cette automatisation change la donne, tant pour les développeurs que pour les équipes de sécurité, car elle réduit considérablement les efforts manuels requis pour assurer la sécurité des images de conteneurs.
Voici un exemple de la façon dont Snyk Container peut automatiser un PR pour mettre à jour un package vulnérable dans un Dockerfile :
FROM node:14.1.0 RUN npm install express COPY . /app CMD ["node", "/app/index.js"]
Lorsque Snyk Container détecte une vulnérabilité, il génère automatiquement un PR avec les modifications nécessaires pour atténuer le problème. Cela peut inclure la mise à jour d'un package vulnérable ou l'application d'un correctif de sécurité. En automatisant ce processus, Snyk Container garantit que les vulnérabilités sont corrigées rapidement, réduisant ainsi la fenêtre d'exposition.
En suivant ces images de base recommandées, vous pouvez réduire considérablement le nombre de vulnérabilités dans vos images de conteneurs, améliorant ainsi la sécurité globale de vos applications.
Snyk Container a identifié plusieurs vulnérabilités dans cette image de base et a généré automatiquement des PR pour mettre à jour l'image et les dépendances associées. L'équipe a pu examiner et fusionner ces PR rapidement, réduisant leur nombre de vulnérabilités de plus de 30 % en quelques secondes en fusionnant la Pull Request et en garantissant que les tests du pipeline CI/CD réussissent avec brio.
Cette approche proactive a non seulement amélioré la sécurité de leurs applications, mais a également permis aux développeurs de consacrer un temps précieux à la création de nouvelles fonctionnalités plutôt qu'à la gestion des vulnérabilités.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3