menu
L'expérience de nos cyber-consultants au service de votre organisation

Audit de code : méthode et outils

Actualité publiée par Alexandre Prevost le 30/09/2019 | Mise à jour le 24/06/2020 à 16:40
Audit de code : méthode et outils

QU'EST-CE QU'UN AUDIT DE CODE ?

Un audit de code est une relecture du code source d’une application. Il permet d’identifier les vulnérabilités présentes dans le code source, d’en améliorer la maintenabilité, les performances ou de s’assurer de sa conformité à une norme ou aux processus métiers.

L'audit de code peut être réalisé en parallèle de tests d’intrusion : il est ainsi possible de tester l’exploitabilité des vulnérabilités du code, afin de mieux en estimer le risque qu’elles posent.

Idéalement, des audits de code sont effectués tout au long du cycle de vie de l’application. Plus une vulnérabilité est découverte rapidement, plus il est facile de la corriger.

 

pngfuel.png

 MÉTHODOLOGIE

On peut découper l’audit de code en quatre étapes.
 
  • spiral_calendar.png1 ) PRÉPARATION

Définir les objectifs pour mieux cibler l'audit : vulnérabilités, maintenabilité, performance et/ou conformité...

Les auditeurs doivent prendre connaissance des spécifications fonctionnelles et techniques de l’application. Il est ainsi possible d’identifier les modules essentiels au bon fonctionnement de l’application en manipulant des données sensibles.

Cette étape permet aussi de faire un point sur la qualité de la documentation technique et des documents fonctionnels.


  • spirale.png2 ) REVUE AUTOMATIQUE

Une analyse automatisée du code est effectuée.

Elle permet d’identifier rapidement des vulnérabilités, des codes dupliqués ou inutilisés et le non-respect de règles de programmation.

La présence de faux-positifs est inévitable, les auditeurs doivent donc trier les erreurs et avertissements ainsi obtenus. 

Cette revue est effectuée par des outils d’analyse statique. Il existe des outils open-sources pour tous les langages de programmation et frameworks. On ne peut pas toujours s’appuyer sur un seul outil, il peut être nécessaire d’associer les forces et faiblesses de plusieurs outils pour obtenir un meilleur résultat.

 

  • marteau.png3 ) REVUE MANUELLE

Les modules de l’application les plus sensibles sont revus manuellement.

Un diagramme de flux de données, indiquant le cheminement des données au sein de l’application, peut-être réalisé préalablement afin de faciliter l’identification des zones importantes du code source.

Il n’est pas possible de vérifier automatiquement la logique d’une application et sa conformité avec les demandes fonctionnelles. Une revue manuelle est donc indispensable et son étendue doit être clairement définie à l’avance.

 

  • delivery.png4 ) LIVRAISON

C’est une étape essentielle ! Un audit est inutile s’il n’est pas suivi de corrections.

Le livrable contient la liste des problèmes identifiés. Elle est accompagnée du risque qu’ils posent et de la façon de les corriger.

Le livrable contient aussi des remarques et conseils afin d’améliorer les documents techniques. Il peut aussi servir de base pour de futurs audits.

 

Besoin de nos compétences professionnelles pour un audit de code ? Contactez-nous !

   

THEMIS PAR CoESSI

diaporama.jpgAfin de faciliter la revue automatique de code, CoESSI a développé un logiciel d’orchestration d’outils d’analyse statique de code dans le cadre du projet collaboratif ANBLIC [protection des données dans le CLOUD]. Ce logiciel, nommé Themis (fille d’Ouranos et de Gaïa, déesse de la Justice et de la Loi), permet d’exécuter plusieurs outils simultanément puis de standardiser et regrouper leurs résultats.

Il est ensuite possible de donner un score à ces résultats en fonction de la dangerosité de la vulnérabilité découverte et de la précision de l’outil. Il est ainsi possible d’extraire les résultats les plus pertinents et d’écarter les faux positifs. L’objectif est de gagner du temps à l’étape de la revue automatique et réduire la charge de travail nécessaire lors de la revue manuelle. Themis permet aussi de générer des fiches automatiquement à l’aide des résultats renvoyés par les outils.

Themis est en développement continu, afin de supporter d’avantage d’outils logiciels et de langages. Par conséquent, le calcul des scores et la détection des faux-positifs ne cessent d’être étudiés et améliorés.

expand_less