Michael Grünewald a récemment publié ce commentaire :
Une méthode très importante que vous ne mentionnez pas est le «principe des quatre yeux» qui est utilisé dans la finance - soit comme une obligation réglementaire, soit comme un garde-fou. Dans l'industrie du logiciel, il est mis en œuvre de diverses manières, comme par exemple les revues de code, mais peut également être utilisé pour valider des commandes affectant des systèmes en direct.
Corrigez-moi si je me trompe, mais on m'a appris que le "principe des quatre yeux" concerne quelque chose qui est "approuvé pour se produire", après qu'au moins 2 êtres humains (et / ou processus automatisés) ont donné leur bénédiction préalable. Ou pour utiliser la formulation (légèrement corrigée) sur la "règle des deux (wo) hommes" de Wikipedia :
La règle des deux hommes est un mécanisme de contrôle conçu pour atteindre un niveau élevé de sécurité pour le matériel ou les opérations particulièrement critiques. En vertu de cette règle, tous les accès et actions nécessitent la présence de deux personnes autorisées à tout moment.
Les obligations réglementaires sont, bien sûr, hors sujet ici, mais dans le contexte du "garde-fou", quelles sont les implémentations conceptuelles possibles de ce principe à quatre yeux, qui pourraient probablement s'appliquer à n'importe quelle plate-forme / OS / matériel utilisé?
la source
Revues de code
Il s'agit de demander à au moins une autre personne de regarder le code écrit par quelqu'un, par exemple pour évaluer s'il répond à certains critères prédéfinis comme:
if/then/else
ou lescase/when
constructions couvrent tous les cas possibles).Approbations pour mettre à jour certains environnements cibles
Il s'agit d'avoir au moins 2 confirmations d'une personne et / ou d'un système automatisé avant qu'il ne soit autorisé à mettre à jour un environnement cible (qui peut être actif, ou peut être quelque chose comme un fichier maître / une bibliothèque de base). Certains exemples sont:
la source
Ce sont des stratégies / modèles auxquels je peux penser:
Séparation des fonctions
DevOps, à mon avis du moins, ne signifie pas incarner à la fois les dev et les ops en une seule personne. Il est donc toujours possible de séparer le devoir de telle sorte que celui qui écrit le code (dev) n'est pas celui qui l'exécute (ops).
Par exemple, si une instruction SQL doit être exécutée sur l'environnement réel, l'une écrit le SQL et l'autre l'exécute. Cela présuppose que celui qui exécute doit également avoir une compréhension du SQL et ne pas simplement l'exécuter.
Déployer le déclencheur
Bien qu'il y ait du mérite à se déployer en continu. L'équipe d'une industrie plus réglementée peut désigner une autre partie (distincte) pour déclencher le déploiement au lieu de se déployer automatiquement. Liste de contrôle, tests automatisés, sommes de contrôle sont des vérifications possibles avant de déclencher le déploiement.
Une fois déclenchée, l'automatisation peut aller de l'avant pour exécuter le déploiement.
Programmation en binôme
Personnellement, je n'ai pas cité cette technique comme méthode à suivre par l'auditeur pour satisfaire au principe du contrôle et de l'équilibre. Mais potentiellement, je pense que cela peut être une stratégie.
MFA
Je vais peut-être m'étirer un peu avec celui-ci, mais il est possible que, pour une raison quelconque, vous ne souhaitiez pas une entrée unilatérale dans un système, quelqu'un puisse détenir le mot de passe et une autre personne détienne le jeton ou l'appareil pour un code temporel. Pour que 2 personnes soient présentes pour évaluer le système.
la source