7.5 Desenvolvimento seguro de aplicações: SDL, CLASP. Flashcards
O que é Desenvolvimento Seguro?
Desenvolvimento seguro de software refere-se à adoção de práticas, metodologias e frameworks que minimizam vulnerabilidades durante o ciclo de vida do desenvolvimento de um aplicativo.
Dois frameworks amplamente usados no desenvolvimento seguro são:
1️⃣ SDL (Security Development Lifecycle - Ciclo de Vida de Desenvolvimento Seguro);
2️⃣ CLASP (Comprehensive, Lightweight Application Security Process).
SDL (Security Development Lifecycle - Ciclo de Vida de Desenvolvimento Seguro) o que é?
O SDL, criado pela Microsoft, é um processo que integra segurança em todas as fases do desenvolvimento de software. Ele reduz riscos e vulnerabilidades desde o design até a implementação.
Principais fases do SDL:
Treinamento – Desenvolvedores aprendem boas práticas de segurança.
Definição de Requisitos – Avaliação de riscos e regulamentos de segurança.
Design Seguro – Modelagem de ameaças para identificar vulnerabilidades antes da implementação.
Implementação – Uso de técnicas seguras de codificação, como validação de entrada e criptografia.
Verificação – Testes de segurança, como análise estática e dinâmico do código.
Lançamento – Revisão final de segurança antes do produto ir para produção.
Resposta a Incidentes – Planos para lidar com falhas e vulnerabilidades descobertas após o lançamento.
Benefícios do SDL:
✔ Reduz a chance de falhas de segurança.
✔ Melhora a conformidade com normas como GDPR, ISO 27001.
✔ Minimiza custos de correção de vulnerabilidades após o lançamento.
CLASP (Comprehensive, Lightweight Application Security Process) o que é?
O CLASP (Comprehensive, Lightweight Application Security Process) é uma metodologia de desenvolvimento seguro de software orientada a atividades e papéis, que descreve melhores práticas para projetos novos
ou em andamento.
Principais características do CLASP:
Focado em desenvolvedores, tornando a segurança uma parte natural do desenvolvimento.
Integra segurança de forma modular, ou seja, pode ser adaptado a diferentes metodologias ágeis e tradicionais.
Fornece um conjunto de papéis e responsabilidades para cada membro da equipe.
Principais práticas do CLASP:
✔ Implementação de verificações de segurança desde a fase de requisitos.
✔ Definição de políticas de controle de acesso e criptografia.
✔ Testes contínuos para identificar e corrigir falhas de segurança.
Diferença entre SDL e CLASP no desenvolvimento seguro:
✅ SDL é um processo estruturado, ideal para grandes organizações que precisam de um ciclo de segurança rigoroso.
✅ CLASP é um conjunto de práticas flexível e leve, ideal para equipes de desenvolvimento ágil.
A estrutura do processo é dividida em cinco perspectivas, denominadas Visões CLASP. Cada Visão, por sua vez, é dividida em atividades, que contém os componentes do processo. São as Visões:
- Visão Conceitual;
- Visão de Papéis;
- Visão de Avaliação de Atividade
- Visão de Implementação de Atividade
- Visão de Vulnerabilidades.
Visão CLASP: Conceitual
A Visão Conceitual apresenta uma visão geral de como funciona o
processo CLASP e como seus componentes interagem. São introduzidas as melhores práticas, a interação entre o CLASP e as políticas de segurança, alguns conceitos de segurança e os componentes do
processo.
Visão CLASP: dos Papéis
A Visão de Papéis introduz as responsabilidades básicas de cada
membro do projeto (gerente, arquiteto, especificador de requisitos, projetista, implementador, analista de testes e auditor de segurança) relacionando-os com as atividades propostas, além de especificar quais são os requerimentos básicos para que cada função seja desempenhada.
Visão CLASP: Avaliação de atividades
A Visão de Avaliação de Atividades descreve o propósito de cada
atividade, bem como os responsáveis, contribuidores, a aplicabilidade, o impacto relativo, os riscos em caso de omissão da atividade, a frequência da atividade e sugere uma proximação do valor para homens/hora.
Visão CLASP: Implementação
A Visão de Implementação descreve o conteúdo das 24 atividades de segurança definidas pelo CLASP e identifica os responsáveis pela implementação, bem como as atividades relacionadas.
Visão CLASP: Vulnerabilidades
A Visão de Vulnerabilidades possui um catálogo que descreve 104 tipos de vulnerabilidadades no desenvolvimento de software, divididas em 5 categorias:
- Erros de Tipo e Limites de Tamanho;
- Problemas do Ambiente;
- Erros de Sincronização e Temporização;
- Erros de Protocolo;
- Erros Lógicos em Geral.
No modelo de desenvolvimento SDL, a MICROSOFT criou os princípios de segurança no desenvolvimento conhecido como SD3 + C:
a) Secure by Design (Seguro por desenho);
b) Secure by Default (Seguro por padrão);
c) Secure by Deployment (Seguro na Implantação);
d) Communications (Comunicações).
SDC3 + C (SDL): Secure by Design (Seguro por Desenho)
A arquitetura, o design e a implementação do software devem ser executados de forma a protegê-lo e proteger as informações que ele processa, além de resistir a ataques.
SDC3 + C (SDL): Secure by Default (Seguro por Padrão)
Na prática, o software não atingirá uma segurança perfeita; portanto,
os designers devem considerar a possibilidade de haver falhas de segurança. Para minimizar os danos que ocorrem quando invasores miram nessas falhas restantes, o estado padrão do software deve aumentar a segurança.
Por exemplo, o software deve ser executado com o privilégio mínimo
necessário, e os serviços e os recursos que não sejam amplamente necessários devem ser desabilitados por padrão ou ficar acessíveis apenas para uma pequena parte dos usuários.
SDC3 + C (SDL): Secure by Deployment (Seguro na Implantação)
O software deve conter ferramentas e orientação que ajudem os usuários finais e/ou administradores a usá-lo com segurança. Além disso, a implantação das atualizações deve ser fácil.
SDC3 + C (SDL): Communications (Comunicações)
Os desenvolvedores de software devem estar preparados para a
descoberta de vulnerabilidades do produto e devem comunicar-se de
maneira aberta e responsável com os usuários finais e/ou com os
administradores para ajudá-los a tomar medidas de proteção (como
instalar patches ou implantar soluções alternativas).