Source Code Security Assessment

Identification des défauts de conception et des bogues d'implémentation dans le code

Etapes suivantes :

Overview

Des recherches prouvent qu'il est plus efficace et plus économique de résoudre les problèmes de sécurité dès les phases initiales du cycle de développement des applications que de soumettre ces dernières à des tests d'intrusion pour ensuite corriger les failles décelées. Les consultants en sécurité des applications de Foundstone procèdent à des inspections rigoureuses et efficaces du code source pour identifier, dès les premières phases du cycle de développement, les problèmes de sécurité logicielle dommageables.

Bien que nous ayons recours à des outils d'inspection commerciaux pour faciliter l'automatisation du processus, les experts de Foundstone valident chaque problème détecté et examinent le code manuellement pour pallier les limitations et le manque d'efficacité des techniques et outils automatisés. Nos consultants repèrent les infractions aux stratégies et le non-respect des meilleures pratiques, par exemple l'emploi d'algorithmes cryptographiques inappropriés et les erreurs sémantiques courantes dans le code à l'origine de vulnérabilités.

Nos compétences très étendues couvrent les langages de programmation C, C++, C#, VB.NET Java, CFML, Perl, Classic ASP et PHP, l'utilisation d'infrastructures de développement telles que J2EE et .NET Framework, et le développement sur les plates-formes Win32 et UNIX.

Les capacités de Foundstone en matière d'évaluations de la sécurité du code source sont renforcées par l'expérience de nos consultants en sécurité des logiciels et des applications (SASS, Software and Application Security Service), qui ont réalisé des audits de code source pour de nombreuses applications clientes ainsi que pour leurs propres logiciels. Nos consultants SASS ont participé à titre professionnel au développement de divers systèmes logiciels d'entreprise commerciaux : ils maîtrisent donc parfaitement le processus de développement de logiciels et savent pourquoi et de quelle manière les bogues de sécurité sont introduits. Conjuguée à des outils automatisés évolués utilisant l'analyse contextuelle, notre expérience nous permet d'analyser une plus grande quantité de code de façon plus rapide, plus précise et plus efficace que toute autre entreprise de services-conseils en sécurité.

Principaux avantages

Nos rapports détaillés proposent des informations spécifiques sur les vulnérabilités, notamment la ligne de code concernée, l'emplacement du fichier impliqué, le problème à proprement parler et des suggestions de solutions. Ils présentent une vue d'ensemble et des statistiques relatives aux sections de code, telle la densité de vulnérabilité (par 1 000 lignes de code) dans des zones spécifiques. Des mesures correctives stratégiques sont également suggérées, par exemple la création de bibliothèques de sécurité ou de composants réutilisables.

Methodology

Lors de l'examen de toute application de grande envergure, nous commençons par élaborer un modèle de menaces en collaboration avec l'équipe de développement. Ce modèle nous aide à appréhender les fonctionnalités des applications, leur conception technique, ainsi que les menaces de sécurité existantes et leurs contre-mesures. Les modèles de menaces contribuent également à une meilleure gestion de la taille de la base de code, réduisant ainsi la portée des examens — en général, le code effectivement examiné correspond à 40 % à 60 % de sa taille initiale.

Une fois que nous disposons du modèle de menaces et d'informations complètes et précises sur l'architecture des applications, nous évaluons le code au moyen d'outils automatisés Secure Software à la recherche d'éventuels bogues de nature syntaxique et sémantique. En général, les problèmes que nous recherchons sont de deux types : les défauts de conception et les bogues d'implémentation. Parmi les défauts de conception, on peut citer des erreurs de jugement lors de la conception, par exemple le choix d'une source inappropriée pour la génération aléatoire des clés cryptographiques. Quant aux bogues d'implémentation, il s'agit essentiellement d'erreurs syntaxiques ou sémantiques dans les constructions de code occasionnant des vulnérabilités. Software Magazine a publié de nombreux articles relatant nos travaux et notre méthodologie d'évaluation du code.