Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo define os principais imperativos para integrar a segurança às práticas de desenvolvimento como parte da disciplina de Segurança de Desenvolvimento.
As organizações modernas dependem do rápido desenvolvimento de software para oferecer inovação, atender aos requisitos de negócios, manter vantagem competitiva e responder às mudanças nas necessidades de negócios. Embora o DevOps habilite essa agilidade, ele também apresenta novos riscos de segurança à medida que os processos de código, infraestrutura e implantação evoluem mais rapidamente.
Para adotar com segurança as práticas do DevOps, as organizações devem integrar a segurança à estratégia de desenvolvimento, aos fluxos de trabalho e aos processos de entrega e adotar práticas de DevSecOps que protejam a entrega de aplicativos em todo o ciclo de vida.
Resultados
A adoção dos imperativos de planejamento neste artigo permite que as organizações:
- Reduza a introdução de vulnerabilidades de segurança em cargas de trabalho de produção.
- Aprimore a consistência das decisões de preparação para a produção.
- Reduza o atrito entre desenvolvimento, segurança e operações.
- Melhorar a resiliência de aplicativos e a infraestrutura de entrega.
- Mantenha a velocidade de inovação ao mesmo tempo em que gerencia a segurança e o risco operacional.
Reconhecer o escopo da segurança de desenvolvimento
A segurança de desenvolvimento se aplica a mais do que o código do aplicativo. As organizações devem definir requisitos e atividades de segurança em todos os componentes envolvidos no projeto, desenvolvimento, implantação e operação das cargas de trabalho.
As organizações devem considerar os riscos de segurança em:
- Lógica e serviços de aplicativo
- Implantações de IaC (automação de infraestrutura/infraestrutura como código)
- Pipelines de criação e liberação
- Configurações de implantação e scripts operacionais
- Ambientes de desenvolvedor e identidades de serviço
- Dependências de terceiros e componentes da cadeia de suprimentos
Reconhecer esse escopo 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 do aplicativo no final do ciclo de vida.
Leve em conta os principais riscos
As organizações devem incluir explicitamente os seguintes riscos ao definir requisitos:
| Área de risco | Impacto de exemplo |
|---|---|
| Falhas de design de aplicativo | Acesso não autorizado, exposição de dados, falhas lógicas persistentes. |
| Comprometimento de pipeline | Injeção de código malicioso em artefatos de compilação. |
| Comprometimento do ambiente do desenvolvedor | Roubo de credenciais ou elevação de privilégios. |
| Uso indevido de ferramentas de DevOps | Alterações não autorizadas por meio de automação ou integrações. |
| Vulnerabilidades da cadeia de suprimentos | Introdução de dependências maliciosas ou vulneráveis. |
Esses riscos informam diretamente os imperativos de planejamento definidos neste artigo e devem ser abordados por meio de decisões de design, processo e governança.
Esses riscos afetam as cargas de trabalho do aplicativo e a infraestrutura usada para compilá-las e operá-las.
Integrar a segurança ao ciclo de vida/estratégia
A segurança deve ser incorporada à estratégia de desenvolvimento, não aplicada como um controle pós-lançamento.
As organizações devem definir requisitos de segurança junto com os requisitos funcionais e alinhá-los com:
- Estratégia de desenvolvimento
- Planejamento arquitetônico
- Fluxos de trabalho de entrega
- Modelos de suporte operacional
Os resultados de segurança são responsabilidades compartilhadas de propriedade das funções de engenharia e operações, com suporte de especialistas em segurança.
A segurança viabiliza a inovação; não é uma barreira imposta após a entrega.
As organizações devem adotar uma abordagem contínua do SDL (Secure Development Lifecycle) que inclua:
- Definindo os requisitos de segurança no início do design.
- Alinhando requisitos de segurança com arquitetura e implementação.
- Integrando a segurança com a automação de infraestrutura.
- Executando a validação de segurança contínua.
- Acompanhando as descobertas de segurança.
- Priorizando a correção.
- Usar os achados de segurança nas decisões sobre a prontidão para lançamento, para que os problemas de segurança sejam tratados como impedimentos para a entrada em produção quando necessário.
A segurança deve ser continuamente avaliada e aprimorada à medida que as arquiteturas de aplicativos, os riscos e os modelos de entrega evoluem.
Definir critérios mínimos de viabilidade de produção
As cargas de trabalho devem atender aos critérios mínimos de viabilidade antes da liberação para produção. Esses critérios definem se uma carga de trabalho está segura, em conformidade e operacionalmente pronta para uso em produção em três dimensões:
- Desenvolvimento (desenvolvimento): os stakeholders de desenvolvimento definem requisitos funcionais mínimos necessários para atender às necessidades de negócios e ao valor do cliente/usuário.
- Segurança (sec): As partes interessadas de segurança definem os requisitos mínimos necessários para atender às obrigações regulatórias, sustentar a postura de segurança organizacional e apoiar a detecção e a resposta a ameaças ativas.
- Operações (ops): as partes interessadas de operações definem requisitos mínimos de desempenho, qualidade e sustentação necessários para que a carga de trabalho opere de forma confiável em ambientes de produção.
Critérios de viabilidade de produção:
- Verifique se as cargas de trabalho são seguras para implantar e operar em ambientes de produção.
- Servem como insumos para decisões de liberação e devem ser aplicados de forma consistente em todos os fluxos de trabalho de desenvolvimento.
Os critérios de viabilidade de produção evoluem com base nas alterações para:
- Modelos de entrega de aplicativo.
- Condições de ameaça.
- Tolerância a riscos organizacionais.
- Requisitos de conformidade.
Integrar a segurança aos fluxos de trabalho de desenvolvimento
A segurança deve ser inserida diretamente nos processos de desenvolvimento e entrega. As organizações devem:
- Defina os requisitos de segurança nos fluxos de trabalho de desenvolvimento.
- Integrar atividades de segurança em:
- Processos de design
- Pipelines de build
- Fluxos de trabalho de implantação (CI/CD)
- Implementar mecanismos de validação de segurança, como:
- Análise de código
- Validação de dependência
- Verificações de configuração
As descobertas de segurança devem ser tratadas da mesma forma que os defeitos de produção e incorporadas às decisões de liberação.
A validação de segurança deve ocorrer continuamente por meio da entrega, não apenas nos pontos de verificação de versão.
Balancear e harmonizar requisitos
As organizações devem definir como o desenvolvimento, a segurança e os requisitos operacionais são equilibrados nas decisões de entrega de software. As cargas de trabalho de produção devem atender aos requisitos nas seguintes áreas:
- Funcionalidade de negócios.
- Resiliência de segurança.
- Velocidade de inovação.
- Confiabilidade operacional e desempenho.
As organizações devem definir objetivos de entrega compartilhados e métricas de desempenho que:
- Alinhe-se aos objetivos de desempenho e entrega compartilhados em desenvolvimento, segurança e operações.
- Evite a dominação por um único domínio.
- Priorize os resultados com base em:
- Tolerância a riscos organizacionais.
- Obrigações regulatórias.
- Responsabilidade comercial.
O equilíbrio deve se adaptar à medida que as condições de ameaça evoluem, os modelos de entrega mudam e as prioridades organizacionais mudam.
Estabelecer a responsabilidade compartilhada
O DevSecOps eficaz requer a propriedade compartilhada entre as equipes de desenvolvimento, segurança e operações com o objetivo de:
- Alinhando a propriedade dos critérios de viabilidade da produção.
- Alinhando os objetivos de entrega entre disciplinas.
- Reduzindo silos e atritos prejudiciais que criam brechas de segurança, atrasos na entrega e instabilidade operacional.
Aplicar salvaguardas de segurança orientadas por políticas
Os guardrails controlados por políticas devem impor controles sem introduzir atrito excessivo. Os guardrails devem incluir:
- Requisitos de identidade e acesso.
- Padrões de configuração e conformidade.
- Controles de implantação e liberação.
Os guardrails devem ser:
- Integrado aos fundamentos da plataforma (por exemplo, landing zones).
- Inserido em fluxos de trabalho de desenvolvimento/implantação.
- Aplicada automaticamente quando possível.
Essa abordagem garante que os requisitos de segurança sejam aplicados consistentemente, mantendo a velocidade de entrega.
Para equilibrar segurança e velocidade na inovação, avalie a adoção usando proteções orientadas por políticas.
Manter e melhorar
A segurança não permanece eficaz como um conjunto estático de controles e deve evoluir ao longo do tempo.
As organizações devem avaliar e atualizar continuamente as práticas de segurança de desenvolvimento em resposta às alterações em:
- Condições de ameaça e comportamento do invasor.
- Arquiteturas de aplicativos e modelos de entrega.
- Obrigações regulatórias.
- Tolerância a riscos organizacionais.
- Critérios de viabilidade de produção.
- Processos de entrega de desenvolvimento.
- Práticas de governança de segurança.
As práticas de segurança devem evoluir junto com os sistemas protegidos por eles.
Técnicas de alinhamento
As equipes devem se alinhar a:
- Definir metas comuns: os líderes de desenvolvimento, segurança e operações devem definir de forma colaborativa objetivos de entrega e métricas de desempenho para entrega de carga de trabalho, para dar suporte a um planejamento de versão consistente.
- Impedir o domínio de decisão de domínio único: as decisões de entrega devem levar em conta os requisitos de desenvolvimento, segurança e operacional para evitar desequilíbrios que possam afetar negativamente a confiabilidade, a conformidade ou a funcionalidade de negócios da carga de trabalho.
- Priorize a melhoria contínua em relação aos critérios de versão estática: as práticas de segurança de desenvolvimento devem ser refinadas iterativamente ao longo do tempo à medida que os modelos de entrega de aplicativos, as condições de ameaça e as prioridades organizacionais evoluem.
-
Estabelecer um contexto compartilhado de entrega entre as partes interessadas: equipes de desenvolvimento, segurança e operações devem manter um entendimento compartilhado de:
- Urgência comercial e prazos de entrega
- Condições de ameaça relevantes e exposição ao risco
- Requisitos de disponibilidade e suporte operacionais
- Monitorar o atrito de entrega introduzido pelos requisitos de segurança: os requisitos de segurança podem introduzir atrito de entrega. Os líderes devem avaliar se esse atrito contribui para a redução de risco (por exemplo, habilitando a identificação anterior de vulnerabilidades) ou atrasa desnecessariamente a entrega da carga de trabalho sem melhorar materialmente a resiliência da produção.
- Incorpore a segurança de desenvolvimento ao planejamento e à alocação de recursos: os requisitos de segurança para cargas de trabalho de aplicativo devem ser incorporados ao planejamento de desenvolvimento e à alocação de recursos, juntamente com a funcionalidade e os requisitos de suporte operacional.
- Definir objetivos de desempenho de entrega compartilhada: as métricas de desempenho e êxito para cargas de trabalho de aplicativo devem refletir os resultados de desenvolvimento, segurança e entrega operacional.
Alinhar fluxos de trabalho com requisitos de segurança
A segurança deve ser operacionalizada por meio de fluxos de trabalho de desenvolvimento. As organizações devem definir e alinhar fluxos de trabalho para:
- Atividades de design de arquitetura.
- Processos de construção e implantação.
- Fluxos de trabalho de acompanhamento e correção de problemas.
As descobertas de segurança devem ser:
- Priorizado e acompanhado.
- Gerenciado juntamente com defeitos de produção.
- Incorporado em decisões de preparação para lançamento.
O alinhamento do fluxo de trabalho garante que os requisitos de segurança sejam constantemente aplicados durante a entrega.
Próximas Etapas
Saiba mais sobre desenvolvimento usando princípios de Confiança Zero