Skip to main content

5 conseils pour créer des applications sécurisées, même sans expérience

Écrit par
feature snyk code cli blue

27 décembre 2022

0 minutes de lecture

La plupart des développeurs ne sont pas des spécialistes de la sécurité. Non pas que la sécurité ne nous importe pas, mais les journées n’ont que 24 heures et les fonctionnalités passent avant tout. Heureusement, vous n’avez pas besoin d’être un spécialiste de la sécurité pour créer des applications sécurisées : il vous suffit d’utiliser les bons outils.

Dans cet article, je voudrais vous présenter les outils de sécurité pour les développeurs de Snyk. Ils vous aideront à progresser et à détecter puis corriger les vulnérabilités dans le code que vous écrivez et les dépendances que vous utilisez. J’ai bien dit sécurité pour les développeurs, car Snyk est un outil de sécurité conçu spécifiquement pour les développeurs ! Alors, c’est parti…

1. Détectez et corrigez les vulnérabilités du code directement dans votre IDE

Contrairement à ce que vous avez pu connaître par le passé, l’analyse statique pour la sécurité des applications peut être rapide, utile et accessible directement depuis votre IDE. Cela nous semble tout naturel : les développeurs passent le plus clair de leur temps à écrire et lire du code dans leur IDE. Ils devraient donc aussi pouvoir obtenir des informations sur les vulnérabilités de leur code au fil de leur écriture.

Obtenir les résultats de l’analyse statique — ainsi que des conseils concrets pour corriger les problèmes — pendant que vous écrivez du code vous fait gagner un temps précieux. Plus besoin de revenir plus tard dans le code pour le remanier et appliquer des mesures d’atténuation et des contrôles de sécurité. C’est le genre de changements de contexte que nous, les développeurs, préférons éviter.

Voici une capture d’écran de l’IDE VS Code montrant l’extension Snyk en action, qui détecte les vulnérabilités dans le code et les dépendances open source :

Visual Studio Code avec l’analyse de sécurité Snyk mettant en évidence une vulnérabilité de traversée de chemin à gravité élevée dans du code JavaScript.

Tout d’abord, l’extension met en évidence la ligne de code à l’origine de la vulnérabilité et affiche des informations détaillées dans le panneau de droite. Ici, elle a détecté une vulnérabilité de traversée de chemin dans le code, dans le chemin d’exécution du programme (détectée par analyse statique du code). Enfin, elle propose ci-dessous l’une des trois corrections suggérées, élaborées à partir de la façon dont des vulnérabilités similaires ont été corrigées dans des projets open source.

2. Ajoutez des intégrations de sécurité avant commit et dans votre CI grâce à la CLI

Vous utilisez peut-être déjà ESLint ou GitHub Actions avec des tests avant de soumettre vos pull requests. C’est une excellente chose ! Utilisez la CLI Snyk (npm install -g snyk) pour détecter les problèmes de code critiques avant un commit et dans votre workflow CI avant une fusion.

Cette capture d’écran montre les résultats de l’analyse Snyk dans un terminal, après l’exécution du test de code de la CLI Snyk avec des options de ligne de commande pour filtrer les problèmes de code critiques :

Terminal exécutant un test Snyk Code, signalant des vulnérabilités de gravité élevée liées à une injection NoSQL et à un secret codé en dur dans un projet Node.js.

La CLI Snyk a effectué une analyse statique du code avec snyk code test et détecté 5 vulnérabilités. Trois d’entre elles sont liées à des injections NoSQL (une variante de l’injection SQL) et deux à des secrets codés en dur dans le code de l’application. Et pour les développeurs qui se demandent combien de temps cela a pris : l’analyse statique de sécurité du code s’est achevée en moins d’une minute. Vous n’auriez même pas eu le temps de vous préparer un café.

À NOTER : Lorsqu’une analyse statique du code est utilisée spécifiquement à des fins de sécurité, on parle de tests statiques de sécurité des applications, ou SAST.

3. Sécurisez facilement les dépendances de votre application

