Model | Vérification | Tests axés sur les exigences | Vérification des contrôles
Benefit
Efficacité vérifiée de vos contrôles de sécurité standards
Activity
Effectuez des tests de sécurité pour vérifier que les contrôles standards de sécurité logiciels fonctionnent comme prévu. À un haut niveau, cela signifie tester le bon fonctionnement des contrôles liés à la confidentialité, à l’intégrité et à la disponibilité des données ainsi que du service. Les tests de sécurité comprennent au moins des tests d’authentification, de contrôle d’accès, de validation des entrées, d’encodage, d’échappement des données et de chiffrement. L’objectif des tests est de valider que les contrôles de sécurité sont correctement implémentés.
Les tests de sécurité valident les contrôles de sécurité logiciels nécessaires. Effectuez des tests de sécurité de vérification des contrôles manuellement ou avec des outils à chaque fois que l’application change son utilisation des contrôles. Les techniques telles que les basculements de fonctionnalités et les tests A/B peuvent être utilisées pour exposer progressivement des fonctionnalités à un public plus large au fur et à mesure qu’elles sont suffisamment validées. La vérification des contrôles logiciels est obligatoire pour tous les logiciels qui font partie du programme SAMM.
Question
Testez-vous les applications quant au bon fonctionnement des contrôles de sécurité standards?
Quality criteria
Les tests de sécurité vérifient au moins l'implémentation de l'authentification, du contrôle d'accès, de la validation des entrées, de l'encodage et de l'échappement des données et des contrôles de chiffrement |
Les tests de sécurité s'exécutent chaque fois que l'application change son utilisation des contrôles |
Answers
Non |
Oui, certains d'entre eux |
Oui, au moins la moitié d'entre eux |
Oui, la plupart ou tous |
Benefit
Intégration des exigences de sécurité dans les scénarios de test
Activity
À partir des exigences de sécurité, identifiez et implémentez un ensemble de scénarios de tests de sécurité afin de vérifier si le fonctionnement du logiciel est correct. Pour avoir un programme de test réussi, il est impératif de connaître les objectifs de test, spécifiés par les exigences de sécurité.
Dérivez les cas de tests de sécurité pour les applications visées à partir des exigences de sécurité créées dans le cadre de la pratique “Exigences de Sécurité” du SAMM. Pour valider les exigences de sécurité avec des tests de sécurité, les exigences de sécurité sont basées sur des actions et mettent en évidence les fonctionnalités attendues (le quoi) et, implicitement, l’implémentation (le comment). Ces exigences sont également appelées « exigences positives », car elles indiquent les fonctionnalités attendues qui peuvent être validées par le biais de tests de sécurité. Parmi les exemples de conditions positives, citons : « l’application va verrouiller la session de l’utilisateur après six tentatives de connexion invalides» ou « les mots de passe doivent comporter au moins six caractères alphanumériques ». La validation des exigences positives consiste à confirmer la fonctionnalité attendue. Vous pouvez faire cela en recréant les conditions de test et en exécutant le test selon des entrées prédéfinies. Affichez les résultats sous la forme d’échec ou de réussite.
Souvent, il est plus efficace d’utiliser du temps de l’équipe du projet pour construire des cas de test spécifiques à une application et d’employer des ressources disponibles au public ou des bases de connaissances achetées à l’extérieur pour sélectionner les cas de tests généraux applicables à la sécurité. Le personnel compétent en matière de développement, de sécurité et d’assurance qualité examine les cas de test candidats pour leur applicabilité, leur efficacité et leur faisabilité. Etablissez les cas de test pendant la rédaction des exigences et / ou la phase de conception de la fonctionnalité. Tester les exigences de sécurité fait partie des tests fonctionnels du logiciel.
Question
Écrivez-vous et exécutez-vous de façon cohérente des scripts de test pour vérifier la bonne mise en place des exigences de sécurité?
Quality criteria
Vous adaptez les tests à chaque application et confirmez les fonctionnalités de sécurité attendues |
Vous capturez les résultats de test comme une condition de réussite ou d'échec |
Les tests utilisent un cadre standardisé ou DSL |
Answers
Non |
Oui, certains d'entre eux |
Oui, au moins la moitié d'entre eux |
Oui, la plupart ou tous |
Benefit
Détection rapide et fiable des violations des exigences de sécurité
Activity
Écrivez et automatisez les tests de régression pour tous les bogues identifiés (et corrigés) afin de vous assurer que ceux-ci forment un harnais de tests empêchant des problèmes similaires d’être introduits dans les versions ultérieures. Les tests unitaires de sécurité devraient vérifier dynamiquement (à savoir au moment de l’exécution) que les composants fonctionnent comme prévu et devraient valider que les changements de code sont correctement implémentés.
Une bonne pratique pour les développeurs est de construire des cas de tests de sécurité sous la forme d’une suite de tests de sécurité génériques faisant partie de l’environnement de tests unitaires existant. Une suite de tests de sécurité génériques peut inclure des cas de tests de sécurité pour valider les exigences à la fois positives et négatives pour les contrôles de sécurité tels que l’Identification, l’Authentification & le Contrôle d’accès, la Validation et l’Encodage des entrées, la Gestion des utilisateurs et des sessions, la Gestion des erreurs et des exceptions, le Chiffrement et l’Audit et la Journalisation. Vérifiez la bonne exécution des tests de sécurité aussi tôt que possible. Si possible par exemple, envisagez d’exécuter les tests de sécurité dans le cadre des exigences d’intégration avant de permettre à du nouveau code d’entrer dans la base de code principale. Sinon, envisagez leur exécution comme condition à la validation d"une génération.
Pour les tests fonctionnels de sécurité, utilisez des tests de niveau unitaire pour les fonctionnalités de contrôle de sécurité au niveau des composants logiciels, comme les fonctions, les méthodes ou les classes. Par exemple, un cas de test pourrait vérifier la validation des entrées et des sorties (par ex., l’assainissement des variables) et vérifier les limites des variables en confirmant les fonctionnalités attendues du composant.
Question
Testez-vous automatiquement les applications pour les régressions de sécurité ?
Quality criteria
Vous écrivez systématiquement des tests pour tous les bogues identifiés (dépassant éventuellement un seuil de sévérité prédéfini) |
Vous rassemblez les tests de sécurité dans une suite de tests qui fait partie du cadre de référence des tests unitaires existants |
Answers
Non |
Oui, pour certaines applications |
Oui, pour au moins la moitié des applications |
Oui, pour la plupart ou toutes les applications |
Stream Guidance
There's no guidance for this Stream, yet. Be the first to provide Community guidance!
Want to contribute?
Complete this Google Form with guidance for this Stream.
To learn more about Stream guidance for the SAMM model, see the Stream guidance page.