Aucun résultat trouvé

Votre recherche n'a donné aucun résultat.

Analyse et tests de sécurité

Présentation

Chez Oracle, les tests de sécurité du code comprennent à la fois des tâches fonctionnelles et non fonctionnelles dont le but est de vérifier les fonctionnalités et la qualité des produits. Bien que ces types de tests ciblent souvent des fonctionnalités en commun entre les produits, ils possèdent des objectifs indépendants et sont effectués par des équipes différentes. Les tests de sécurité fonctionnels et non fonctionnels se complètent pour offrir une couverture de sécurité totale des produits Oracle.

Tests de sécurité fonctionnels

Les tests de sécurité fonctionnels sont généralement exécutés par les équipes d’assurance qualité (QA) dans le cadre des cycles normaux de tests. Au cours de cette phase de tests, les techniciens du QA vérifient la conformité des fonctionnalités de sécurité implémentées aux critères convenus au préalable dans les spécifications fonctionnelles pendant le processus d’examen de l’architecture et de contrôles.

Analyse et tests d’assurance de sécurité

L’analyse et les tests d’assurance de sécurité vérifient les qualités de sécurité de produits Oracle face à différents types d’attaques. Il existe deux grandes catégories de tests employés pour tester les produits Oracle : les analyses statiques et les analyses dynamiques, qui sont décrites en détail dans les sections ci-dessous. Ces tests s’inscrivent différemment dans le cycle de développement produit et tendent à identifier différentes catégories de problèmes. les deux types de tests sont donc utilisés par les équipes produit d’Oracle.

Analyses statiques

L’analyse de sécurité statique du code source constitue la première ligne de défense utilisée pendant le cycle de développement produit. Oracle utilise un analyseur de code statique de Fortify Software, une société de HP, ainsi qu’une variété d’outils développés en interne, pour intercepter les éventuels problèmes lors de l’écriture du code. Les produits développés dans la plupart des langages de programmation (tels que C/C++, Java et C#) et des plateformes (J2EE et .NET) sont analysés afin d’identifier d’éventuels problèmes de sécurité. Ce type de contrôles est très efficace pour identifier les débordements de mémoire tampon et les fuites de mémoire dans le code C/C++, les problèmes de gestion des ressources dans J2EE et .NET, et détecter une gestion incorrecte des informations d’identification, diverses injections de code, des configurations systèmes incorrectes, etc. Un des inconvénients de ce type d’analyse est le niveau élevé de faux positifs qu’il génère. En effet, certains des éléments identifiés ne constituent pas des problèmes légitimes. Généralement, l’analyse de ces rapports nécessite l’intervention d’ingénieurs senior des équipes produit, qui connaissent bien le code du produit, pour faire la distinction entre les faux positifs et les problèmes réels et réduire le nombre de faux positifs.

Analyses dynamiques

L’activité d’analyses dynamiques se produit toujours au cours des dernières phases du développement de produit : le produit ou le composant doit au moins pouvoir être exécuté. Même si cela peut varier selon les organisations Oracle, cette activité est généralement menée par l’équipe de QA chargée de la sécurité (ou un groupe dédié similaire), qui peut collaborer avec plusieurs équipes produit. L’analyse dynamique se concentre sur les API et les interfaces produit visibles et s’appuie souvent sur des outils spécialisés de tests. Chez Oracle, des outils aussi bien manuels qu’automatiques sont utilisés pour les tests. Les outils automatiques appliquent une technique de « fuzzing » pour tester les protocoles et les interfaces produit accessibles sur le réseau, tandis que les outils manuels nécessitent de réaliser des modifications à la main, mais offrent une précision bien plus grande.