"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Gestion proactive et continue des vulnérabilités AppSec pour les développeurs et les équipes de sécurité

Gestion proactive et continue des vulnérabilités AppSec pour les développeurs et les équipes de sécurité

Publié le 2024-11-06
Parcourir:903

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.

L’importance d’une gestion continue des vulnérabilités dans des domaines spécifiques

  • Dépendance croissante à l'égard des composants open source : les composants open source sont devenus omniprésents dans le développement de logiciels modernes. Si ces composants accélèrent le développement pour les développeurs d’applications et contribuent à réduire les coûts, ils introduisent également des risques de sécurité importants. Des attaques très médiatisées sur la chaîne d'approvisionnement, comme la porte dérobée XZ et la violation de SolarWinds, ont mis en évidence le potentiel de dommages étendus lorsque les vulnérabilités des dépendances open source et des composants fermés contrôlés par les fournisseurs sont exploitées.
  • Utilisation croissante du code généré par l'IA dans le développement : l'essor de l'IA générative (GenAI) dans le développement de logiciels apporte à la fois des opportunités et des défis. GenAI peut accélérer considérablement les tâches de codage, mais il peut également introduire de nouvelles vulnérabilités. Le code généré par l’IA peut ne pas tenir compte des considérations de sécurité que les développeurs expérimentés incluent généralement, ce qui entraîne des failles de sécurité potentielles. Un exemple de ceci est GitHub Copilot qui introduit un XSS dans React.
  • Croissance rapide des applications conteneurisées : les applications conteneurisées sont devenues la norme pour le déploiement de logiciels modernes. Les conteneurs offrent de nombreux avantages, notamment la cohérence entre les environnements et la facilité de mise à l'échelle. Cependant, ils introduisent également de nouveaux défis en matière de sécurité, notamment dans la gestion des vulnérabilités des images de conteneurs. En tant que tels, les développeurs pourraient avoir besoin d'aide pour les expliquer sur la façon de choisir la meilleure image de conteneur et des conseils généraux de pro sur les conteneurs, mais l'automatisation des vulnérabilités de l'image de conteneur Docker est indispensable.

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 ?

AppSec proactive et gestion continue des vulnérabilités avec Snyk

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. 

Un guide rapide pour installer et intégrer Snyk DeepCode AI dans Visual Studio Code

  1. Installez l'extension Snyk :
  • Ouvrez Visual Studio Code.
  • Accédez à la vue Extensions en cliquant sur l'icône Extensions dans la barre d'activité sur le côté de la fenêtre.
  • Recherchez « Snyk » et cliquez sur « Installer » sur l'extension Snyk.
  1. Authentifier avec Snyk :
  • Après l'installation, vous serez invité à vous authentifier avec votre compte Snyk.
  • Suivez les instructions à l'écran pour vous connecter ou vous inscrire ici.
  1. Activer l'IA Snyk DeepCode :
  • Une fois authentifié, accédez à la vue Snyk dans la barre d'activité.
  • Activez Snyk DeepCode AI pour commencer à analyser votre code à la recherche de vulnérabilités.

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.

Proactive AppSec continuous vulnerability management for developers and security teams

Les avantages des outils SAST pour identifier les modèles de code non sécurisés directement dans l'EDI pour les développeurs

  1. Commentaires en temps réel : lorsque vous écrivez du code, Snyk DeepCode AI l'analyse en temps réel, fournissant un retour instantané sur les problèmes de sécurité potentiels. Cela permet aux développeurs de corriger les vulnérabilités avant qu'elles ne soient ancrées dans la base de code.
  2. Insights basés sur l'IA : le modèle d'IA est formé sur un vaste ensemble de données spécifiques à la sécurité, ce qui lui permet de reconnaître les modèles de codage non sécurisés, même ceux introduits par GenAI ou les mauvaises pratiques de programmation.
  3. Intégration transparente : en s'intégrant directement dans l'IDE, Snyk DeepCode AI s'intègre naturellement dans le flux de travail du développeur, minimisant les perturbations et maximisant la productivité.

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 ?

Proactive AppSec continuous vulnerability management for developers and security teams
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.

Automatiser la gestion des dépendances avec Snyk Open Source

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 :

Proactive AppSec continuous vulnerability management for developers and security teams
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 :

Proactive AppSec continuous vulnerability management for developers and security teams
À 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.

Proactive AppSec continuous vulnerability management for developers and security teams
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.

Proactive AppSec continuous vulnerability management for developers and security teams
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.

Proactive AppSec continuous vulnerability management for developers and security teams
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.

Déclaration de sortie Cet article est reproduit à l'adresse : https://dev.to/snyk/proactive-appsec-continuous-vulnerability-management-for-developers-and-security-teams-49he?1 En cas d'infraction, veuillez contacter study_golang@163. .com pour le supprimer
Dernier tutoriel Plus>

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