Segurança de Aplicação

Design segundo SAMM: Requisitos de Segurança em Segurança de Aplicações

As aplicações estão sempre em desenvolvimento, com recursos sendo implementados e atualizados constantemente. Nesse sentido, os requisitos de segurança são necessários para garantir que as propriedades de sua aplicação estejam seguras.

Imagine o seguinte cenário: sua aplicação foi criada para fazer apenas uma consulta ao banco de dados e, por meio de um ataque, ocorreu um vazamento de informações sensíveis. Mas por causa de uma falha, gerou um prejuízo para o negócio, problemas com o setor regulador, como a ANPD (Autoridade Nacional de Proteção de Dados) e danos à reputação da empresa.

Nesse artigo, vamos falar sobre requisitos de segurança em AppSec, como implementá-los e a importância deles para implementar processos de segurança logo no início do ciclo de desenvolvimento.

Algumas questões fundamentais

Com todos os representantes responsáveis pela criação da aplicação, podemos iniciar com algumas perguntas fundamentais para entender o negócio. Cada aplicação terá uma funcionalidade diferente. Sendo assim, não existe uma padrão. No entanto, algumas perguntas podem te guiar neste processo:

  • Poderemos testar todos os requisitos no final da aplicação?
  • Os dados fornecidos pelo usuário para o banco de dados e os logs serão verificados?
  • Podemos conferir que todos os requisitos de segurança estão sendo abordados da mesma maneira, garantindo que sejam aplicados de forma consistente em todos os níveis?
  • Os requisitos foram compreendidos, de forma que o desenvolvedor possa implementá-los e testá-los, ou alguém poderia interpretar de alguma forma diferente?

Requisitos não são vulnerabilidades

Cabe aqui lembrar que os requisitos de segurança não são vulnerabilidades. São apenas requisitos gerados através do threat modeling, que é é um processo pelo qual ameaças potenciais, como vulnerabilidades estruturais ou a ausência de salvaguardas apropriadas podem ser identificadas e enumeradas; e as mitigações, priorizadas, com o objetivo de mitigar possíveis ataques. 

Na geração de alguns requisitos, a aplicação pode já utilizar alguma proteção ou solução que proteja o seu ambiente. Isso quer dizer que alguns dos requisitos de segurança levantados já são cobertos pelas ferramentas utilizadas.

Os requisitos de segurança para aplicações devem ser pensados nas fases iniciais, quando a funcionalidade da aplicação for definida, garantindo que a lógica de negócios seja segura – envolvendo todos que fazem parte do projeto. Afinal, o correto é pensar na segurança de aplicações como responsabilidade de todos. 

Melhores práticas

É importante pensar nas melhores práticas de frameworks, regulações e legislações vigentes para atender aos requisitos de aplicações. Uma dessas práticas é usar ASVS (Application Security Verification Standard). Trata-se de um padrão desenvolvido pela OWASP que contempla uma lista de requisitos e controles de segurança de aplicações a fim de garantir que os controles tenham sido implementados durante o ciclo de desenvolvimento, como base para classificação em cada nível.

Devemos lembrar ainda sobre todas as funcionalidades do negócio em relação àquela aplicação e as possíveis brechas a ataques que poderiam resultar em prejuízos financeiros e exposição de dados em sua empresa. Ter uma visão ampliada é ir além, isto é, pensar fora do contexto do negócio.

Da mesma forma, os requisitos de segurança de aplicações podem ser vistos por meio da análise de risco da arquitetura. Se uma aplicação usa uma linguagem específica, deverá buscar o conhecimento sobre os padrões de ataques e vulnerabilidades, definindo requisitos para que os desenvolvedores considerem na aplicação.

Cabe mencionar a defesa em profundidade, isto é, além dos requisitos implementados na aplicação. Também devemos pensar em outras camadas de segurança, como firewalls para proteger as redes, e WAFs para proteção das aplicações.

Os requisitos devem focar na necessidade de segurança específica. Por isso, devemos conhecer vulnerabilidades específicas que possam existir em uma aplicação. Ter um conhecimento genérico não é o suficiente –  cada aplicação terá sua necessidade e seus requisitos específicos. 

Trazer a segurança para o início do desenvolvimento é fundamental

Além disso, devemos levar em consideração os fornecedores que fazem parte do contexto de desenvolvimento da aplicação, como, por exemplo, o desenvolvimento terceirizado. Assim como a segurança de bibliotecas de terceiros faz parte do fluxo de cadeias de suprimentos de aplicações.

Os requisitos de segurança são essenciais para evitar falhas ou vulnerabilidades em sua aplicação, ajudando os desenvolvedores a pensar de uma forma mais segura e futuramente evitar erros no código que possam levar a vulnerabilidades.

Trazer a segurança para o começo de tudo é fundamental para termos aplicações mais seguras e com menos riscos para o negócio e, assim, evitar retrabalho.

Nova call to action

Série artigos SAMM:

  1. Governança segundo SAMM: Estratégias e Métricas em Segurança de Aplicações
  2. Governança segundo SAMM: Políticas e Conformidades em Segurança de Aplicações
  3. Governança segundo SAMM:  Educação e Orientação em Segurança de Aplicações
  4. Design segundo SAMM: Modelagem de Ameaças em Segurança de Aplicações
  5. Design segundo SAMM: Requisitos de Segurança em Segurança de Aplicações
  6. Design segundo SAMM: Arquitetura Segura em Segurança de Aplicações
  7. Implementação segundo SAMM: Build Seguro em Segurança de Aplicações
  8. Implementação segundo SAMM: Deploy Seguro em Segurança de Aplicações
  9. Implementação segundo SAMM: Gestão de Defeitos em Segurança de Aplicações
  10. Verificação segundo SAMM: Análise de Arquitetura em Segurança de Aplicações
  11. Verificação segundo SAMM: Testes Orientados a Requisitos em Segurança de Aplicações
  12. Verificação segundo SAMM: Testes de Segurança em Segurança de Aplicações
  13. Operações segundo SAMM: Gestão de Incidentes em Segurança de Aplicações
  14. Operações segundo SAMM: Gestão de Ambientes  em Segurança de Aplicações
  15. Operações segundo SAMM: Gestão Operacional em Segurança de Aplicações
About author

Articles

Experiência em Segurança da Informação focado em AppSec. Graduado em Defesa Cibernética e Pós em Segurança Ofensiva e Inteligência Cibernética. Experiência em Segurança Web, detecção, prevenção e mitigação de vulnerabilidades. Certificado em: Pentest Essentials Certification | Ethical Hacking Essentials Certification | ISO-IEC 27001 Information Security Associate Certification | Cybersecurity Foundation Certification (ISO/IEC 27032) | Computer Forensics Foundation Certification (ISO/IEC 27032) | Cybersecurity Analyst Certification (CCSA) | Cybersecurity Foundation Certification (CSFPC) | Network Security Expert Certification (NSE2) | Professional Scrum Foundation Certification (SFPC) | DevOps Essentials Professional Certificate (DSPC).
Related posts
Segurança de Aplicação

Design segundo SAMM: Modelagem de Ameaças em Segurança de Aplicações

Neste artigo será abordado o tema modelagem de ameaças em segurança de aplicações, segundo o…
Read more
Segurança de Aplicação

Design segundo SAMM - Arquitetura Segura em Segurança de Aplicações

“The security architecture practice focuses on managing architectural risks for the software…
Read more
ProdutoSegurança de Aplicação

AppSec: Integrações com ferramentas CI/CD através da Conviso Platform

Dentro dos times de desenvolvimento, gerenciar resultados em ferramentas de CI/CD, obter…
Read more

Deixe um comentário