SonarQube et JavaScript

Dans l’article suivant, je passerai en revue les capacités de SonarQube liées à JavaScript (JS) qui aident les développeurs et les responsables de développement, avec des démonstrations à l’appui.

SonarQube et Javascript

SonarQube propose des tests de sécurité statiques des applications (SAST) pour plus de 30 langages et frameworks (y compris les langages d’infrastructure).
L’un des plus populaires d’entre eux est JavaScript (JS).
L’outil propose plus de 420 règles pour JS (dont beaucoup sont uniques) et prend en charge 5 aspects :
Bugs, Vulnérabilités de Sécurité, Security Hotspots (zones sensibles), Code Smells (mauvaises odeurs de code) et corrections rapides (Quick fix).
Vous pouvez recevoir de notre part un fichier Excel détaillé et à jour contenant toutes les règles pour JS (et d’autres langages) – contactez-nous via l’email indiqué ci-dessous.

Des questions ? N’hésitez pas à nous contacter, nous serons ravis de vous répondre ! Email : sonarqube@almtoolbox.com (Numéro de téléphone disponible plus loin dans l’article)

Bugs

SonarQube dispose de plus de 80 règles pour JS qui détectent les bugs et expliquent comment les corriger.
Voici quelques exemples :

 

Vulnérabilité de Sécurité

SonarQube dispose actuellement de plus de 30 règles pour JS qui détectent les vulnérabilités de sécurité et expliquent comment les corriger.
Voici quelques exemples :

 

Security Hotspot (Points sensibles de sécurité)

SonarQube dispose de plus de 60 règles pour JS qui détectent les Security Hotspots et expliquent comment les traiter.

Un Security Hotspot est une zone du code suspectée d’être une vulnérabilité – généralement due à l’utilisation d’API sensibles, de modèles ou d’actions qui pourraient être critiques – nécessitant un examen humain pour décider si une vulnérabilité existe réellement.
Voici quelques exemples :

 

Code Smell (Mauvaises odeurs de code)

SonarQube dispose de plus de 240 règles pour JS qui détectent les Code Smells et expliquent comment les corriger.
Voici quelques exemples :

 

Pourquoi SonarQube est-il particulièrement adapté à JavaScript ?

  • Large gamme de règles (plus de 420)
  • Adaptation à de nombreux frameworks JS (tels que React, Node.JS, Vue.js, Angular, etc. – détails ci-dessous)
  • Approche “Clean Code”
  • Analyse rapide ! Y compris l’analyse incrémentale (uniquement sur le code modifié) et l’analyse multithread pour une utilisation optimale des ressources informatiques
  • Détection des bugs liés à la sécurité de l’information
  • Forte intégration avec les processus de développement et la CI
  • Intégration avec les IDE et les outils de développement prenant en charge JavaScript
  • Support de qualité de la part de l’éditeur, y compris des options de support local ou notre service géré, vous évitant d’avoir à gérer la maintenance du serveur et les opérations courantes

 

Vidéo de Démonstration SonarQube et JS

Vous trouverez ci-dessous une vidéo de démonstration de SonarQube intégré à JavaScript.
Pour votre commodité, nous avons ajouté des points clés sur la timeline de la vidéo (cliquables via le lecteur) :

  • 13:20 Démonstration du Clean Code et du “New Code” avec JS utilisant SonarQube
  • 18:20 68% des développeurs écrivent en JavaScript

 

Prise en charge d’un large éventail de normes et de frameworks :

  • Éditions 3 & 5, ECMAScript 2015 à 2022
  • React JSX, Angular, Vue.js, Node.js, Express, Flow
  • Prise en charge des frameworks de test (Mocha, Chai)
  • Prise en charge des applications Cloud natives :
    Règles AWS CDK dédiées pour trouver les vulnérabilités dans les infrastructures cloud décrites en JS/TS
  • Prise en charge des API de base de données :
    Sequelize, pg, pg-pool, pg-promise, mysql, mysql2, sqlite3, better-sqlite3, knex, MongoDB node.js, Mongoose ODM
  • OWASP Top 10
  • CWE Top 25
  • SANS Top 25
  • PCI DSS

 

Prise en charge de divers systèmes d’exploitation et compilateurs (également pour l’analyse de code dans d’autres langages) :

  • Windows, Linux, macOS
  • Compilateurs Clang, GCC, MSVC, ARM, QNX
  • Compilateurs Intel pour Linux, macOS
  • Compilateurs entièrement basés sur GCC, y compris Linaro GCC
  • Wind River Diab et GCC
  • Compilateurs IAR pour 8051, ARM, AVR32, AVR, Renesas RL78, Renesas RX, Renesas V850, Renesas H8 et Texas Instruments MSP430
  • Compilateurs Texas Instruments sous Windows et macOS pour ARM, C2000, C6000, C7000, MSP430, PRU

 

Tarifs et informations sur les coûts

