A importância de definir o código seguro
Os desenvolvedores que criam o software, aplicativos e programas que impulsionam os negócios digitais para se tornarem a força vital de muitas organizações. A maioria das empresas modernas não seria capaz de funcionar (com lucro), sem aplicativos e programas competitivos, ou sem acesso 24 horas a seus sites e outras infraestruturas.
E, no entanto, esses mesmos pontos de contato também costumam ser o gateway que hackers e outros usuários nefastos empregam para roubar informações, lançar ataques e trampolim para outras atividades criminosas, como fraude e ransomware.
Ataques bem-sucedidos continuam prevalecendo, mesmo que os gastos com segurança cibernética na maioria das organizações estejam aumentando, e mesmo que movimentos como o DevSecOps estejam transferindo a segurança para os desenvolvedores que são a força vital dos negócios de hoje. Os desenvolvedores entendem a importância da segurança e desejam principalmente implantar código seguro e de qualidade, mas as vulnerabilidades de software continuam sendo exploradas.
Por quê?
Pelo 2º ano, o Secure Code Warrior realizou a pesquisa The state of developer-driven security, 2022 em parceria com a Evans Data Corp em dezembro de 2021, pesquisando 1.200 desenvolvedores globalmente para entender as habilidades, percepções e comportamentos quando se trata de práticas de codificação seguras e seu impacto e relevância percebida no ciclo de vida de desenvolvimento de software (SDLC).
A pesquisa identificou a ausência de uma definição clara ou um entendimento sobre o que constitui um código seguro. Acontece que há uma grande discrepância entre o que os desenvolvedores pensam que é código seguro e o que realmente é código seguro.
Não foi surpresa que escrever código de qualidade fosse uma prioridade para a comunidade de desenvolvimento. Mas quando questionados especificamente sobre código seguro, apenas 29% disseram que a prática ativa de escrever código livre de vulnerabilidades foi priorizada. Em vez disso, os desenvolvedores associaram práticas menos seguras e muito menos confiáveis à criação de código seguro. Por exemplo, examinar o código existente (37%) e confiar em bibliotecas de origem externa para código seguro (37%) foram as principais práticas que os desenvolvedores associaram à codificação segura. Reutilizar código que já era considerado seguro (32%) foi outra escolha popular. A prática ativa de escrever código livre de vulnerabilidades ficou em 6º lugar com 29% afirmando que esta era uma prática de topo na criação de código seguro.
Quando questionados, a falta de tempo e a falta de uma abordagem coesa da gestão foram apontadas como as principais barreiras para criar um código seguro.
A confiança no código existente é um dos fatores que aumenta o risco de o software ser distribuído com vulnerabilidades exploráveis. Lidar com essa desconexão do que constitui código seguro é necessário para que os desenvolvedores criem um código de qualidade que também seja seguro.
O que as organizações podem fazer para corrigir a situação?
Uma das principais mensagens da pesquisa foi que a comunidade de desenvolvedores como um todo está repleta de profissionais que se preocupam com o que fazem. Escrever código de alta qualidade era extremamente importante para eles como um grupo. O problema é que, em muitos casos, as organizações para as quais trabalham não identificaram quais práticas recomendadas são necessárias para produzir código seguro e não colocaram recursos suficientes em treinamento ou permitiram que seus desenvolvedores atingissem essas metas.
Na verdade, a maioria dos desenvolvedores afirmou que suas organizações nem sequer tinham uma definição clara do que constitui um código seguro. Um dos exemplos mais preocupantes disso foi que 28% dos entrevistados da pesquisa disseram que sua organização considerava o código seguro se nenhuma violação fosse relatada depois que um aplicativo ou programa fosse implantado em um ambiente de produção ou disponibilizado ao público.
Provavelmente não é preciso dizer, mas no complexo cenário de ameaças de hoje, simplesmente esperar por bons resultados sem realmente trabalhar para eles provavelmente produzirá resultados previsíveis, ainda mais violações de segurança.
Felizmente, esta é uma situação em que é relativamente fácil pelo menos começar a corrigir o problema e, em seguida, começar a trabalhar em direção ao objetivo de código seguro. O primeiro e sem dúvida o mais importante passo é que as organizações definam o que consideram ser um código seguro. E tudo o que está fora dessa definição precisa ser considerado não seguro.
A codificação segura deve ser definida como a prática de desenvolvedores habilidosos escrevendo código livre de vulnerabilidades, desde o início do SDLC. Somente uma vez que essa prática é definida, a comunidade de desenvolvedores pode trabalhar em direção a esse objetivo.
Tornando o objetivo do código seguro uma realidade
Uma vez estabelecida a definição de código seguro, as organizações precisam estar prontas para apoiar esses esforços e seus desenvolvedores que cumprirão o objetivo de implementar práticas de código totalmente seguro. Esse apoio é fundamental, sem ele a definição de código seguro dentro de sua organização, embora importante, será pouco mais que um tigre de papel. As práticas de codificação seguras devem ser endossadas pela administração e receber a devida consideração, autoridade e orçamento para ter sucesso.
Isso pode exigir novas metas de benchmarking para desenvolvedores, que tradicionalmente são medidos pela velocidade de sua codificação. Na verdade, 37% dos desenvolvedores na pesquisa relataram deixar vulnerabilidades conhecidas em seu código porque prazos apertados não permitiriam o tempo necessário para corrigi-las ou codificar corretamente desde o início.
A princípio, isso pode significar aumentar os prazos para dar aos desenvolvedores mais tempo para codificar adequadamente, embora esse gasto de tempo no início do processo de codificação provavelmente seja compensado mais tarde devido à menor necessidade de revisões de programas, patches e trabalho de pós-implantação. Eliminar a possibilidade de uma violação implantada pode acabar economizando centenas de horas e possivelmente milhões em perda de receita, multas e custos de limpeza.
Os desenvolvedores também precisarão de treinamento prático e relevante, especialmente no que se refere a vulnerabilidades específicas que provavelmente encontrarão, e ajudarão a aprender como identificar e corrigir vulnerabilidades de código. Isso é especialmente verdadeiro à luz de 36% dos entrevistados que disseram que queriam remover vulnerabilidades de seu código, mas não tinham as habilidades ou o conhecimento para fazê-lo.
Quer ler mais informações obtidas na pesquisa da Secure Code Warriors com 1.200 desenvolvedores em todo o mundo? Você pode acessá-los aqui: State of Developer Driven Security 2022.
Este artigo é uma tradução de: https://thehackernews.com/2022/05/the-importance-of-defining-secure-code.html (Autor: )