A gestão de segurança é um processo que padroniza as melhores práticas de segurança em uma variedade de produtos e/ou aplicativos.
Os clientes exigem produtos seguros prontos para uso e, portanto, a segurança deve ser uma prioridade lembrada por todos no desenvolvimento de sistemas. Mas, sem uma abordagem padrão de gestão de segurança, é quase impossível atender às expectativas dos clientes.
A gestão de segurança é um processo. Se você observar os muitos padrões de segurança existentes nos setores, verá que a maioria inclui as mesmas fases e atividades básicas de segurança. Eles podem ter nomes diferentes para cada peça, mas todos seguem aproximadamente o mesmo processo.
Aqui está um guia essencial para colocar a segurança no centro do seu desenvolvimento de sistemas!
A importância da gestão de segurança no desenvolvimento
Na sua forma mais simples, a gestão de segurança é um processo que padroniza as melhores práticas de segurança em uma variedade de produtos e / ou aplicativos. Ela captura atividades de segurança padrão do setor, empacotando-as para que possam ser facilmente implementadas.
A falta de uma abordagem padrão para proteger produtos causa problemas. Por um lado, as vulnerabilidades são desenfreadas nos produtos enviados. A triagem e a resposta necessárias para lidar com isso são os principais sumidouros de recursos. Como resultado, os desenvolvedores passam muito tempo consertando o código que escreveram no passado e não se concentrando o suficiente no futuro.
O segundo problema é que os desenvolvedores tendem a repetir os mesmos erros de segurança, sempre esperando uma resposta diferente (que é a definição de insanidade). A terceira questão é que os problemas são encontrados na liberação ou após a implantação, além do tempo razoável em que os problemas podem ser atenuados de maneira barata.
Por fim, sem um padrão de segurança, os clientes não têm garantia de que um determinado produto é seguro. Um único produto considerado para compra pode ser um dos bons, ou pode ser terrível do ponto de vista da segurança. Sem uma gestão, não há paridade de segurança do produto em toda a empresa. E sem um processo padrão, algumas equipes de produto ignoram completamente a segurança.
Fases do ciclo de vida do desenvolvimento seguro
A gestão de segurança é dividida em fases que estão intimamente ligadas à abordagem em cascata. A abordagem padrão inclui requisitos, design, implementação, teste e liberação. Vamos dar uma olhada em cada uma delas abaixo:
1. A fase de requisitos
Na fase de requisitos, as melhores práticas de segurança são integradas a um produto. Essas práticas podem vir de padrões do setor ou serem baseadas em respostas a problemas que ocorreram no passado.
Existem requisitos para definir os padrões de segurança funcional implementados no produto e incluem todas as atividades da gestão de segurança. Eles são usados como um ponto de execução para garantir que todas as peças sejam consideradas adequadamente.
Os requisitos podem assumir a forma clássica, afirmando que o produto ou aplicativo consegue, pode ou deve fazer algo. Um exemplo pode ser que o produto deve impor um comprimento mínimo de senha de oito caracteres.
No mundo ágil, os requisitos são expressos como histórias de usuários. Essas histórias contêm as mesmas informações que os requisitos, mas a funcionalidade de segurança é escrita da perspectiva do usuário.
2. A fase de design
A fase de design consiste em atividades que ocorrem (espera-se) antes da escrita do código. O design seguro consiste em quantificar uma arquitetura (para um único recurso ou em todo o produto) e, em seguida, procurar problemas. O design seguro pode ocorrer em um documento formal ou em um guardanapo.
Em muitos sistemas, o avião está no ar enquanto as asas estão sendo projetadas, mas a gestão de segurança pode sobreviver por essa loucura. A chave é usar a modelagem de ameaças para refletir sobre como um recurso ou sistema será atacado e, em seguida, mitigar esses futuros ataques no design antes de escrever o código.
3. Implementação ou codificação
A próxima fase é a implementação ou a gravação de código seguro. A gestão de segurança contém algumas coisas que os desenvolvedores devem fazer para garantir que seu código tenha a melhor chance de ser seguro. O processo envolve uma mistura de padrões e ferramentas automatizadas.
Na frente dos padrões, uma gestão sólida define um guia de codificação seguro (como os publicados pela SEI CERT para C, C ++ e Java), que define o que é esperado e fornece orientação para quando os desenvolvedores atingem um problema específico e precisam de informações.
As ferramentas de implementação incluem o teste estático de segurança de aplicativos (SAST) e o software dinâmico de segurança de aplicativos (DAST).
4. A fase de teste
As atividades formais de teste incluem planos de teste funcional de segurança, varredura de vulnerabilidades e testes de penetração. A verificação de vulnerabilidades usa ferramentas padrão do setor para determinar se existem vulnerabilidades no nível do sistema com o aplicativo ou produto.
O teste de penetração envolve testadores tentando contornar as proteções de segurança em um determinado aplicativo e explorá-las. Ele estende o produto e o expõe a cenários de teste que as ferramentas automatizadas não podem replicar.
5. A fase final: liberação
A liberação ocorre quando todas as atividades de segurança são confirmadas na versão final e o software é enviado aos clientes (ou disponibilizado para download). É a interface para clientes externos e pesquisadores de segurança reportarem problemas de segurança em produtos.
Parte da liberação deve incluir uma equipe de resposta a incidentes de segurança do produto que se concentre na triagem e na comunicação de vulnerabilidades do produto, tanto erros individuais quanto aqueles que exigirão colaboração em todo o setor.
A gestão de segurança é uma maneira diferente de criar produtos; coloca a segurança na frente e no centro durante o processo de desenvolvimento de sistemas. Uma fábrica de softwares moderna não pode sobreviver sem levar a sério a segurança, e a maneira de levar a sério é integrar a segurança no seu trabalho diário.
Gostou do nosso artigo? Continue aprendendo! Acompanhe nosso blog e veja muito mais sobre o desenvolvimento de sistemas seguro. Entre em contato conosco e faça um orçamento!