La plupart des règles détectant les problèmes de sécurité dans le code JavaScript ne sont pas disponibles dans l’édition gratuite (Community Edition) de SonarQube.
La prise en charge complète de JavaScript existe dans les éditions suivantes : Developer Edition, Enterprise Edition et DataCenter Edition.
La prise en charge des rapports de sécurité et de l’OWASP est disponible uniquement dans l’édition SonarQube Enterprise.

Le prix de SonarQube dépend de plusieurs paramètres. Pour plus de détails sur les différences entre les éditions, vous pouvez lire l’article suivant ou nous contacter (coordonnées ci-dessous).

L’article a été publié pour la première fois en octobre 2024 et nous le mettons à jour périodiquement depuis.

ALM-Toolbox est le distributeur officiel exclusif de SonarSource (éditeur de SonarQube, SonarCloud et SonarLint) en Israël et dans d’autres pays.
Nous fournissons des services gérés, du support, de la formation, du conseil et des licences pour SonarQube et une variété d’outils de développement et DevOps complémentaires.
Pour plus de détails, contactez-nous à sonarqube@almtoolbox.com ou par téléphone au +972-72-240-5222

Liens utiles :

 
 

Sécurité et conformité du code à l’aide de GitLab

gitlab-security

Peu de gens le savent, mais GitLab a également la possibilité d’effectuer une variété de contrôles de sécurité sur le code que vous développez et / ou utilisez (open source), ainsi que des capacités de conformité du code – c’est-à-dire de vous assurrez  de faire une utilisation correcte et légale de l’open source que vous utilisez.

En fait, dans GitLab, vous pouvez également exécuter les tests sur le code, puis tout voir à l’aide d’un tableau de bord central qui affiche tout de manière ordonnée, et vous permet également d’effectuer des actions sur les résultats et les constatations et de partager réellement les informations entre tous les projets. personnes (ou quiconque est autorisé à le consulter).

Les tests peuvent être exécutés à partir de GitLab CI (qui est l’outil CI / CD fourni avec GitLab) et peuvent également être connectés à d’autres outils CI tels que Jenkins.

En fait, les tests peuvent être exécutés même si le code est dans un autre outil SCM (tel que git, GitHub, Bitbucket, etc.).

Certains des tests ne concernent pas le code lui-même, mais l’application ou le site Web qui exécute le code.

Il peut être exécuté à la fois à partir d’un serveur GitLab privé (c’est-à-dire auto-hébergé) et à partir du cloud.

 Voici une courte liste de ces fonctionnalités:

Fonctionnalité / test

Description 

Container Scanning  Conteneurs vides (docker) pour les faiblesses connues
Dependency List Afficher une liste des dépendances de projet et des vulnérabilités connues
Dependency Scanning Analyse des dépendances concernant les faiblesses connues
Static Application Security Testing (SAST) Scan du  code (analyse statique) pour les vulnérabilités connues. C / C ++, Apex, .NET, Java, Go, JS, Python, PHP, Swift, TypeScript, NodeJS pris en charge et plus encore
Dynamic Application Security Testing (DAST) Check des Application Web et sites Web vides pour détecter les vulnérabilités connues
Secret Detection  Scan גו code et de l’historique (de git) pour trouver des secrets et les informations sensibles
API Fuzzing Decouverte des bugs  et des vulnérabilités inconnus dans l’API Web (c’est-à-dire l’API que vous fournissez à vos clients) à l’aide de la technologie FUZZING
Coverage Fuzzing Détection de bugs et de vulnérabilités qui ne sont parfois pas détectés dans la phase d’assurance qualité (comme une entrée inattendue et une entrée aléatoire). Support de  C / C ++, Go, Java, JS, Python et plus
Security Dashboard  Vue centrale de toutes les conclusions dans tous les projets et groupes
License Compliance Détectetion  des dépendances open source dans votre code et savoir si le code et les répertoires dont nous dépendons sont légalement utilisés (tels que GPL, BSD, Apache, MIT, etc.) comme   définis dans le projet  

Questions courantes:

  • Question: Est-il possible de le connecter à des systèmes CI non GitLab?
    Réponse: Oui – c’est généralement possible (en fonction de l’utilisation et de la situation – cela doit être testé)
  • Question: Est-il possible d’exécuter les tests même sur des réseaux déconnectés d’Internet?
    Réponse: Certains des tests peuvent être exécutés hors ligne. Nous proposons également une assistance et une licence d’outils supplémentaires (en plus de GitLab) spécialement conçus pour les réseaux privés.

ALMtoolbox est spécialisée dans le développement et le test pour   DevOps et pour l’amélioration des processus de travail comprenant outils de développement, tests, CI / CD, transfert en production et travail sur le cloud, tels que GitLab, Kubernetes, Spotinst, Terraform, Vault, Consul, Rancher et autres., Nous offrons des services de Consultant et vente de licences d’outils.

ALMtoolbox est le  représentant officiel de GitLab, Hashicorp  en France et dans d’autres pays.

Contactez pour nous toute question, un devis ou même une license d’évaluation.

ALMtoolbox : 01 84 17 53 28, devops.fr@almtoolbox.com