Fuga de memória
O que é Fuga de memória?
Fuga de memóriaDefeito em que memória já não necessária não é devolvida ao alocador, esgotando progressivamente a memória disponível e degradando ou fazendo cair o sistema.
Uma fuga de memória (CWE-401) ocorre quando um programa aloca memória e perde todas as referências para ela sem a libertar. Com o tempo, o working set do processo cresce, o desempenho cai, o swap fica saturado e o SO acaba por matar o processo ou rejeitar novo trabalho. A maioria das fugas é um problema de fiabilidade, mas pode tornar-se de segurança: serviços de longa duração expostos a gatilhos controlados pelo atacante tornam-se amplificadores de negação de serviço. Incluem-se objetos do kernel, descritores, sockets ou recursos GPU não libertados. Defesas: profiling (Valgrind, ASan/LSan, heaptrack), disciplina de propriedade (RAII, smart pointers), testes de carga contínuos e GC ao nível da linguagem. A "fuga de memória" em sentido criptográfico (revelar o conteúdo da memória) é mais corretamente chamada divulgação de informação.
● Exemplos
- 01
Servidor web de longa duração cujas alocações por pedido nunca são libertadas.
- 02
Módulo do kernel que se esquece de libertar buffers skb e esgota a memória do sistema.
● Perguntas frequentes
O que é Fuga de memória?
Defeito em que memória já não necessária não é devolvida ao alocador, esgotando progressivamente a memória disponível e degradando ou fazendo cair o sistema. Pertence à categoria Vulnerabilidades da cibersegurança.
O que significa Fuga de memória?
Defeito em que memória já não necessária não é devolvida ao alocador, esgotando progressivamente a memória disponível e degradando ou fazendo cair o sistema.
Como se defender contra Fuga de memória?
As defesas contra Fuga de memória costumam combinar controles técnicos e práticas operacionais, conforme detalhado na definição acima.
Quais são outros nomes para Fuga de memória?
Nomes alternativos comuns: Fuga de recursos.