Partager :
En quoi consiste l'audit de code source ?
Dans ses recommandations et guides à caractère général, l’ANSSI (Agence Nationale de la Sécurité des Systèmes d’Information) recommande de faire réaliser des audits de sécurité périodiques.
En effet, dans le guide d’hygiène informatique , l’ANSSI précise que l’audit est le seul moyen de constater concrètement l’efficacité de mesures mises en œuvre sur le terrain. Cette affirmation concerne aussi bien la notion d’audit organisationnel que d’audit technique.
L’audit de sécurité de codes fait partie de l’ensemble des audits de sécurité qui permettent d’évaluer le niveau de sécurité d’un ou plusieurs composants d’un système d’information. La revue du code source est ainsi une étape primordiale qui permet d’identifier les implémentations ciblées par l’analyse et d’en évaluer la conformité.
Utilisation de conventions de nommage cohérentes afin que le programmeur comprenne facilement le rôle de chaque fonction et paramètre (maintenance et maintenabilité) ;
Niveau d'opacité des informations (aucune divulgation d’informations sensibles) ;
Facilité d'utilisation (contrôle du séquençage des opérations).
- Une phase d’échantillonnage qui permet d’identifier les points sensibles de l’application et d’orienter l’analyse de sécurité, basée en partie sur l’analyse d’architecture ;
- Une analyse de sécurité qui fait appel à l'expertise de l'auditeur afin d'identifier les écarts par rapport aux pratiques de programmation ainsi que les vulnérabilités dans le contexte de l’audit général.
L’objectif de l’analyse des échantillons de code consiste à :
- Analyser manuellement le code des fonctions identifiées comme critiques et proposer un avis sur la sécurité de l'implémentation de la fonction ;
- Analyser les résultats pertinents issus des outils automatiques, afin d'identifier s'ils présentent un impact en termes de sécurité ou s'ils sont issus d’erreurs de programmation.
L’auditeur est susceptible d’identifier des vulnérabilités exploitables dans le code. Les vulnérabilités identifiées sont alors qualifiées en suivant la méthode CVSSv3. Dans le cas où des vulnérabilités sont identifiées, Synetis propose de vérifier leur exploitabilité par le biais de tests d’intrusion.
- C / C++
- Java
- Java script
- Python
- Perl
- PHP
- Ruby
- Shell/PowerShell
- SQL
Notre méthode repose sur une analyse statique du code via une approche dite « boîte blanche ». L’utilisation de plusieurs techniques d’analyse de code automatisés combinées avec une revue manuelle sont réalisées, tout en confrontant les observations aux référentiels de bonnes pratiques de développement de l’OWASP et de Synetis.
Les vulnérabilités détectées lors de nos audits de code source peuvent porter sur l’absence de filtrage des données entrantes ou sortantes, l’absence de protection de données sensibles échangées, une mauvaise gestion des erreurs qui peut introduire l’exposition de données sensibles, un code non maintenable, etc.