Skip to main content

Présentation de la surveillance de sécurité des composants open source à l’exécution

Écrit par
Headshot of Aner Mazur

Aner Mazur

Introducing open source security runtime monitoring Featured

12 novembre 2018

0 minutes de lecture

Snyk vient de lancer la première fonctionnalité de sa solution de surveillance de la sécurité des applications à l’exécution, qui permet aux développeurs de surveiller le comportement réel de leurs composants open source pendant l’exécution !

Grâce à l’intégration de Snyk au dépôt du projet ou à son cycle CI, vous pouvez analyser les dépendances open source, détecter celles qui sont vulnérables et obtenir des recommandations de correction. Snyk investit beaucoup pour faciliter la correction des vulnérabilités et l’intégrer au workflow de développement : création de pull requests de correction, fourniture de correctifs lorsque les mises à niveau sont impossibles, et bien plus encore.

Cependant, même si les corrections sont relativement simples, de nombreux développeurs et organisations peuvent encore avoir un important arriéré de vulnérabilités à traiter. Tout conseil de priorisation que nous pouvons vous donner est utile, et nous pensons qu’il est essentiel, pour prioriser les vulnérabilités, de déterminer si une dépendance vulnérable est réellement utilisée à l’exécution d’une manière susceptible d’être exploitée. Certaines solutions du marché tentent d’y parvenir par l’analyse statique du code. Le principal problème est le nombre élevé de faux positifs et de faux négatifs qu’elles génèrent (par exemple, lorsque le code est appelé dynamiquement ou qu’il n’est exécuté qu’en réponse à une entrée spécifique, etc.).

Snyk propose une solution qui surveille le comportement réel de l’application à l’exécution et indique avec précision si des fonctions vulnérables des dépendances d’un projet sont appelées.

Soyez rassuré : nous avons déployé beaucoup d’efforts pour limiter au maximum l’impact sur les performances de l’application, et nous continuerons à le tester. Notre solution de surveillance à l’exécution est actuellement proposée en accès anticipé dans le cadre d’une bêta fermée. Pour l’essayer, écrivez-nous à runtime@snyk.io !

Priorisez les vulnérabilités à partir des données d’appel à l’exécution

Une fois l’agent correctement installé et configuré pour instrumenter les instances en cours d’exécution de l’application surveillée, un indicateur s’affichera sur la carte des détails du problème pour vous indiquer si des fonctions vulnérables ont été récemment appelées dans une instance surveillée. Les vulnérabilités seront principalement triées selon qu’elles ont été appelées à l’exécution, puis selon leur niveau de gravité. Les noms et chemins des fonctions vulnérables seront également affichés. Cela simplifiera le triage en vous aidant à comprendre quelle partie de votre application les utilise. Nous vous indiquerons également depuis combien de temps l’une de ces fonctions vulnérables n’a pas été appelée.

Rapport de sécurité signalant une vulnérabilité de traversée de répertoires de gravité moyenne dans le module st, avec pour remédiation une mise à niveau vers la version 0.2.5.

Comme plusieurs instances de l’application peuvent être surveillées simultanément, le nombre d’instances surveillées s’affichera dans la partie inférieure droite des métadonnées du projet.

Tableau de bord de l’aperçu du projet affichant la version 8.12.0, cinq vulnérabilités, 464 dépendances, la source CI/CLI et une instance d’application surveillée.

Premiers pas avec Node.js

Pour commencer à surveiller vos applications Node.js, ajoutez la dépendance @snyk/nodejs-runtime-agent à votre projet en exécutant npm install @snyk/nodejs-runtime-agent dans le dossier de votre projet, puis configurez-la dès que possible dans la séquence de démarrage de votre application. Voici un exemple de flux :

require('@snyk/nodejs-runtime-agent')({
projectId: '0462e42b-c92f-4b48-bac8-81eb3ff7f43e',
});
const express = require('express');

Dans l’extrait ci-dessus, la dépendance @snyk/nodejs-runtime-agent est requise avant toute autre instruction require. L’agent peut ainsi inspecter chaque dépendance requise afin de créer un hook d’exécution qui l’avertira lorsque l’application appelle des fonctions vulnérables.

L’agent est configuré avec l’ID d’un projet surveillé sur snyk.io. Vous pouvez obtenir l’ID de votre projet via l’API ou en consultant sa page de paramètres sur snyk.io.

Pour en savoir plus, consultez notre documentation sur l’installation de la protection à l’exécution.

Premiers pas avec Java

Pour commencer à surveiller vos applications Java, téléchargez notre agent d’exécution pour Java (.ZIP) et décompressez l’archive.

  1. Copiez snyk-java-runtime-agent.jar à côté de votre application.

  2. Créez un fichier snyk-agent.properties dans le même emplacement que le fichier JAR de l’agent, et renseignez l’ID de votre projet Snyk comme suit : projectId=0462e42b-c92f-4b48-bac8-81eb3ff7f43e.

  3. Ajoutez l’agent comme argument de ligne de commande à la commande Java utilisée pour démarrer votre application, par exemple : java -javaagent:path/to/snyk-java-runtime-agent.jar -jar my-app.jar.

    - Si vous utilisez Apache Maven, ajoutez -javaagent:path/to/snyk-java-runtime-agent.jar à votre variable d’environnement MAVEN_OPTS.

    - Si vous utilisez des conteneurs JavaEE tels que GlassFish, repérez les JVM Options et ajoutez-y -javaagent:path/to/snyk-java-runtime-agent.jar.

À venir

Nous prévoyons de sortir notre solution de surveillance à l’exécution de la bêta fermée dans les prochaines semaines, après avoir recueilli vos commentaires.

Et ensuite ? Surveiller les composants open source pour détecter les comportements malveillants à l’exécution et relier ces données aux résultats de l’analyse du code source permet aux développeurs de prendre en charge la sécurité open source tout au long du cycle de vie de l’application, pour les vulnérabilités connues comme inconnues. L’instrumentation de l’application à l’exécution permet de développer de nombreuses fonctionnalités allant au-delà de la priorisation des vulnérabilités basée sur l’exécution que nous lançons aujourd’hui. Elles seront disponibles dans les prochains mois. Restez à l’écoute !

Lancez-vous dans les compétitions Capture The Flag

Apprenez à résoudre des défis de capture du drapeau en regardant à la demande notre atelier virtuel d’initiation.