Plus vous ajoutez de dépendances, plus les risques de sécurité pour votre application augmentent. En effet, vous ajoutez des lignes de code et des logiciels (bibliothèques, packages, etc.), ce qui augmente les risques de vulnérabilités ou de configurations non sécurisées susceptibles de compromettre votre application.

En tant que développeur, vous échangez essentiellement du temps de développement contre des risques liés à la sécurité et à la maintenance lorsque vous utilisez une bibliothèque tierce existante (et sa licence). La plupart d’entre nous acceptent ce compromis. Il est donc important d’utiliser des outils qui nous aident à rester en sécurité tout en utilisant des dépendances tierces.

Pour vous aider à rester en sécurité, l’extension Snyk pour VS Code annotera le fichier package.json (un fichier de métadonnées de package utilisé dans les projets JavaScript), ainsi que les instructions require ou import, afin de vous indiquer le risque lié aux vulnérabilités des dépendances npm tierces utilisées dans votre application.

Voici une autre capture d’écran de l’IDE VS Code, cette fois centrée sur un fichier manifeste package.json utilisé dans les projets JavaScript :

Visual Studio Code affichant les dépendances du fichier package.json d’un projet Node.js, avec plusieurs alertes de vulnérabilité

Ce fichier manifeste des dépendances pour les projets JavaScript est géré par le gestionnaire de packages npm. L’extension Snyk pour VS Code annote les lignes de code dans l’IDE pour signaler les vulnérabilités des dépendances open source tierces importées, qui doivent être corrigées.

4. Évitez d’utiliser du code vulnérable trouvé sur Stack Overflow (ou ailleurs)

Utilisez le vérificateur de code en ligne de Snyk pour y coller des extraits de code et détecter les failles de sécurité avant de les intégrer à votre application ! Cet outil gratuit prend actuellement en charge Python, JavaScript, Go, Java, PHP et bien d’autres langages.

Dans la vidéo ci-dessous, vous verrez qu’une question populaire sur Stack Overflow propose du code utile pour créer des serveurs HTTP statiques de fichiers de base avec Node.js. Mais comment savoir si ce code est suffisamment sécurisé pour être copié, collé et exécuté ?

Capture d’écran du navigateur montrant une question Stack Overflow intitulée « Serveur de fichiers statiques basique en NodeJS », avec du code JavaScript permettant de diffuser des fichiers.

Si nous collons ce même extrait de code pour les serveurs de fichiers statiques dans le vérificateur de code de Snyk et que nous recherchons des problèmes de sécurité dans le code JavaScript, nous en trouvons deux, dont une vulnérabilité critique de traversée de chemin.

5. Continuez toujours à apprendre

En tant que développeurs, nous devons chaque jour suivre le rythme des innovations technologiques rapides, un effort qui en vaut la peine. De même, il est essentiel de maintenir vos compétences en programmation sécurisée à jour. Rendez-vous sur Snyk Learn et suivez une leçon interactive sur la sécurité des applications :

Page Web de Snyk Learn présentant des formations à la sécurité pour les développeurs, avec une fusée qui décolle d’un livre ouvert et un bouton « Commencer à apprendre »

Snyk Learn est une ressource pédagogique en ligne gratuite qui permet aux développeurs d’acquérir des compétences et de suivre des formations en sécurité des applications grâce à des leçons pratiques, interactives et courtes. Elle propose des leçons sur l’ensemble des risques de l’OWASP Top 10, ainsi que des leçons dédiées à la sécurité, comme l’injection de code, la redirection ouverte, la pollution de prototype et bien d’autres sujets. Elle propose également des guides adaptés à des langages de programmation et écosystèmes spécifiques, notamment Java, Python, JavaScript, Go, PHP et bien d’autres.

Je vous recommande vivement d’installer l’extension Snyk pour VS Code et de prendre le temps de vous familiariser avec les enjeux de sécurité grâce à Snyk Learn.

Améliorez vos compétences en programmation sécurisée

Des formations gratuites et de qualité en sécurité pour les développeurs, quand et où vous le souhaitez.