Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este artigo define os principais imperativos para integrar a segurança nas práticas de desenvolvimento como parte da disciplina de Segurança do Desenvolvimento.
As organizações modernas dependem do desenvolvimento rápido de software para promover inovação, satisfazer os requisitos do negócio, manter vantagem competitiva e responder às necessidades empresariais em mudança. Embora o DevOps permita esta agilidade, também introduz novos riscos de segurança à medida que o código, a infraestrutura e os processos de implementação evoluem mais rapidamente.
Para adotar de forma segura práticas DevOps, as organizações devem integrar a segurança na estratégia de desenvolvimento, fluxos de trabalho e processos de entrega, e adotar práticas DevSecOps que assegurem a entrega das aplicações ao longo de todo o ciclo de vida.
resultados
Adotar os imperativos de planeamento neste artigo permite às organizações:
- Reduzir a introdução de vulnerabilidades de segurança em cargas de trabalho de produção.
- Melhorar a consistência das decisões de prontidão para produção.
- Reduzir o atrito entre desenvolvimento, segurança e operações.
- Melhorar a resiliência das aplicações e da infraestrutura de entrega.
- Manter a velocidade da inovação enquanto gere a segurança e o risco operacional.
Reconhecer o âmbito da segurança do desenvolvimento
A segurança do desenvolvimento aplica-se a mais do que ao código de aplicação. As organizações devem definir os requisitos e atividades de segurança em todos os componentes envolvidos no desenho, construção, implementação e operação de cargas de trabalho.
As organizações devem ter em conta os riscos de segurança ao longo de:
- Lógica de aplicação e serviços
- Implementações de automação de infraestrutura/infraestrutura como código (IaC)
- Criar e distribuir pipelines
- Configurações de implantação e criação de scripts operacionais
- Ambientes de programador e identidades de serviço
- Dependências de terceiros e componentes da cadeia de abastecimento
Reconhecer este âmbito completo ajuda as organizações a definir requisitos de segurança que refletem como as cargas de trabalho modernas são entregues, em vez de limitar a segurança à revisão de código da aplicação no final do ciclo de vida.
Tenha em conta os principais riscos
As organizações devem incluir explicitamente os seguintes riscos ao definir requisitos:
| Área de risco | Exemplo de impacto |
|---|---|
| Falhas no design da aplicação | Acesso não autorizado, exposição de dados, falhas lógicas persistentes. |
| Compromisso do oleoduto | Injeção de código malicioso em artefactos de construção. |
| Comprometimento do ambiente de desenvolvimento | Roubo de credenciais ou elevação de privilégios. |
| Uso indevido das ferramentas DevOps | Alterações não autorizadas via automação ou integrações. |
| Vulnerabilidades na cadeia de abastecimento | Introdução de dependências maliciosas ou vulneráveis. |
Estes riscos informam diretamente os imperativos de planeamento definidos neste artigo e devem ser abordados através de decisões de design, processo e governação.
Estes riscos afetam tanto as cargas de trabalho das aplicações como a infraestrutura utilizada para as construir e operar.
Integrar a segurança na estratégia/ciclo de vida
A segurança deve ser incorporada na estratégia de desenvolvimento, não aplicada como um controlo pós-lançamento.
As organizações devem definir os requisitos de segurança juntamente com os requisitos funcionais e alinhá-los com:
- Estratégia de desenvolvimento
- Planeamento arquitetónico
- Fluxos de trabalho de entrega
- Modelos de apoio operacional
Os resultados de segurança são responsabilidades partilhadas entre funções de engenharia e operações, apoiadas por especialistas em segurança.
A segurança permite a inovação; não é uma barreira imposta após a entrega.
As organizações devem adotar uma abordagem contínua de Ciclo de Vida Seguro de Desenvolvimento (SDL) que inclua:
- Definir os requisitos de segurança logo no início do design.
- Alinhar os requisitos de segurança com a arquitetura e implementação.
- Integrar segurança com automação de infraestruturas.
- Realizar validação contínua de segurança.
- Rastreio de descobertas de segurança.
- Priorizar a remediação.
- Aplicar as conclusões de segurança às decisões de prontidão para lançamento, de modo a que as questões de segurança sejam tratadas como bloqueadores de produção quando necessário.
A segurança deve ser continuamente avaliada e melhorada à medida que as arquiteturas de aplicação, os riscos e os modelos de entrega evoluem.
Definir critérios mínimos de viabilidade de produção
As cargas de trabalho devem cumprir critérios mínimos de viabilidade antes do lançamento em produção. Estes critérios definem se uma carga de trabalho é segura, compatível e operacionalmente pronta para uso em produção em três dimensões:
- Desenvolvimento (dev): As partes interessadas em desenvolvimento definem requisitos funcionais mínimos necessários para satisfazer as necessidades de negócio e o valor do cliente/utilizador.
- Segurança (sec): As partes interessadas em segurança definem os requisitos mínimos necessários para cumprir obrigações regulatórias, manter a postura de segurança organizacional e apoiar a deteção e resposta a ameaças ativas.
- Operações (ops): Os intervenientes das operações definem os requisitos mínimos de desempenho, qualidade e capacidade de suporte necessários para que a carga de trabalho funcione de forma fiável em ambientes de produção.
Critérios de viabilidade de produção:
- Garantir que as cargas de trabalho são seguras para implementar e operar em ambientes de produção.
- Funcionam como inputs para decisões de lançamento e devem ser aplicados de forma consistente em todos os fluxos de trabalho de desenvolvimento.
Os critérios de viabilidade de produção evoluem em função de alterações em:
- Modelos de entrega de aplicações.
- Condições de ameaça.
- Tolerância ao risco organizacional.
- Requisitos de conformidade.
Integrar a segurança nos fluxos de trabalho de desenvolvimento
A segurança deve estar integrada diretamente nos processos de desenvolvimento e entrega. As organizações devem:
- Defina os requisitos de segurança dentro dos fluxos de trabalho de desenvolvimento.
- Integrar as atividades de segurança em:
- Processos de conceção
- Construir pipelines
- Fluxos de trabalho de implementação (CI/CD)
- Implementar mecanismos de validação de segurança tais como:
- Análise de código
- Validação de dependência
- Verificações de configuração
As conclusões de segurança devem ser tratadas da mesma forma que defeitos de produção e incorporadas nas decisões de lançamento.
A validação de segurança deve ocorrer continuamente durante a entrega, não apenas nos pontos de verificação de lançamento.
Equilíbrio e harmonização dos requisitos
As organizações devem definir como os requisitos de desenvolvimento, segurança e operacionais são equilibrados nas decisões de entrega de software. As cargas de trabalho de produção devem cumprir requisitos em todo o mundo:
- Funcionalidade empresarial.
- Resiliência de segurança.
- Velocidade da inovação.
- Fiabilidade operacional e desempenho.
As organizações devem definir objetivos de entrega partilhada e métricas de desempenho que:
- Alinhe-se com objetivos partilhados de desempenho e entrega em desenvolvimento, segurança e operações.
- Evite a dominação por um único domínio.
- Priorize os resultados com base em:
- Tolerância ao risco organizacional.
- Obrigações regulatórias.
- Responsabilidade empresarial.
O equilíbrio deve adaptar-se à medida que as condições de ameaça evoluem, os modelos de entrega mudam e as prioridades organizacionais mudam.
Estabelecer responsabilidade partilhada
Um DevSecOps eficaz requer propriedade partilhada entre as equipas de desenvolvimento, segurança e operações, com vista a:
- Alinhar a responsabilização pelos critérios de viabilidade da produção.
- Alinhar os objetivos de entrega entre disciplinas.
- Reduzir silos e atritos pouco saudáveis que criam falhas de segurança, atrasos na entrega e instabilidade operacional.
Aplicar mecanismos de proteção de segurança orientados por políticas
As barreiras de segurança orientadas por políticas devem impor controlos sem introduzir atritos excessivos. Os guarda-corpos devem incluir:
- Requisitos de identidade e acesso.
- Normas de configuração e conformidade.
- Controlos de implementação e lançamento.
As salvaguardas devem ser:
- Integrado nas fundações das plataformas (por exemplo, zonas de aterragem).
- Integrado nos fluxos de trabalho de desenvolvimento/implementação.
- Aplicado automaticamente quando possível.
Esta abordagem assegura que os requisitos de segurança são aplicados de forma consistente, mantendo a velocidade de entrega.
Para uma abordagem equilibrada à segurança e à velocidade da inovação, analise a adoção utilizando mecanismos de controlo definidos por políticas.
Manter e melhorar
A segurança não se mantém eficaz como um conjunto estático de controlos e tem de evoluir ao longo do tempo.
As organizações devem avaliar e atualizar continuamente as práticas de segurança do desenvolvimento em resposta a alterações em:
- Condições de ameaça e comportamento do atacante.
- Arquiteturas de aplicações e modelos de entrega.
- Obrigações regulatórias.
- Tolerância ao risco organizacional.
- Critérios de viabilidade na produção.
- Processos de entrega do desenvolvimento.
- Práticas de governação da segurança.
As práticas de segurança devem evoluir em conjunto com os sistemas que protegem.
Técnicas de alinhamento
As equipas devem estar alinhadas com:
- Defina objetivos comuns: Os líderes de desenvolvimento, segurança e operações devem definir colaborativamente os objetivos de entrega e métricas de desempenho para a entrega da carga de trabalho, de modo a apoiar o planeamento consistente de lançamentos.
- Previna o domínio de decisões de domínio único: As decisões de entrega devem ter em conta os requisitos de desenvolvimento, segurança e operacionais para evitar desequilíbrios que possam afetar negativamente a fiabilidade da carga de trabalho, conformidade ou funcionalidade empresarial.
- Priorize a melhoria contínua em detrimento dos critérios de lançamento estático: As práticas de segurança do desenvolvimento devem ser refinadas iterativamente ao longo do tempo, à medida que os modelos de entrega de aplicações, as condições de ameaça e as prioridades organizacionais evoluem.
-
Estabelecer um contexto de entrega partilhado entre os papéis das partes interessadas: As equipas de desenvolvimento, segurança e operações devem manter uma compreensão partilhada de:
- Urgência empresarial e prazos de entrega
- Condições de ameaça relevantes e exposição ao risco
- Requisitos de disponibilidade operacional e suporte
- Monitorize os atritos no processo de entrega causados pelos requisitos de segurança: Os requisitos de segurança podem causar atritos no processo de entrega. Os líderes devem avaliar se este atrito contribui para a redução de riscos (por exemplo, permitindo a identificação mais precoce de vulnerabilidades) ou atrasa desnecessariamente a entrega da carga de trabalho sem melhorar materialmente a resiliência da produção.
- Incorporar a segurança do desenvolvimento no planeamento e alocação de recursos: Os requisitos de segurança para cargas de trabalho de aplicações devem ser incorporados no planeamento de desenvolvimento e alocação de recursos, juntamente com os requisitos de funcionalidade e suporte operacional.
- Defina objetivos de desempenho de entrega partilhada: Métricas de desempenho e sucesso para cargas de trabalho de aplicações devem refletir os resultados de desenvolvimento, segurança e entrega operacional.
Alinhar os fluxos de trabalho com os requisitos de segurança
A segurança deve ser operacionalizada através de fluxos de trabalho de desenvolvimento. As organizações devem definir e alinhar fluxos de trabalho para:
- Atividades de design arquitetónico.
- Processos de construção e implementação.
- Fluxos de trabalho de monitorização e remediação de problemas.
As conclusões de segurança devem ser:
- Priorizado e monitorizado.
- Gerido em conjunto com defeitos de produção.
- Integrado nas decisões de preparação para o lançamento.
O alinhamento dos fluxos de trabalho garante que os requisitos de segurança são consistentemente aplicados durante toda a entrega.
Passos seguintes
Aprenda sobre desenvolvimento usando princípios Confiança Zero