Speicherleck
Was ist Speicherleck?
SpeicherleckDefekt, bei dem nicht mehr benötigter Speicher nicht an den Allokator zurückgegeben wird, sodass Ressourcen erschöpft werden und das System Leistung verliert oder abstürzt.
Ein Speicherleck (CWE-401) entsteht, wenn ein Programm Speicher allokiert und alle Referenzen darauf verliert, ohne ihn freizugeben. Mit der Zeit wächst das Working Set, die Performance sinkt, Swap wird strapaziert, und schließlich beendet das OS den Prozess oder weist neue Arbeit ab. Die meisten Lecks sind Zuverlässigkeitsprobleme; sie können jedoch zu Sicherheitsfragen werden: Lang laufende Dienste mit angreifergesteuerten Triggerpunkten werden zu DoS-Verstärkern. Lecks umfassen auch nicht freigegebene Kernel-Objekte, Filedeskriptoren, Sockets oder GPU-Ressourcen. Abwehr: Profiling (Valgrind, ASan/LSan, heaptrack), Besitzdisziplin (RAII, Smart Pointers), kontinuierliche Lasttests und GC-Sprachen. Ein „Memory Leak" im kryptografischen Sinn (Aufdecken von Speicherinhalt) ist eher eine Informationsoffenlegung.
● Beispiele
- 01
Langlaufender Webserver, dessen Per-Request-Allokationen nie freigegeben werden.
- 02
Kernel-Modul, das skb-Puffer nicht freigibt und Systemspeicher verbraucht.
● Häufige Fragen
Was ist Speicherleck?
Defekt, bei dem nicht mehr benötigter Speicher nicht an den Allokator zurückgegeben wird, sodass Ressourcen erschöpft werden und das System Leistung verliert oder abstürzt. Es gehört zur Kategorie Schwachstellen der Cybersicherheit.
Was bedeutet Speicherleck?
Defekt, bei dem nicht mehr benötigter Speicher nicht an den Allokator zurückgegeben wird, sodass Ressourcen erschöpft werden und das System Leistung verliert oder abstürzt.
Wie schützt man sich gegen Speicherleck?
Schutzmaßnahmen gegen Speicherleck kombinieren typischerweise technische Kontrollen und operative Praktiken, wie in der Definition oben beschrieben.
Welche anderen Bezeichnungen gibt es für Speicherleck?
Übliche alternative Bezeichnungen: Ressourcenleck.