Outils d'analyse statique du code source

Détection des vulnérabilités et des erreurs d'exécution

CodeSonar

CodeSonar permet de vérifier l'adhésion du code source aux normes de codage logiciel"Safety" et"Security", comme l'exigent les principales normes de sécurité fonctionnelle.

Langages de programmation

Normes de sécurité

C 2012

C++ 2008

C++ 14, 2018

Normes de sécurité

C 2016

C++ 2016

CodeSonar comprend différents programmes qui détectent les erreurs potentielles au moment de l'exécution.
CodeSonar vous permet de vérifier que le code source développé est conforme aux normes de sécurité sélectionnées. Pour chaque norme, vous pouvez sélectionner les règles que vous souhaitez vérifier.
Le résultat final garantit une utilisation sûre du langage de programmation et la portabilité de l'application.

Détection des erreurs d'exécution

  • Utilisation de pointeurs nuls
  • Débordement de mémoire tampon
  • Mémoire dynamique non libérée
  • Problèmes de conversion des types
  • Erreurs d'initialisation des variables
  • Utilisation inappropriée des fonctions de la bibliothèque
  • Détection de boucles et de cycles non valides
  • Détection des codes morts
  • Erreurs de simultanéité
  • et bien d'autres ...

Caractéristiques différentielles de CodeSonar

Profondeur de l'analyse

L'un des facteurs de différenciation de CodeSonar est sa capacité à effectuer une analyse approfondie du code, y compris une analyse du flux de contrôle et du flux de données, ce qui permet d'obtenir des erreurs qui affectent différentes fonctions dans différents fichiers.
CodeSonar fait la distinction entre les erreurs et les avertissements de gravité différente. Une fois qu'une erreur est identifiée, la séquence d'appels de fonction qui la provoque ainsi que la déclaration et la condition dans lesquelles l'erreur se produit sont affichées. Ceci est marqué comme une séquence d'événements.
CodeSonar trouve des erreurs que d'autres outils d'analyse statique du code sont incapables de localiser.

Les chemins et l'arbre d'appel menant à l'erreur peuvent également être affichés.
Dans l'exemple montré d'une erreur d'initialisation d'une variable locale dans une fonction, CodeSonar détecte que l'erreur se produit dans quatre chemins d'exécution sur les six possibles.

Le flux de contrôle des appels de fonction peut également être représenté graphiquement.

Évolutivité : analyse distribuée

CodeSonar permet l'analyse de très grands référentiels de code source à un niveau très élevé de profondeur d'analyse grâce à la possibilité de répartir l'analyse sur plusieurs processus fonctionnant sur différents serveurs.

CodeSonar gère un processus Hub primaire pour l'analyse et la visualisation du web et, éventuellement, plusieurs processus Hub satellites. Les processus primaires et secondaires partagent la même base de données.

Intégration DevSecOpcs

CodeSonar s'intègre à divers environnements d'intégration continue : Jenkings, GitLab, GitHub, etc.
Le développeur peut visualiser et résoudre les problèmes de sécurité dans l'environnement CI/CD et accéder à des informations plus détaillées dans le Hub d' un simple clic de souris. En cas de détection d'une erreur, les défauts peuvent être ouverts dans des outils spécialisés tels que Jira. Le chef de projet ou les responsables de la qualité peuvent vérifier l'état de la sécurité à l'aide des rapports inclus dans l'environnement CI/CD. La charge d'analyse peut être répartie entre plusieurs processus fonctionnant sur différents serveurs.
CodeSonar gère un processus Hub primaire pour l'analyse et la visualisation web et, en option, plusieurs processus Hub satellites. Les processus primaires et secondaires partagent la même base de données.

Intégration avec d'autres outils

CodeSonar s'intègre aux environnements de développement natifs tels que MS Visual Studio ou MS Visual Studio Code et aux environnements de développement croisés basés sur Eclipse.

CodeSonar permet d'utiliser différents compilateurs croisés pour les architectures PowerPC et ARM. Il fournit également un assistant graphique pour définir les différents paramètres d'analyse et capturer toutes les informations nécessaires pour construire l'exécutable en utilisant la méthode de construction de chaque fournisseur.
Une fois que les informations sur le compilateur et l'éditeur de liens, les options de compilation, les répertoires d'inclusion et les macros de préprocesseur sont capturées, CodeSonar est capable d'analyser le code source en utilisant toutes ces informations.

Compilateurs pris en charge par CodeSonar

  • ARM Real View et Clang

  • Borland

  • Clang

  • CodeVision

  • Cosmique

  • Guerrier du code

  • Green Hills C/C++

  • GNU C/C++

  • Keil

  • Hi-Tech

  • IAR

  • Intel

  • Microsoft

  • MPLAB

  • QNX

  • Renesas

  • SHARC, Blackfin

  • Tâches

  • Texas Instruments

  • Rivière des vents

CodeSonar pour Java et C#

Dans le cas de Java et C#, les applications développées ont des exigences de sécurité spécifiques à la plateforme, au système d'exploitation, à la base de données, aux logiciels intermédiaires de communication et aux objets distribués.

Détection des erreurs de sécurité

  • Injections

  • Cookies

  • Mots de passe

  • LDAP

  • Erreurs cryptographiques

  • Référence à des entités externes

  • et bien d'autres encore

Plates-formes C# prises en charge

  • MVC

  • L'unité

  • Formulaires Web

  • Formulaires Windows

Plates-formes Java prises en charge

  • Apache-CXF

  • AspectJ

  • EJB

  • JAX-RS

  • JAX-WS

  • JPA

  • JSF

  • Jersey

  • RESTeasy

  • RESTlet

  • Servlet

  • Printemps

  • Android

S'abonner à notre lettre d'information