- STPA (System Theoretic Process Analysis, análise teórica de processos de sistemas) é um método para modelar os loops de controle-feedback de sistemas complexos com base em teoria de sistemas e de controle
- O Google usa STPA para analisar sistemas de software e descobrir riscos potenciais
- O STPA trata a segurança do sistema como um problema de controle e analisa todas as ações de controle que podem levar o sistema a um estado de risco
- Em vez de focar no resultado de ações individuais, ele busca as causas-raiz ao se concentrar nos estados de risco
- Ao entender as ações de controle que levam a estados de risco, é possível preveni-las ou fazer recuperação automática
- Quando a recuperação automática é difícil, também é possível alertar operadores humanos
Por que o Google está customizando o treinamento de STPA
- Aumentaram os casos de sucesso em que o STPA encontrou problemas ainda não identificados com antecedência e evitou incidentes
- Os materiais tradicionais de treinamento em STPA são centrados em sistemas físicos, o que dificulta sua aplicação em ambientes de software
- Passou a ser necessário um treinamento personalizado para os sistemas puramente de software do Google
Primeiras tentativas de treinamento em STPA
- O treinamento inicial começou em 2021 (para 40 engenheiros do Google)
- Uso de exemplos de sistemas físicos, como a queda da Mars Polar Lander → pouca identificação por parte de engenheiros de software
- Ficou claro que eram necessários casos reais aplicados aos sistemas do Google
Ensino do conceito de estrutura de controle
- A estrutura de controle (control structure) é composta por um loop básico de controle-feedback
- O controlador gerencia mudanças de estado → verifica o estado via feedback e decide a próxima ação
- Exemplos de aplicação em ambiente de software
- Ex.: exclusão ou correção de conteúdo inadequado em um banco de dados de conteúdo gerado por usuários
- Se o loop de feedback não for projetado corretamente, podem ocorrer ações de controle incorretas
- Desafios no treinamento
- É difícil ensinar, em tempo limitado, como projetar estruturas de controle realmente úteis
- Como cada sistema de software tem uma estrutura de controle diferente, é difícil fornecer feedback
Estratégia para melhorar o treinamento em STPA
- Ensinar todas as etapas do STPA → apoiar engenheiros para que consigam executar STPA de forma independente
- Uso de casos reais do Google → explicar a teoria e depois aplicá-la em exemplos reais
- Foco em reforçar os caminhos de feedback da estrutura de controle
- Feedback incorreto → ação de controle incorreta → análise de casos que levaram a incidentes
- Falta de feedback para operadores humanos → surgimento de estados de risco
A importância do feedback
- Em um sistema do Google, um feedback incorreto levou, 30 dias depois, a uma ação de controle errada → ocorreu um incidente
- As causas foram feedback incorreto e falta de feedback para operadores humanos
- Com um bom projeto de feedback, o incidente poderia ter sido evitado
- A explosão do foguete Ariane 5 também é um caso de erro de feedback
- O erro ocorreu ao converter dados de ponto flutuante em inteiro
- Erro de feedback → percepção incorreta do estado → erro de direção do foguete e explosão
Diagrama de fluxo de dados vs. estrutura de controle
- Diagrama de fluxo de dados (Dataflow Diagram)
- Mostra como os dados se movem entre componentes de software
- Feedback e estrutura de controle não ficam claros
- Estrutura de controle (Control Structure)
- Mostra ações de controle e feedback → deixa clara a hierarquia de controle
- Facilita identificar problemas de feedback → permite rastrear a causa de problemas em interações complexas do sistema
Efeitos da aplicação de STPA
- Em softwares complexos, reduz trechos potencialmente problemáticos de milhões de linhas de código para algumas centenas de linhas
- Ao transformar ações de controle perigosas em cenários, é possível identificar o código problemático
- Em casos reais, após construir a estrutura de controle, foi possível identificar e corrigir a falta de feedback
Mudança na estratégia de treinamento
- Treinamentos longos → transição para sessões curtas
- Tutoriais de 30 a 60 minutos → incentivam engenheiros interessados a participar de workshops
- Introdução de um modelo de aprendizado autodirigido
- Vídeos curtos + exercícios → incentivam a aplicar STPA em sistemas reais
- Reforço do treinamento para permitir a execução inicial de STPA sem intervenção de especialistas
Estratégia de disseminação do STPA no Google
- Formação de especialistas em STPA → possibilita difundir STPA dentro das equipes
- Sucesso inicial → expansão para outras equipes → aplicação de STPA em toda a organização
- Após o treinamento em STPA, torna-se possível eliminar fatores de risco já na fase de projeto
Também pode ser aplicado em outras empresas
- O STPA é uma ferramenta poderosa para encontrar "riscos ainda não identificados" em sistemas de software complexos
- É possível começar com uma equipe pequena e expandir com a liderança de especialistas em STPA
- O ponto-chave é desenvolver um treinamento em STPA personalizado para a empresa
- Depois de tentativas e ajustes iniciais, é possível corrigir o rumo → no fim, melhorar a estabilidade e a confiabilidade do sistema
1 comentários
Comentários do Hacker News
Houve um caso no Google em que um controlador de software recebeu feedback incorreto e executou uma ação de controle perigosa
A aula de STPA é bem estruturada, e o exemplo do Google ajudou
STPA é um framework de revisão de design para encontrar modos de falha menos óbvios
Há opiniões de que é difícil de entender, mas ainda assim vale a pena conhecer
Se houvesse um caso real em que o STPA resolveu um problema de confiabilidade no Google, isso seria mais convincente
STAMP/STPA funciona bem como modelo e metodologia para sistemas complexos
Depois de colaborar com especialistas do sistema para montar a estrutura de controle, ficou claro de imediato que faltava feedback de C para B
É uma história corporativa exagerada, cheia de buzzwords, tentando fazer ideias antigas parecerem inovadoras
Há comentários dizendo que seria bom se o Google ficasse quieto por um ano inteiro, fazendo apenas um barulho de aspirador de pó