Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

Ciclo de Desenvolvimento de Software Seguro (SSDLC) 
 
1. 📑 Requisitos de Segurança 
Esta é a fase crítica onde os objetivos e metas são traduzidos em requisitos 
funcionais e não funcionais. A segurança deve ser integrada aqui (mentalidade de 
"segurança em primeiro lugar"), pois vulnerabilidades introduzidas posteriormente 
são mais custosas para corrigir. 
 Conceito-Chave: Identificar e documentar os requisitos de segurança antes da 
implementação. 
 Exemplos de Requisitos: 
o Autenticação e Controle de Acesso: Especificar como os usuários 
são autenticados e autorizados. 
o Proteção de Dados: Especificar o uso de criptografia para dados 
confidenciais. 
o Registro e Auditoria (Logging): Especificar como a atividade será 
registrada para detectar incidentes. 
o Conformidade: Atender a requisitos regulamentares e legais (ex: 
LGPD). 
 
2. 🏗️ Projeto de Software Seguro (Security by Design) 
Nesta fase, a arquitetura e as especificações técnicas são definidas. O objetivo é 
analisar os riscos e vulnerabilidades e projetar o software de forma a mitigá-los, 
consolidando a segurança no design. 
 Considerações de Segurança: 
o Validação de Entrada: Projetar para validar a entrada de 
usuários/sistemas para evitar a exploração de vulnerabilidades (ex: 
Injeção de SQL, XSS). 
o Controle de Acesso: Definir mecanismos de controle de acesso (ex: 
RBAC). 
o Armazenamento e Transmissão Segura de Dados: Projetar o uso de 
protocolos seguros (ex: HTTPS) e criptografia. 
o Tratamento de Erros e Resiliência: Projetar o software para lidar com 
erros de forma segura, ocultando informações confidenciais do 
usuário final e garantindo o retorno a um estado seguro para 
promover a resiliência. 
 
3. 🔨 Desenvolvimento (Codificação) 
Os desenvolvedores implementam o código, seguindo as práticas de segurança e 
técnicas de codificação seguras definidas nas fases anteriores. 
 Práticas de Codificação: 
o Uso de bibliotecas seguras em vez de codificação de segurança do 
zero. 
o Validação de Entrada Reforçada com limitação de tamanho para 
evitar ataques de Buffer Overflow. 
o Implementação de Tratamento de Erros e Exceções Seguro para 
evitar a exposição de informações. 
 Verificação: 
o Revisão de Código por um profissional diferente. 
o Utilização de Scanners de Código (SAST) para detecção 
automatizada de problemas. 
o É essencial treinar o time de desenvolvimento para manter um 
processo operacional repetitivo de codificação segura. 
 
4. 🧪 Teste 
O teste é um processo contínuo que garante que o software funcione conforme o 
planejado e adhira aos requisitos de segurança, identificando vulnerabilidades antes 
da implantação. 
 Tipos de Teste Importantes: 
o Teste de Segurança: Busca por vulnerabilidades (ex: testes de 
penetração, verificação de vulnerabilidades). 
o Teste de Usabilidade: Garante que o uso inesperado do sistema não 
comprometa a segurança. 
o Teste de Desempenho: Assegura a disponibilidade sob estresse. 
o Software Testing e Quality Assurance (QA): O teste é a execução 
técnica, enquanto o QA é o processo proativo que garante padrões de 
segurança e qualidade em todo o ciclo. 
 
5. 🚀 Implantação e Manutenção 
O software é liberado no ambiente de produção, e a segurança se torna uma 
atividade contínua. 
 Implantação: Configuração segura da infraestrutura que abrigará o sistema, 
com especial atenção à Segurança na Nuvem (Cloud Security) para sistemas 
cloud. 
 Manutenção Contínua: 
o Atualizações e Patches de Segurança: Aplicar patches regularmente. 
o Monitoramento e Resposta a Incidentes: Monitorar o software e 
responder de forma oportuna e eficaz a incidentes de segurança. 
o Backups de Dados e Recuperação de Desastres: Implementar 
medidas para garantir a proteção e a restauração dos dados. 
Este ciclo demonstra que a segurança é uma responsabilidade compartilhada e 
contínua, integrada em todas as etapas do desenvolvimento.

Mais conteúdos dessa disciplina