Audit de code
L’audit de code pour identifier les vulnérabilités présentes dans le code de vos applications
L’audit de code ou audit applicatif dit boîte blanche permet, en plus d’évaluer en profondeur le niveau de sécurité d’une application, d’identifier d’éventuelles mauvaises pratiques de programmation. Complémentaire de l’audit de configuration et des tests d’intrusion qui permettent d’évaluer la sécurité du point de vue de l’attaquant, la revue du code source permet d’identifier les failles difficilement détectables ou exploitables. Cet exercice permet également de s’assurer que les mécanismes de durcissement applicatifs et de protection contre l’ingénierie à rebours (reverse-engineering) sont bien appliqués.
La démarche d’audit s’appuie sur les référentiels de l’OWASP (Open Web Application Security Project), de l’ANSSI (Agence Nationale de Sécurité des Systèmes d’Information), du SANS (SysAdmin, Audit, Network, Security), des référentiels de sécurité des éditeurs ainsi que sur l’état de l’art et les contraintes métiers spécifiques de l’audité.
Les objectifs de l’audit de code sont :
1. Découvrir un maximum de vulnérabilités affectant l’application auditée.
2. Évaluer le niveau de durcissement du code et les éventuelles protections contre l’ingénierie à rebours.
3. Définir un plan d’action technique permettant d’appliquer les meilleures pratiques en termes de développement sécurisé.
Digitemis propose la méthode suivante :
Un exemple de mission :
Audit de code sur une application Android et les Web Services associés
L’audit de code est réalisé à l’issue d’un test d’intrusion, il vise à découvrir de nouvelles failles de sécurité et à évaluer le niveau de durcissement du code de l’application. Les Web Services REST font l’objet de point de contrôle portant à la fois sur l’état de l’art concernant ce type d’application, mais également les meilleures pratiques du langage de programmation utilisé. L’audit de l’application Androïd est également réalisé, une attention supplémentaire est portée aux mécanismes permettant de se prémunir des opérations malveillantes visant à retrouver le code source, même partiel, de l’application (ingénierie à rebours/reverse-engineering).