Construção segura
Introdução
A prática de construção segura enfatiza a importância de construir software de forma padronizada, automatizada e utilizando componentes seguros. Isso é alcançado por meio da automação completa do processo de construção, incluindo verificações de segurança automatizadas, como Análise Estática de Código (SAST) e Teste Dinâmico de Aplicações (DAST). Além disso, a prática visa identificar e monitorar as dependências de software, garantindo que sua segurança seja avaliada e que não comprometam a segurança geral da aplicação.
Modelo
O processo de construção é repetível e consistente.
Crie uma definição formal do processo de construção para torná-lo consistente e repetível.
Crie registros com a Lista de Materiais (Bill of Materials) de suas aplicações e realize análises oportunas desses registros.
O processo de construção é otimizado e totalmente integrado ao fluxo de trabalho.
Automatize sua esteira de construção e proteja as ferramentas utilizadas. Adicione verificações de segurança na esteira de construção.
Crie registros com a Lista de Materiais (Bill of Materials) de suas aplicações e realize análises oportunas desses registros.
O processo de construção ajuda a evitar que defeitos conhecidos entrem no ambiente de produção.
Defina verificações de segurança obrigatórias no processo de construção e garanta que a construção de artefatos não conformes falhe.
Analise as dependências utilizadas em busca de problemas de segurança de forma comparável ao seu próprio código.
Como implementar?
Definir um processo de construção consistente:
Documente e defina um processo formal de construção que seja consistente e repetível para todas as aplicações.
Especifique os passos necessários para compilar, testar e empacotar o software, garantindo a qualidade e segurança durante todo o processo.
Automação da esteira de construção:
Automatize a esteira de construção utilizando ferramentas e tecnologias adequadas.
Configure um sistema de integração contínua (CI) para compilar e testar automaticamente o código em cada alteração.
Automatize a execução de verificações de segurança, como Análise Estática de Código (SAST) e Teste Dinâmico de Aplicações (DAST), na esteira de construção.
Integração de segurança na esteira de construção:
Adicione verificações de segurança na esteira de construção para identificar e prevenir vulnerabilidades.
Implemente ferramentas de verificação de segurança automatizadas, como scanners de vulnerabilidade e análise de código, para identificar possíveis falhas de segurança no código-fonte e nas dependências.
Verificações de conformidade obrigatórias:
Defina verificações de segurança obrigatórias no processo de construção e garanta que a construção de artefatos não conformes seja impedida.
Estabeleça critérios de segurança que os artefatos de construção devem atender, como políticas de segurança, práticas recomendadas e padrões específicos da organização.
Registros com a Lista de Materiais (Bill of Materials):
Crie registros com a Lista de Materiais (Bill of Materials - BoM) para cada aplicação, que detalhem todas as dependências e bibliotecas utilizadas.
Realize análises oportunas desses registros para identificar possíveis vulnerabilidades ou problemas de segurança nas dependências utilizadas.
Avaliação e atualização das dependências:
Avalie regularmente as dependências utilizadas nas aplicações em busca de problemas de segurança conhecidos.
Mantenha-se atualizado sobre as atualizações de segurança e corrija prontamente as vulnerabilidades identificadas, atualizando as dependências para versões mais seguras.
Análise de dependências de forma comparável ao código-fonte:
Realize análises de segurança nas dependências de software de forma comparável à análise do código-fonte da aplicação.
Utilize ferramentas de análise de segurança de terceiros para verificar as dependências em busca de vulnerabilidades conhecidas e outras questões de segurança.
Monitoramento contínuo e melhoria:
Estabeleça um processo de monitoramento contínuo da esteira de construção, incluindo verificações de segurança, para garantir a detecção precoce de possíveis falhas ou problemas de segurança.
Realize revisões regulares do processo de construção, incorporando feedback e melhorias com base nas lições aprendidas e nas melhores práticas de segurança.
Last updated