Was ist ein Stapelpufferüberlauf?

Ein Stack -Pufferüberlauf ist das, was passiert, wenn ein Programm einen Eintrag in den Speicher eines Computers macht, der länger als der zugewiesene Raum ist. Unter bestimmten Umständen kann dies andere Daten im Speicher beschädigen und Probleme beim Ausführen des Computers verursachen. In anderen Fällen kann ein Stapelpufferüberlauf von einer böswilligen Anwendung ausgenutzt werden, um die Kontrolle über andere Teile des Computers zu übernehmen. Eine Version davon, die Call Stack, ist die Liste, mit der ein Computerprogramm die verschiedenen Teile des Programms, die Unterprogramme, die zu einem bestimmten Zeitpunkt betrieben werden. Da der Anrufstack vorübergehend arbeitet und schnell zugegriffen werden muss, befindet sich er im Speicher des Computers und nicht im dauerhaften Speicher wie der Festplatte.

Da moderne Betriebssysteme mehrere Programme gleichzeitig ausgeführt werden können, müssen die Art und Weise, wie Speicher zugewiesen wird, organisieren, einschließlich der Aufruf von Stapeln. Dies geschieht effizient, indem Puffer zugewiesen wird, ein Speicherplatz in dem Speicher, der so ausreichend so aussieht, dass er groß genug ist, um mit dem maximalen Speicherplatz fertig zu werden, der von einem bestimmten Puffer benötigt wird. In den meisten Fällen wird ein Teil des Raums nicht genutzt, sodass er als Puffer zwischen den Daten aus verschiedenen Anwendungen fungiert, sodass der Raum für den Umgang mit Platz plötzlich zusätzlichen Platz benötigt. Eine Möglichkeit, sich zu visualisieren, besteht darin, an eine Bibliothek zu denken, die jedem Fachbereich einen bestimmten Platz bereitgestellt hat, um sicherzustellen, dass ein zusätzlicher Raum zur Verfügung steht, wenn beispielsweise alle Bücher zu einem Thema gleichzeitig in der Bibliothek waren, anstatt dass eine von ihnen ausgecheckt wurde.

Ein Stapelpufferüberlauf tritt auf, wenn ein Programm auf eine Weise aufrufen, die den zugewiesenen Speicherplatz übersteigt. Dies kann versehentlich passieren, uSually durch einen Fehler in einem Programm. Wenn eine Anwendung beispielsweise so konzipiert ist, dass der Benutzer eine Telefonnummer eingeben kann, jedoch keine Begrenzung für die Anzahl der Zeichen hat, die eingegeben werden können, kann ein Hacker möglicherweise das unbegrenzte Feld verwenden, um absichtlich einen Stapelpufferüberlauf zu verursachen. Abhängig von der Funktionsweise des Betriebssystems kann dies dem Hacker ermöglichen, indirekt entweder auf eine andere Anwendung oder auf das Betriebssystem selbst zuzugreifen.

Es gibt mehrere Ansätze, um die Auswirkungen eines Stapelpufferüberlaufs zu mildern. Man wird als Randomisierung des Adressraumlayouts bekannt. Dies ordnet zufällig die wichtigsten Datenbereiche auf dem Computer. Die Idee ist, dass ein Hacker einen Stapelpufferüberlauf verursacht oder ausnutzt, er den Verstoß nicht zuverlässig ausnutzen kann.

ANDERE SPRACHEN

War dieser Artikel hilfreich? Danke für die Rückmeldung Danke für die Rückmeldung

Wie können wir helfen? Wie können wir helfen?