Stack Smashing

Autor: Monica Porter
Erstelldatum: 16 Marsch 2021
Aktualisierungsdatum: 15 Kann 2024
Anonim
Running a Buffer Overflow Attack - Computerphile
Video: Running a Buffer Overflow Attack - Computerphile

Inhalt

Definition - Was bedeutet Stack Smashing?

Stack Smashing ist eine Form der Sicherheitsanfälligkeit, bei der der Stack einer Computeranwendung oder eines Betriebssystems zum Überlaufen gebracht wird. Dies kann dazu führen, dass das Programm / System untergraben wird und abstürzt.

Ein Stapel, eine First-In-Last-Out-Schaltung, ist eine Form eines Puffers, in dem Zwischenergebnisse von Operationen gespeichert sind. Vereinfachen Sie die Stapelverarbeitung, indem Sie mehr Daten in einen Stapel stapeln, als in der Speicherkapazität enthalten sind. Erfahrene Hacker können absichtlich übermäßige Daten in den Stapel einbringen. Die überschüssigen Daten können in anderen Stapelvariablen gespeichert werden, einschließlich der Rücksprungadresse der Funktion. Wenn die Funktion zurückkehrt, springt sie zum schädlichen Code auf dem Stapel, der möglicherweise das gesamte System beschädigt. Die angrenzenden Daten auf dem Stapel sind betroffen und zwingen das Programm zum Absturz.


Eine Einführung in Microsoft Azure und die Microsoft Cloud | In diesem Handbuch erfahren Sie, worum es beim Cloud-Computing geht und wie Microsoft Azure Sie bei der Migration und Ausführung Ihres Unternehmens aus der Cloud unterstützen kann.

Techopedia erklärt Stack Smashing

Wenn das von Stack-Smashing betroffene Programm Daten aus nicht vertrauenswürdigen Netzwerken akzeptiert und mit speziellen Berechtigungen ausgeführt wird, liegt eine Sicherheitslücke vor. Wenn der Puffer Daten enthält, die von einem nicht vertrauenswürdigen Benutzer bereitgestellt wurden, kann der Stapel beschädigt werden, indem ausführbarer Code in das Programm eingefügt wird, wodurch nicht autorisierter Zugriff auf einen Computer erlangt wird. Ein Angreifer kann auch die im Stapel gespeicherten Kontrollflussinformationen überschreiben.

Da das Stack-Smashing zu einer sehr schwerwiegenden Sicherheitslücke geworden ist, werden bestimmte Technologien implementiert, um das Stack-Smashing-Desaster zu überwinden. Durch den Überlaufschutz des Stapelpuffers wird die Organisation der Daten im Stapelrahmen eines Funktionsaufrufs so geändert, dass sie kanarische Werte enthalten. Wenn diese Werte zerstört werden, weist dies darauf hin, dass ein Puffer, der im Speicher davor liegt, übergelaufen ist. Kanarische Werte überwachen Pufferüberläufe und werden zwischen den Steuerdaten und dem Puffer auf dem Stapel abgelegt. Dies stellt sicher, dass ein Pufferüberlauf zuerst den Kanarienvogel beschädigt. Eine fehlgeschlagene Überprüfung der kanarischen Daten weist auf einen Überlauf im Stapel hin. Die drei Kanarischen Typen sind Random, Terminator und Random XOR.

Der Terminator Canary basiert auf der Tatsache, dass der Stapelpufferüberlauf von Zeichenfolgenoperationen abhängt, die an den Terminatoren enden. Zufällige Kanarienvögel werden zufällig aus einem Daemon zum Sammeln von Entropien generiert, wodurch Angreifer daran gehindert werden, Werte zu kennen. Zufällige Kanarien werden bei der Programminitialisierung generiert und in globalen Variablen gespeichert. Zufällige XOR-Kanarien sind zufällige Träger, die unter Verwendung von Steuerdaten XOR-verwürfelt werden. Es ist ähnlich wie zufällige Kanarienvögel, mit der Ausnahme, dass das "Lesen vom Stapel" -Verfahren zum Abrufen des Kanarienvogels komplex ist. Der Hacker benötigt die Kanarienvogel-, Algorithmus- und Steuerdaten, um den ursprünglichen Kanarienvogel herzustellen. Sie schützen vor Angriffen, bei denen Puffer in einer Struktur in Zeiger überlaufen, um den Zeiger so zu ändern, dass er auf einen Teil der Steuerdaten zeigt.