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.
À medida que você cria ou moderniza uma disciplina de Segurança de Desenvolvimento, este artigo descreve como a integração de segurança em práticas de desenvolvimento permite a mudança de operações de desenvolvedor (DevOps) para DevSecOps (operações de segurança do desenvolvedor) e ajuda a proteger a entrega de aplicativos.
As organizações modernas dependem do rápido desenvolvimento de software para oferecer inovação, responder às mudanças nos requisitos de negócios e manter vantagem competitiva. O DevOps permite essa agilidade por meio da integração e entrega contínuas. No entanto, o aumento da velocidade também introduz novos riscos de segurança.
Os ciclos de lançamento contínuos reduzem o tempo entre decisões de design e implantação de produção, aumentando a probabilidade de que as fraquezas sejam introduzidas em ambientes de produção, incluindo:
- Pontos fracos do design do aplicativo
- Dependências vulneráveis
- Erros de configuração
- Falhas de automação de infraestrutura
- Má gestão de segredos ou higiene.
Risco de DevOps
Os ambientes de DevOps modernos expandem a superfície de ataque em sistemas de desenvolvimento, pipeline e produção. Ferramentas de DevOps, como repositórios de código-fonte, pipelines e sistemas de automação, são destinos de alto valor para invasores.
Se o código mal-intencionado for introduzido antecipadamente, ele poderá passar por verificações de segurança existentes e alcançar sistemas de produção.
Os objetivos de ataque comuns incluem:
- Injetando código malicioso em artefatos de build.
- Comprometendo identidades de desenvolvedor ou contas de serviço.
- Acessando ou exfiltrando dados de produção.
Os invasores geralmente direcionam aplicativos personalizados e ambientes de desenvolvimento para obter acesso a:
- Dados confidenciais da organização ou do cliente.
- Lógica de negócios proprietária e propriedade intelectual.
- Infraestrutura de produção via sistemas de desenvolvimento comprometidos.
- Clientes downstream por meio de comprometimento da cadeia de fornecimento de software.
Os possíveis riscos de segurança são resumidos no diagrama a seguir:
Risco de aplicação e desenvolvimento
As cargas de trabalho do aplicativo podem ser comprometidas por meio de pontos fracos introduzidos durante o desenvolvimento ou por meio do comprometimento da infraestrutura usada para compilá-las e implantá-las.
| Risco | Target (destino) | Resultado potencial |
|---|---|---|
| Design/implementação do aplicativo | Problemas de segurança introduzidos durante o design ou desenvolvimento podem expor cargas de trabalho a técnicas de ataque, como: - Validação de entrada inadequada – Autenticação insegura ou lógica de autorização - Criptografia fraca ou implementada incorretamente – Exposição de dados confidenciais por meio da lógica do aplicativo |
Essas fraquezas podem permitir que os invasores: – Acessar ou manipular dados do aplicativo – Executar operações não autorizadas – Manter o acesso persistente por meio de falhas lógicas implantadas. |
| Infraestrutura/automação de desenvolvimento | Os ataques podem ser direcionados: - Repositórios de código-fonte – Criar pipelines – Automação de implantação - Modelos de IaC (infraestrutura como código) - Desenvolver terminais ou identidades de serviço |
O comprometimento pode permitir que os invasores: - Inserir código malicioso em artefatos de compilação – Modificar configurações de implantação – Manter o acesso persistente por meio de falha lógica implantada – Obter credenciais ou segredos usados em ambientes de produção. |
| Cadeia de fornecimento de software de desenvolvimento | Os aplicativos geralmente dependem de: – Bibliotecas de terceiros – Pacotes de software livre - Imagens de contêiner – Serviços de plataforma |
Vulnerabilidades ou código mal-intencionado introduzido por meio dessas dependências podem afetar: – Cargas de trabalho de produção organizacional – Ambientes de cliente ou parceiro |
A integração da segurança aos processos de desenvolvimento reduz a probabilidade de que esses riscos se propaguem para a versão de produção.
Mudando para a esquerda
Shift left é uma abordagem de engenharia de segurança que integra práticas de segurança mais cedo no ciclo de vida do desenvolvimento.
Em vez de validar a segurança no final do processo, as organizações a inserem em:
- Visualizando
- Design
- Desenvolvimento
- Operations
Isso reduz o custo de correção e a exposição ao risco.
Para dar suporte a essa abordagem, as organizações devem"
- Use práticas recomendadas estruturadas, como o SDL (Ciclo de Vida de Desenvolvimento de Segurança) no início do processo, em vez de atraso quando os problemas se tornam caros e difíceis de corrigir.
- Para manter essa abordagem, integre a governança, o risco e a conformidade (GRC) à estratégia de desenvolvimento.
O que é o DevSecOps?
O DevSecOps fornece a abordagem Shift Left estendendo o DevOps e inserindo segurança em cada estágio do ciclo de vida de desenvolvimento de software – desde o início da ideia até o design, o desenvolvimento e as operações.
Em abordagens de desenvolvimento tradicionais, a validação de segurança era geralmente executada como um portão de qualidade final antes do lançamento. Isso criou atrasos, aumentou o custo de correção e permitiu que as vulnerabilidades persistissem até o final do ciclo de vida.
O DevSecOps desloca a segurança anteriormente e a inseri continuamente em processos operacionais e de desenvolvimento.
O DevSecOps reduz o atrito entre equipes de desenvolvimento, operações e segurança, alinhando-as em torno de metas compartilhadas de velocidade de inovação, confiabilidade e resiliência de segurança e permitindo que as equipes resolvam os problemas mais importantes de forma precoce e contínua.
O DevSecOps integra a segurança em:
- Design arquitetônico
- Implementação de aplicativo
- Automação de infraestrutura
- Implantação e processos operacionais
Benefícios
O DevSecOps permite que as equipes de desenvolvimento, segurança e operações:
- Identificar e corrigir problemas mais cedo no ciclo de vida.
- Reduza a exposição na produção.
- Mantenha a velocidade de entrega ao gerenciar o risco.
A segurança torna-se parte de como o software é criado e entregue, em vez de um controle aplicado após a entrega.
Ciclo de vida de inovação segura
A inovação normalmente progride por duas fases do ciclo de vida:
| Etapa | Detalhes |
|---|---|
| Incubação de ideias | Uma funcionalidade é projetada, implementada e validada para uso inicial de produção. Começa com uma nova ideia |
| Versão inicial | Uma primeira versão de produção atende aos critérios mínimos do produto para uso seguro do produto. - Desenvolvimento: a funcionalidade atende aos requisitos mínimos de negócios. - Segurança: as funcionalidades atendem aos requisitos de conformidade, segurança e segurança regulatórias para uso em produção. - Operações: A funcionalidade atende aos requisitos mínimos de qualidade, desempenho e suporte para ser um sistema de produção. |
Após a versão inicial, o desenvolvimento se torna iterativo à medida que as cargas de trabalho evoluem com:
- Alterando a tolerância a riscos
- Requisitos e maturidade do aplicativo
- Obrigações regulatórias
- Condições de ameaça
Integrar a segurança ao desenvolvimento
Abordagens de desenvolvimento tradicionais validam a segurança no final do ciclo de vida, como uma porta final antes da versão após a conclusão do design e da implementação. Em ambientes de desenvolvimento modernos, o atraso na validação aumenta:
- Complexidade da vulnerabilidade
- Custo de correção
- Atrasos operacionais e interrupções
- Maior exposição de risco à exploração ativa
O DevSecOps integra a segurança continuamente em todo o desenvolvimento e operações, para resolver problemas anteriormente, reduzir riscos e melhorar a consistência.
Práticas-chave
A segurança deve ser inserida em processos de desenvolvimento existentes para ser eficaz, escalonável e sustentável. Ele deve ser integrado diretamente em como os aplicativos são projetados, criados, implantados e operados, não implementados em um fluxo de trabalho separado ou paralelo. Recomendações:
- Mapear fluxos de trabalho de ponta a ponta, da ideia ao desenvolvimento, à implantação e às operações contínuas.
- Definindo funções, ferramentas e responsabilidades claras para a segurança em cada estágio do ciclo de vida.
- Estabelecendo caminhos de correção consistentes para vulnerabilidades, defeitos e problemas de design.
Personalize as práticas de segurança com base no risco de carga de trabalho. Aplicativos comercialmente críticos exigem maior rigor, enquanto cenários de menor risco podem seguir abordagens simplificadas.
No mínimo, verifique se você:
- Identifique os estágios, as pessoas e as tecnologias envolvidas em seu ciclo de vida de desenvolvimento.
- Defina como as atividades de segurança se integram a cada estágio, em vez de tratá-las como pontos de verificação separados.
- Estabeleça processos para lidar com as principais alterações e correções de rotina em todo o ciclo de vida.
Automatizar a segurança no desenvolvimento e na implantação
A automação é essencial para impor a segurança de forma consistente e em escala entre o desenvolvimento e as operações.
- Integre controles de segurança e ferramentas diretamente em pipelines de CI/CD.
- Automatize atividades-chave, como modelagem de ameaças, verificação de código, validação e imposição de política.
- Use IaC (Infraestrutura como Código) para habilitar implantações repetíveis e seguras.
Bases de plataforma, como zonas de destino Azure, podem dar suporte a essa abordagem
As bases de plataforma, como Azure zonas de destino podem dar suporte a essa abordagem fornecendo padrões padronizados para segurança, governança e integração de DevOps.
Resultados esperados
As organizações que mudam de DevOps para DevSecOps podem:
- Reduzir a probabilidade de vulnerabilidades serem introduzidas em cargas de trabalho de produção
- Limitar a capacidade dos invasores de explorar a infraestrutura de desenvolvimento ou a automação
- Melhorar a resiliência de aplicativos para técnicas de ataque em evolução
- Suporte a requisitos de conformidade regulatória e organizacional
- Sustentar a velocidade de inovação sem aumentar o risco operacional ou de segurança
Dicas sobre como navegar no percurso
A adoção do DevSecOps requer alterações organizacionais e culturais.
Mudanças de educação e cultura
Estas são etapas iniciais críticas. A equipe que você tem deve desenvolver novas habilidades e adotar novas perspectivas para entender o modelo DevSecOps.
A mudança de educação e cultura leva tempo, foco, patrocínio executivo e acompanhamento regular para ajudar os indivíduos a entender completamente e ver o valor da mudança.
Mudar culturas e habilidades drasticamente às vezes pode explorar a identidade profissional dos indivíduos, criando potencial para forte resistência. É fundamental entender e expressar o porquê, o quê e como a mudança para cada indivíduo e sua situação.
A alteração leva tempo
Você só pode se mover tão rápido quanto sua equipe pode se adaptar às implicações de fazer as coisas de novas maneiras. As equipes devem continuar desempenhando suas tarefas atuais enquanto se transformam.
É fundamental priorizar cuidadosamente o que é mais importante e gerenciar as expectativas de quão rápida essa mudança pode acontecer.
Adotar uma abordagem gradual, em que os elementos mais importantes e fundamentais vêm primeiro, beneficia sua organização.
Alteração introduz atrito (temporário)
Todas as novas tecnologias, metodologias e outras alterações introduzem atrito e confusão. É fundamental se concentrar em atritos saudáveis que impulsionam o pensamento crítico para reduzir o risco, evitando atritos não íntegros que retardam processos com benefícios limitados ou redução de risco.
Recursos limitados
Um desafio que as organizações geralmente enfrentam no início é encontrar talentos e habilidades no desenvolvimento de aplicativos e segurança.
À medida que as organizações começam a colaborar com mais eficiência, elas podem encontrar talentos ocultos, como desenvolvedores com mentalidade de segurança ou profissionais de segurança com experiência em desenvolvimento.
Turnos contínuos
Os aplicativos estão mudando rapidamente. Além dos novos recursos, a definição técnica e a composição de um aplicativo estão mudando fundamentalmente com a introdução de tecnologias como nuvem, sem servidor e IA.
Essa mudança está alterando as práticas de desenvolvimento, a segurança do aplicativo e até capacita os nondevelopers a criar aplicativos.
Considere um modelo SRE
Algumas implementações de DevSecOps combinam operações e responsabilidades de segurança em uma função de SRE (engenheiro de confiabilidade do site ).
Embora esse modelo possa funcionar, geralmente é uma mudança extrema da cultura e das práticas empresariais existentes.
Se você estiver considerando um modelo SRE, recomendamos que você comece inserindo segurança no DevOps usando ganhos rápidos práticos e progresso incremental descritos nesta orientação para garantir que você esteja recebendo um bom retorno sobre o investimento (ROI) e atendendo às necessidades imediatas.
Isso adiciona incrementalmente responsabilidades de segurança à sua equipe de operações e desenvolvimento, o que aproxima as equipes de um estado final de SRE.
Próximas Etapas
Saiba mais sobre as práticas recomendadas de desenvolvimento seguro.