Este capítulo foi desenvolvido para ajudar os desenvolvedores a criar e usar um processo de Gerenciamento de Memória no ciclo de desenvolvimento seguro de software (SSDLC), conforme práticas normativas e recomendações internacionais de segurança, incluindo as normas ISO/IEC e frameworks de segurança como OWASP e NIST. Enfocando as linguagens e frameworks homologados (Angular, React, Vue, Java, Node e Python), este guia aborda práticas e ferramentas para minimizar vulnerabilidades de memória, fortalecer a segurança do código e proteger dados sensíveis ao longo do ciclo de vida do software.
O uso de técnicas de limpeza de memória em geral, podem não ser aplicadas ou executadas automaticamente pela linguagem, IDE ou framework. Em Python (e em várias outras linguagens de alto nível), essas práticas precisam de atenção especial e são responsabilidade direta do desenvolvedor. A maioria dos ambientes de desenvolvimento e frameworks não utiliza essa segurança automaticamente, pois a gestão de memória segura geralmente não faz parte dos requisitos de alto nível dessas linguagens, que dependem do garbage collector para gerenciar a memória.
Em linguagens de alto nível como Python, a memória é gerenciada automaticamente por um garbage collector. Esse processo é eficiente para liberar memória quando objetos não são mais referenciados, mas não inclui medidas para limpar dados sensíveis antes da liberação. Isso significa que informações confidenciais, como senhas e chaves de criptografia, podem permanecer em memória até serem sobrescritas por novos dados ou até o final do ciclo de execução.
Em sistemas de alto requisito de segurança, torna-se fundamental que o desenvolvedor trate e aplique práticas para evitar que dados sensíveis permaneçam na memória por tempo indefinido, especialmente após seu uso.
O principal objetivo deste documento é fornecer uma estrutura de controle de gerenciamento de memória com base nas melhores práticas internacionais e normas de segurança. Pretende-se:
Orientar o uso de ferramentas, frameworks e práticas que apoiem o gerenciamento de memória de forma segura no projeto e código da aplicação.
Público-Alvo
Este capítulo foi desenvolvido pensando nos desenvolvedores de software, arquitetos de segurança, analistas de segurança, equipes de DevOps e gestores de tecnologia que atuam na construção e manutenção de soluções seguras e em conformidade com as normas e legislações de proteção de dados (LGPD e GDPR).
A segurança de memória requer práticas rigorosas para garantir a integridade, confidencialidade e disponibilidade dos dados. As diretrizes são organizadas conforme as fases do SSDLC:
Ferramentas Recomendadas
Frameworks e Bibliotecas
LEVANTAMENTO DE REQUISITOS |
|
Quando deve acontecer
Durante a fase inicial do ciclo de desenvolvimento seguro (SSDLC) e em cada ciclo de atualização de requisitos de segurança. |
Por que deve ser feito
Para identificar riscos e requisitos de segurança associados ao uso de memória, protegendo a aplicação contra vulnerabilidades como buffer overflow, uso pós-liberação de memória (use-after-free), e para garantir conformidade com ISO/IEC e LGPD/GDPR. |
Quem define os Atores e Ações da Etapa de Levantamento de Requisitos
Coordenação de Desenvolvimento – convocar e definir equipes e responsabilidades para cada fase da etapa em execução. Equipe de Desenvolvimento, Analista de Segurança, Arquiteto de Software e Product Owner (PO) colaboram para definir requisitos de segurança e requisitos funcionais que influenciam a gestão de memória. |
Quem define os Atores responsáveis pela Validação dos Requisitos Levantados e Definidos
Coordenação de Desenvolvimento e Coordenação de Segurança Equipe de Segurança da Informação (SI), Quality Assurance (QA) e Revisores de Segurança validam se os requisitos de gerenciamento de memória atendem aos padrões de segurança e conformidade. |
Quais os documentos necessários para a etapa de Levantamento de Requisitos
|
|
O que precisamos definir na Etapa de Levantamento de Requisitos
|
|
O que precisamos entregar para a próxima etapa (Security by Design)
Plano de Requisitos de Memória Segura com foco em Gerenciamento de Memória, contendo:
Responsável pela entrega: Coordenação de Desenvolvimento - Equipe de Segurança e Desenvolvimento, liderada pelo Arquiteto de Segurança. |
|
Práticas recomendadas para o Levantamento de Requisitos
|
|
Ferramentas recomendadas
|
|
Testes e Avaliações Iniciais
|
|
Referências técnicas
|
SECURITY BY DESIGN |
|
Quando deve acontecer Na fase inicial de design da aplicação, após o levantamento de requisitos e antes do desenvolvimento. Este é o momento de estruturar a arquitetura de segurança, com foco em práticas de gerenciamento seguro de memória. |
Por que deve ser feito Para incorporar segurança de memória no design da aplicação, evitando vulnerabilidades como buffer overflow, uso da memória após liberação e vazamento de memória. É fundamental garantir que a arquitetura seja resiliente contra ameaças e em conformidade com LGPD/GDPR e normas ISO/IEC. |
Quem define os Atores e Ações da Etapa de Levantamento de Requisitos Coordenação de Desenvolvimento – convocar e definir equipes e responsabilidades para cada fase da etapa em execução. Arquiteto de Segurança: Define a arquitetura de segurança para o gerenciamento de memória. Equipe de Desenvolvimento: Aplica padrões seguros de alocação e liberação de memória. Analista de Segurança: Realiza revisão para garantir que o design atenda aos requisitos. |
Quem define os Atores responsáveis pela Validação dos Requisitos Levantados e Definidos Coordenação de Desenvolvimento e Coordenação de Segurança Auditores de Segurança: Validam se a arquitetura atende aos padrões de segurança e normas ISO/IEC. Equipe de QA e DevSecOps (Operações e Segurança): Realizam auditorias e testes iniciais para confirmar que os controles de memória foram corretamente implementados. |
Quais os documentos necessários para a etapa de Security by Design
Relatório dos Requisitos do Projeto (Etapa I) - Definido na etapa anterior (levantamento de requisitos)
|
|
O que precisamos definir na Etapa de Security by Design
|
|
O que precisamos entregar para a próxima etapa (Execução Segura)
Relatório de Especificações Técnicas de Segurança de Memória contendo:
Responsável pela entrega: Coordenação de Desenvolvimento - Arquiteto de Segurança e Equipe de Desenvolvimento |
|
Práticas recomendadas para o Security by Design
|
|
Ferramentas recomendadas
|
|
Testes e Avaliações Iniciais
|
|
Referências técnicas
|
EXECUÇÃO SEGURA |
|
Quando deve acontecer
Durante a fase de codificação e execução da aplicação, com monitoramento contínuo ao longo do ciclo de vida da aplicação. Essa etapa deve ser realizada antes dos testes de segurança para assegurar que o código está preparado para proteger a integridade e segurança da memória em execução. |
Por que deve ser feito
Para prevenir vulnerabilidades de memória, como buffer overflow, vazamentos de memória, uso de ponteiros inválidos e manipulação insegura de dados. Assegura que a aplicação seja resiliente contra explorações de falhas de memória e mantenha a conformidade com a LGPD, GDPR e normas ISO. |
Quem define os Atores e Ações da Etapa de Execução Segura Coordenação de Desenvolvimento – convocar e definir equipes e responsabilidades para cada fase da etapa em execução. Equipe de Desenvolvimento: Aplica práticas seguras de uso de memória conforme diretrizes de execução segura. |
Quem define os Atores responsáveis pela Validação Coordenação de Desenvolvimento e Coordenação de Segurança Analistas de Segurança e QA: Realizam auditorias e verificações para confirmar a utilização das ferramentas ou processos de segurança de memória. Equipes de DevSecOps (Operações e Segurança):: Executam avaliações de runtime para monitorar e validar o uso seguro de memória durante a execução. |
Quais os documentos necessários para a etapa de Execução Segura
|
|
O que precisamos definir na Etapa de Execução Segura
|
|
O que precisamos entregar para a próxima etapa (Teste de Segurança)
Relatórios de Execução Segura do Projeto
Responsável pela entrega: Coordenação de Desenvolvimento - Equipe de Desenvolvimento e DevSecOps (Operações e Segurança). |
|
Práticas recomendadas para a Execução Segura
|
|
Ferramentas recomendadas
|
|
Testes e Avaliações Iniciais
|
|
Referências técnicas
|
TESTE DE SEGURANÇA DO PROJETO |
|
Quando deve acontecer Após a fase de execução segura e antes da liberação do ambiente para produção. Deve ser realizado periodicamente em cada ciclo de atualização e antes de qualquer lançamento ou versão nova do software. |
Por que deve ser feito Para identificar e corrigir vulnerabilidades de memória, como buffer overflow, vazamentos de memória, que podem comprometer a segurança da aplicação. Testes de segurança são essenciais para manter a conformidade com ISO, LGPD, GDPR e para garantir a integridade da aplicação. |
Quem define os Atores e Ações da Etapa de Levantamento de Requisitos Coordenação de Desenvolvimento – convocar e definir equipes e responsabilidades para cada fase da etapa em execução. Equipe de QA e Testes de Segurança: Executa os testes de segurança de memória. Analistas de Segurança: Revisam e monitoram resultados dos testes para identificar falhas de segurança de memória. DevSecOps (Operações e Segurança): Implementam correções imediatas e ajustam processos com base nos resultados dos testes. |
Quem define os Atores responsáveis pela Validação dos Requisitos Levantados e Definidos Coordenação de Desenvolvimento e Coordenação de Segurança Equipe de Segurança da Informação: Valida a efetividade dos controles de segurança de memória identificados nos testes. Auditoria de Segurança (SOC): Confirma a aderência dos testes aos padrões de conformidade e melhores práticas de segurança de software. |
Quais os documentos necessários para a etapa de Teste de Segurança
|
|
O que precisamos definir na Etapa de Teste de Segurança
|
|
O que precisamos entregar para a próxima etapa (GERENCIAMENTO) Relatório dos Testes de Segurança, contendo:
Responsáveis pela entrega: Coordenação de Desenvolvimento - Equipe de QA e Segurança, com validação final da Equipe de Gerenciamento de Segurança. |
|
Práticas recomendadas para os Testes de Segurança
|
|
Ferramentas recomendadas – conforme avaliação das equipes por projeto
|
|
Testes e Avaliações Iniciais
|
|
Referências técnicas
|
GERENCIAMENTO |
|
Quando deve acontecer Durante todo o ciclo de vida do software após a conclusão dos testes de segurança, sendo um processo contínuo que envolve o gerenciamento de vulnerabilidades e a aplicação de correções e melhorias de segurança para o gerenciamento de memória. |
Por que deve ser feito Para garantir que os controles de segurança de memória permaneçam eficazes ao longo do ciclo de vida da aplicação, minimizando vulnerabilidades e assegurando conformidade com LGPD/GDPR e normas ISO/IEC. Esta etapa garante que a aplicação continue segura e resiliente contra novas ameaças de memória. |
Quem define os Atores e Ações da Etapa de Levantamento de Requisitos Coordenação de Desenvolvimento – convocar e definir equipes e responsabilidades para cada fase da etapa em execução. Gerente de Segurança: Supervisiona a aplicação dos processos de gerenciamento de memória. Equipe de DevSecOps (Operações e Segurança): Aplica atualizações e patches de segurança. Analista de Segurança: Avalia continuamente os processos de gerenciamento de memória e realiza auditorias de conformidade. |
Quem define os Atores responsáveis pela Validação dos Requisitos Levantados e Definidos Coordenação de Desenvolvimento e Coordenação de Segurança Auditoria de Segurança (SOC): Realiza auditorias para garantir que os controles e processos de gerenciamento de memória estejam de acordo com as normas de segurança e conformidade. Gerente de Segurança e Compliance: Valida o alinhamento com normas ISO, LGPD e GDPR. |
Quais os documentos necessários para a etapa de GERENCIAMENTO
|
|
O que precisamos definir na Etapa de GERENCIAMENTO
|
|
O que precisamos entregar para a próxima etapa (MONITORAMENTO)
Responsável pela entrega: Coordenação de Desenvolvimento - Equipe de Segurança da Informação e DevSecOps, com validação do Gerente de Segurança e Compliance. |
|
Práticas recomendadas para o GERENCIAMENTO
|
|
Ferramentas recomendadas
|
|
Testes e Avaliações Iniciais
|
|
Referências técnicas
|
MONITORAMENTO DE SEGURANÇA |
|
Quando deve acontecer O monitoramento deve ocorrer continuamente durante a execução da aplicação, após a fase de gerenciamento e durante todo o ciclo de vida do software. A análise contínua ajuda a identificar e mitigar problemas de memória em tempo real, garantindo uma operação segura e em conformidade com as normas de segurança. |
Por que deve ser feito Para detectar e prevenir problemas de segurança relacionados à memória, como vazamentos, uso excessivo e acesso indevido, que podem levar a ataques ou degradação de desempenho. O monitoramento é fundamental para garantir que a aplicação esteja em conformidade com LGPD, GDPR, ISO/IEC e outras regulamentações. |
Quem define os Atores e Ações da Etapa de Levantamento de Requisitos Coordenação de Desenvolvimento – convocar e definir equipes e responsabilidades para cada fase da etapa em execução. DevSecOps e Equipe de Operações e Infraestrutura: Configuram e mantêm as ferramentas de monitoramento e alertas de segurança. Equipe de Segurança: Monitora logs e eventos de segurança de memória, revisando indicadores e atuando sobre alertas. Analista de Qualidade: Avalia o impacto de memória no desempenho. |
Quem define os Atores responsáveis pela Validação dos Requisitos Levantados e Definidos Coordenação de Desenvolvimento e Coordenação de Segurança Auditoria de Segurança: Realiza revisões regulares para garantir que o monitoramento de memória está em conformidade com as normas de segurança. Gerente de Segurança: Valida a adequação dos controles e a integridade do monitoramento em relação às diretrizes ISO/IEC e regulamentações de privacidade. |
Quais os documentos necessários para a etapa de Teste de Segurança
|
|
O que precisamos definir na Etapa de MONITORAMENTO
|
|
O que precisamos entregar
Responsáveis pela entrega: Equipes envolvidas nas estruturas de monitoramento do ambiente, como as Equipes de Infraestrutura e SOC (equipes que detectam as possíveis falhas e repassam para a equipe de desenvolvimento aplicar as correções). |
|
Práticas recomendadas para o MONITORAMENTO
|
|
Ferramentas recomendadas
|
|
Testes e Avaliações Iniciais
|
|
Referências técnicas
|
PROTEÇÃO DE DADOS PESSOAIS |
|
Quando deve acontecer Durante a fase de design e execução em ambiente de homologação, sendo revisado constantemente em todas as fases de atualização e manutenção. Essa proteção deve ser incorporada nas etapas iniciais e revisitada antes de cada lançamento, para assegurar que dados pessoais estejam seguros e em conformidade com LGPD e GDPR. |
Por que deve ser feito Para evitar exposição de dados pessoais e garantir que o uso e armazenamento de informações pessoais em memória estejam protegidos contra acessos não autorizados, vazamentos ou corrupção. A conformidade com a LGPD e GDPR exige segurança rigorosa na manipulação e proteção dos dados pessoais dos usuários. |
Quem define os Atores e Ações da Etapa de Levantamento de Requisitos Coordenação de Desenvolvimento – convocar e definir equipes e responsabilidades para cada fase da etapa em execução. Data Protection Officer (DPO): Define requisitos de proteção de dados pessoais. Equipe de Desenvolvimento e Segurança: Implementa práticas de proteção de dados na memória e configura controles de acesso. DevSecOps: Executa auditorias para verificar segurança de dados pessoais. |
Quem define os Atores responsáveis pela Validação dos Requisitos Levantados e Definidos Coordenação de Desenvolvimento e Coordenação de Segurança Equipe de Segurança e Auditoria de Privacidade: Valida a conformidade com LGPD, GDPR e políticas internas de proteção de dados. DPO e Compliance: Confirmam que as práticas de proteção e gerenciamento de dados pessoais seguem as diretrizes regulamentares e atendem aos padrões ISO/IEC. |
Quais os documentos necessários para a etapa de PROTEÇÃO DE DADOS
|
|
O que precisamos definir na Etapa de PROTEÇÃO DE DADOS
|
|
O que precisamos entregar na etapa de PROTEÇÃO DE DADOS
Responsável pela entrega: Coordenação de Desenvolvimento e Segurança - DPO e Equipe de Segurança da Informação, com validação do Gerente de Segurança. |
|
Práticas recomendadas para os Testes de Segurança
|
|
Ferramentas recomendadas
|
|
Testes e Avaliações Iniciais
|
|
Referências técnicas
|
O gerenciamento de memória no projeto de software é uma prática fundamental para evitar vulnerabilidades que possam comprometer a segurança da aplicação e os dados dos usuários. Aplicar boas práticas de gerenciamento de memória estabelece conformidade com as normas de segurança e privacidade (ISO/IEC 27001, GDPR, LGPD), proporcionam resiliência ao software contra possíveis ataques e previnem falhas. Este documento deve ser atualizado regularmente, conforme novas práticas e ferramentas surgirem.