Утечка памяти
Что такое Утечка памяти?
Утечка памятиДефект, при котором уже не нужная память не возвращается аллокатору, постепенно исчерпывая ресурсы и снижая производительность системы вплоть до её отказа.
Утечка памяти (CWE-401) возникает, когда программа выделяет память и теряет все ссылки на неё, не освобождая. Со временем рабочий набор процесса растёт, производительность падает, swap начинает «трэшить», и в итоге ОС завершает процесс или перестаёт принимать работу. Большинство утечек — вопрос надёжности, но они могут стать проблемой безопасности: долгоживущие сервисы с управляемыми атакующим триггерами становятся усилителями DoS. Утечки касаются не только кучи, но и нераскрытых объектов ядра, дескрипторов, сокетов или GPU-ресурсов. Защита — профилирование (Valgrind, ASan/LSan, heaptrack), дисциплина владения (RAII, smart pointers), постоянные нагрузочные тесты и языковая сборка мусора. «Утечкой памяти» в криптографическом смысле (раскрытие содержимого памяти) точнее называть утечкой информации.
● Примеры
- 01
Долгоживущий веб-сервер, у которого выделения «на запрос» никогда не освобождаются.
- 02
Модуль ядра, забывающий освобождать skb-буферы и истощающий память системы.
● Частые вопросы
Что такое Утечка памяти?
Дефект, при котором уже не нужная память не возвращается аллокатору, постепенно исчерпывая ресурсы и снижая производительность системы вплоть до её отказа. Относится к категории Уязвимости в кибербезопасности.
Что означает Утечка памяти?
Дефект, при котором уже не нужная память не возвращается аллокатору, постепенно исчерпывая ресурсы и снижая производительность системы вплоть до её отказа.
Как защититься от Утечка памяти?
Защита от Утечка памяти обычно сочетает технические меры и операционные практики, как описано в определении выше.
Какие есть другие названия Утечка памяти?
Распространённые альтернативные названия: Утечка ресурсов.