Michael Grünewald postou recentemente este comentário :
Um método muito importante que você não menciona é o “princípio dos quatro olhos”, que é usado nas finanças - como uma obrigação regulatória ou como salvaguarda. Na indústria de software, ele é implementado de várias maneiras, como, por exemplo, revisões de código, mas também pode ser usado para validar comandos que afetam sistemas ativos.
Me corrijam se eu estiver errado, mas fui ensinado que o "princípio dos quatro olhos" é sobre algo "aprovado para acontecer", depois que pelo menos dois seres humanos (e / ou processos automatizados) deram sua benção prévia. Ou, para usar o texto (ligeiramente corrigido) sobre a "regra de dois (dois) homens" da Wikipedia :
A regra dos dois homens é um mecanismo de controle projetado para alcançar um alto nível de segurança para operações ou materiais especialmente críticos. Sob esta regra, todo acesso e ações requer a presença de duas pessoas autorizadas o tempo todo.
As obrigações regulatórias são, com certeza, fora de tópico aqui, mas no contexto de "salvaguarda", quais são as possíveis implementações conceituais desse princípio dos quatro olhos, que provavelmente poderiam se aplicar a qualquer plataforma / sistema operacional / hardware sendo usado?
fonte
Revisões de código
Trata-se de ter pelo menos uma outra pessoa olhando o código escrito por alguém, por exemplo, para avaliar se ele atende a alguns critérios predefinidos, como:
if/then/else
oucase/when
construções cobrem todos os casos possíveis).Aprovações para atualizar alguns ambientes de destino
Trata-se de ter pelo menos duas confirmações de alguma pessoa e / ou sistema automatizado antes que seja permitido atualizar algum ambiente de destino (que pode estar ativo ou pode ser algo como algum arquivo mestre / biblioteca de linha de base). Alguns exemplos são:
fonte
Estas são estratégias / padrões em que consigo pensar:
Separação de serviço
DevOps, pelo menos a meu ver, não significa incorporar os desenvolvedores e os operadores em uma única pessoa. Portanto, ainda é possível separar o dever de forma que aquele que escreve o código (dev) não seja quem o executa (ops).
Por exemplo, se uma instrução SQL deve ser executada no ambiente ativo, uma grava a SQL e outra a executa. O que isso pressupõe é o que a execução precisa ter também um entendimento do SQL e não apenas a execução.
Implementar gatilho
Embora haja mérito para implantar continuamente. A equipe de um setor mais regulamentado pode nomear outra parte (separada) para acionar a implantação em vez de implantar automaticamente. Lista de verificação, testes automatizados, somas de verificação são possíveis verificações antes de iniciar a implantação.
Uma vez acionada, a automação pode prosseguir para executar a implantação.
Programação em pares
Pessoalmente, não citei essa técnica como um método para auditar a satisfação do princípio de verificação e equilíbrio. Mas potencialmente acho que pode ser uma estratégia.
AMF
Eu posso estar me alongando um pouco com este, mas é possível que, por algum motivo, você não queira entrada unilateral em um sistema, alguém possa manter a senha e outra pessoa manter o token ou dispositivo por um código de tempo. Portanto, 2 pessoas devem estar presentes para avaliar o sistema.
fonte