Segurança de Aplicação

Requisitos de Segurança além do ASVS

Atualmente, ter um ciclo de desenvolvimento de software seguro é um ponto fundamental para os desenvolvedores, para garantir que os aplicativos e sistemas possam operar sem interrupções. As práticas de segurança de desenvolvimento seguro são cruciais para minimizar as vulnerabilidades em um aplicativo. Então, vamos entender sobre requisitos de segurança, além do ASVS.

O OWASP (Open Worldwide Application Security Project) desenvolveu um conjunto de padrões de segurança conhecido como ASVS (Application Security Verification Standard) para garantir que as empresas possam agregar mais segurança aos seus aplicativos; no entanto, a cultura de DevSecOps não se resume a estes padrões e incluem algumas outras medidas com a finalidade de assegurar à prevenção dessas ameaças.

A seguir estão algumas práticas de segurança de desenvolvimento seguro que podem ser adotadas para proteger seus aplicativos além dos requisitos propostos no ASVS. Vale lembrar que tais práticas, quando aplicadas desde o início da concepção das aplicações, têm maior eficácia, uma vez que as chances de haver a necessidade de um retrabalho de correção diminuem drasticamente. Essa prática é conhecida como Shift-Left.

Modelagem de Ameaças

A chamada Modelagem de Ameaças, visa agregar a segurança em toda a aplicação, gerando requisitos a partir das ameaças identificadas, que quando não tratadas, geram vulnerabilidades que podem ser exploradas, gerando interrupções, indisponibilidade e até mesmo vazamentos de dados.

Por este motivo, a Modelagem de Ameaças é uma prática fundamental para garantir a segurança no desenvolvimento de software, não só identificando como avaliando  o risco associado a cada uma das ameaças, podendo desta forma, classificá-las de acordo com sua criticidade para o negócio.

A Modelagem de Ameaças deve ser uma prática contínua, devendo ser realizada sempre que houver alterações na aplicação, considerando que novas ameaças podem surgir com o tempo e a cada atualização do software, seus componentes devem ser revalidados, garantido as correções para cada um dos riscos associados.

Pentest ou Teste de Intrusão

Os testes de intrusão são realizados por profissionais especializados, na tentativa de descobrir suas falhas e como explorá-las, através de simulações de ataques cibernéticos. Executar testes de intrusão é uma prática importante para aferir a segurança de um aplicativo, podendo, inclusive, agregar testes relacionados aos requisitos identificados na própria Modelagem de Ameaças, ajudando a identificar vulnerabilidades que não foram detectadas pelos requisitos do ASVS e desta forma, desenvolver medidas adicionais de segurança.

Além disso, através dos pentests, é possível também analisar o comportamento das aplicações mediante ataques reais, ajudando ainda mais na proteção de tais aplicações. Vale ainda ressaltar, que embora sejam feitos de forma orientada, as práticas deste teste podem ser prejudiciais se não forem devidamente planejadas e executadas, efetuando a devida documentação, evitando assim um comprometimento real do ambiente.

Desenvolvimento seguro de software

No entanto, o desenvolvimento seguro de software (S-SDLC) é uma prática importante para garantir que um aplicativo seja seguro e envolve o uso de padrões de codificação segura e a eliminação de vulnerabilidades no código.

O S-SDLC é uma abordagem que visa incorporar a segurança desde o início do processo de desenvolvimento de software. Isso significa que as medidas de segurança são integradas às etapas de planejamento, design, implementação e manutenção do software.

Essa abordagem ajuda a garantir que as falhas de segurança sejam identificadas e corrigidas rapidamente. O desenvolvimento seguro de software envolve a implementação de práticas de segurança, como análise de ameaças e riscos, codificação segura, testes de segurança e treinamento para desenvolvedores.

Além disso, uma das principais vantagens do desenvolvimento seguro de software é que ele pode ajudar a reduzir os custos e o tempo gasto na correção de falhas de segurança. Isso ocorre porque as vulnerabilidades são detectadas e corrigidas mais cedo no processo de desenvolvimento, significando não haver necessidade de corrigir grandes falhas de segurança após o software ter sido implementado.

Gerenciamento de vulnerabilidades

O gerenciamento de vulnerabilidades envolve a identificação, avaliação e priorização das vulnerabilidades encontradas, seguido pela implementação de medidas para corrigi-las.

Uma das etapas mais importantes no gerenciamento de vulnerabilidades é a avaliação e priorização das vulnerabilidades encontradas. Isso envolve a necessidade de uma classificação dos riscos bem como a probabilidade de sua exploração por um atacante, priorizando assim as de maior criticidade.

Entender o ciclo de vida de uma vulnerabilidade é tão importante quanto remediá-la, podendo assim aferir a eficácia dos controles existentes.

Autenticação e controle de acesso

A autenticação e o controle de acesso são um dos pontos mais importantes para proteger os aplicativos contra ameaças de segurança. O conceito de privilégio mínimo garante que os usuários tenham tão somente os acessos necessários para a execução de suas atividades. A autenticação e o controle de acesso são fundamentais para a segurança do software.

A autenticação é geralmente realizada por meio de senhas, tokens de segurança, autenticação multifatorial ou biometria. É importante que o processo de autenticação seja robusto o suficiente para garantir que apenas usuários autorizados possam acessar o software, atribuindo-lhes as funções que correspondem às tarefas autorizadas.

O controle de acesso também pode ser implementado por meio de políticas de acesso baseadas em atributos, que restringem o acesso com base em atributos, como localização geográfica ou horário de acesso.

Assim como os requisitos, os controles de acesso devem ser revisados regularmente, a fim de sanitizar eventuais acessos revogados.

O controle de acessos é um aspecto importante em qualquer sistema de CI/CD (Continuous Integration/Continuous Deployment) para garantir a segurança e proteção dos dados e recursos envolvidos no processo de desenvolvimento e implantação contínua de software

Entendendo requisitos de segurança além do ASVS

Embora o ASVS seja uma importante ferramenta para apoiar na segurança do software, ele não é suficiente para proteger contra todas as ameaças potenciais. O ASVS fornece um conjunto de requisitos que as empresas devem seguir para garantir que seus aplicativos sejam seguros.

No entanto, o ASVS não aborda todas as ameaças de segurança que os aplicativos enfrentam. Para garantir a segurança de desenvolvimento seguro, as empresas devem adotar medidas adicionais além de tais requisitos.

Muitas outras práticas e metodologias podem ser agregadas ao processo de validação, afinal não existe uma receita única e exclusiva, porém é importante que os processos sejam documentados, garantindo a execução de cada uma das etapas previstas no ambiente.

Nova call to action
About author

Articles

Formado em Tecnologia de Segurança da Informação pela FIAP. Atua como Analista de Segurança da Informação, prestando consultoria em diversos ambiente diferentes. Tem uma longa estrada em diferentes segmentos na área TI.
Related posts
Segurança de Aplicação

A Importância da Supply Chain para a Segurança das Aplicações

Para iniciar, quando pensamos em desenvolvimento de software, geralmente associamos essa área a…
Read more
Segurança de Aplicação

O que é WAAP (Web Application and API Protection)

Primeiramente, bem-vindo ao mundo da Proteção de Aplicativos Web e API (WAAP – Web…
Read more
Segurança de Aplicação

Os desafios em segurança de aplicações no uso da inteligência artificial por desenvolvedores

À medida que a inteligência artificial (IA) se torna cada vez mais presente em nosso dia a dia…
Read more

Deixe um comentário