Audit de code source / binaire, Détection des failles d’un logiciel

ChapeauxAQL

Audit de code source / binaire, Détection des failles d’un logiciel

Un Audit de code permet de répondre à différents types d’objectifs, améliorer la qualité du code produit, préparer une certification d’un logiciel, valider le respect de règles de codage imposées par un client ou un projet, rechercher des vulnérabilités de cybersécurité
Demande d'informations
L’audit de code permet de cartographier un logiciel et de détecter des failles pouvant nuire au bon fonctionnement de celui-ci tout au long de sa durée de vie. L’objectif est d’identifier les erreurs ou les méthodes de codage pouvant entrainer des pannes du système, un comportement inattendu ou des failles de cybersécurité.

Basé sur l’Analyse Statique Avancée, cet audit de code est une méthode d’analyse qui a prouvé son efficacité pour détecter des défauts courants de programmation. Elle permet d'analyser une application dans sa totalité, et d’éliminer les défauts les plus coûteux, et qui sont généralement très difficiles à détecter par des analyses manuelles. Comme le code n’est jamais exécuté dans une analyse statique, elle peut être utilisée à tout moment dans le cycle de développement, et complète idéalement d’autres méthodologies de test, comme les tests dynamiques classiques.

Voici par exemple le type de détections (liste non exhaustive) que permet l’analyse statique avancée :
  • Injection de commandes / SQL
  • Tainted values (Analyse du flot de données, notamment des données extérieures, et de leur propagation pour en juger la dangerosité potentielle – cybersécurité)
  • Dépassement de tableau / buffer (buffer overrun / underrun)
  • Division par zéro
  • Déréférencement de pointeur nul
  • Fuites mémoire
  • Débordement de pile
  • Problèmes de casts
  • Variables / pointeurs non initialisés
  • Double libération / fermeture de fichier / socket / mutex …
  • Concurrence de threads: Data Race, Dead locks, famine …
  • ...

Fort de sa longue expertise dans les outils et le développement d’applications temps réel critiques, ISIT a mis en place un service d’audit de code à la demande pour les clients qui ne disposent pas des outils dans leur bureau d’études ou des ressources pour les réaliser, mais qui souhaitent néanmoins s’assurer du niveau de qualité de leurs logiciels. Ceci est particulièrement vrai avec le développement des systèmes connectés, pour lesquels les failles dans le code résultent souvent en dangereuses vulnérabilités.
Moyens/Procédure :

Nos audits de code s’appuient sur l’outil d’analyse statique avancée CodeSonar® de Grammatech®. CodeSonar® permet l’analyse de code Source (C, C++, Java & C#) mais également de codes binaires purs (sans les fichiers sources). Cette capacité, unique à CodeSonar®, permet une analyse complète de toute application : des codes sources utilisateur jusqu’aux librairies tierces-parties intégrées.

CodeSonar® permet également de vérifier durant l’analyse s’il y a des violations vis-à-vis de standards de codage ou vis-à-vis de normes de sûreté de fonctionnement ou de sécurité.

Les audits de code sont effectués en respectant toutes les règles de confidentialité, et bénéficient de procédures de sécurité adéquates.
Résultats :

A l’issue de cette analyse, un rapport détaillé est généré indiquant l’ensemble des erreurs détectées avec leur type, leur degré de sévérité, leur qualification (Safety, Security).

Nos experts AQL peuvent en complément effectuer une revue détaillée de ces détections  afin de vous donner des préconisations concrètes pour leur correction.

Au-delà de cette analyse, nos consultants sont à même de vous accompagner et de vous assister tout au long de votre développement afin de vous assurer de la qualité et la fiabilité de votre logiciel.