NIST apresenta Framework para Desenvolvimento Seguro de Software

Texto traduzido e adaptado de “NIST Introduces Framework for Secure Software Development” escrito por Hope Goslin

O NIST Cybersecurity publicou no dia 23 de abril um white paper descrevendo as práticas de desenvolvimento de software, conhecidas coletivamente como um framework de desenvolvimento de software seguro (SSDF), que pode ser implementada no ciclo de vida de desenvolvimento de software (SDLC) para garantir a segurança de aplicativos. As práticas descritas são baseadas em padrões e diretrizes pré-estabelecidas, além de documentos sobre práticas de desenvolvimento de software.

A NIST Cybersecurity declara que, se implementadas adequadamente, as práticas do SSDF devem “ajudar os desenvolvedores de software a reduzir o número de vulnerabilidades nos softwares lançados, mitigar o potencial impacto da exploração de vulnerabilidades não detectadas ou não corrigidas e abordar as principais causas das vulnerabilidades para impedir futuras ameaças. recorrências “.

Algumas das principais tarefas descritas na estrutura incluem:

Fornecer treinamento para codificação segura

A maioria dos desenvolvedores não são treinados formalmente para escrever código seguro . Se você dedicar um tempo para treinar desenvolvedores e quaisquer outros indivíduos com responsabilidades que contribuam para o desenvolvimento seguro, eles poderão escrever um código seguro desde o início. Se o código é seguro desde o início da fase de desenvolvimento, isso faz com que o retrabalho não exista ou seja mínimo e acelera o tempo de implantação.

Para garantir um treinamento bem-sucedido em práticas seguras de código, adapte o treinamento a funções específicas, documente os resultados desejados e revise os planos de treinamento periodicamente.

Automatizar e integrar teste de seguranças

Ao aproveitar os métodos de teste automático em vez de usar um processo manual, você pode melhorar a consistência, a precisão e a abrangência. Para código legível por humanos, como código fonte, o NIST Cybersecurity recomenda o uso de uma “ ferramenta de análise estática para verificar automaticamente o código em busca de vulnerabilidades e conformidade com os padrões de codificação segura da organização”. A ferramenta de análise estática deve ser usada para “corrigir práticas de software inseguras documentadas e verificadas continuamente, à medida que o código legível por humanos é verificado no repositório de códigos”.

Para código executável – binários, executados diretamente por código e código fonte executado diretamente – o NIST Cybersecurity recomenda a integração de “testes dinâmicos de vulnerabilidades no conjunto de testes automatizados do projeto”. E, se houver recursos disponíveis, “incorpore testes de penetração para simular como um invasor pode tentar comprometer o software em cenários de alto risco”.

Depois de selecionar os testes de segurança do aplicativo, eles deverão ser integrados aos fluxos de trabalho e processos existentes dos desenvolvedores. O NIST sugere “configurar a cadeia de ferramentas para executar análises e testes automatizados de código regularmente”. E, como os testes produzirão uma longa lista de vulnerabilidades e falhas, é necessário implementar um processo para avaliar, priorizar e remediar as falhas. Quanto mais você espera para corrigir falhas, mais os ciberataques precisam explorar o aplicativo.

Utilizar open-source como forma de segurança

O código-fonte aberto (open-source) e todos os outros códigos de terceiros ainda são suscetíveis a vulnerabilidades e falhas. Comece verificando se existem falhas publicamente conhecidas nos módulos de software que o fornecedor não conseguiu corrigir. Em seguida, verifique se o módulo está sendo mantido ativamente para novas vulnerabilidades. Se não estiver sendo mantido ativamente, determine um plano de ação para testar o código e “use os resultados dos serviços comerciais para verificar os módulos e serviços”.

Você pode conferir mais a respeito de codificação segura no white paper da NIST clicando aqui.