Ein Stack Canary triggert einen Fehler wenn er überschrieben wird. Doch wie funktioniert das alles nun?

Nachdem man einen Bufferoverflow gemacht hat, möchte man den EIP (Instruction Pointer) überschreiben. Der Trick ist nun, bevor man den Instruction Point überschreibt, einen Platz darüber den Stack Canary einzufügen. Falls jemand nun versucht den Stack Canary zu überschreiben, wird ein Error getriggered. 

Stack Canary an sich ist ein guter Mechanismus, jedoch kann es sein, dass sie nicht randomized sind, sondern es ist ein statischer Wert, was durch eine Leakage exploitet werden kann.

Wenn der Wert zufällig ist, muss er in der Runtime geleaked und verwendet werden. Wenn der Angriff nun gelingen soll, muss es zwei Angriffe geben, einerseits den Bufferoverflow und anderseits den Format-String. Man überschreibt dabei so lange alles, bis man beim Stack Canary ist und überschreibt diesen dann, bevor man ihn auf den Ursprungswert zurücksetzt. 

Stack Canary ist an sich ein guter Schutz, jedoch sollte man ihn mit anderen Mechanismen nutzen.


Senior Security Consultant/Penetration Tester | CEO

Home Seo Blog

Unsere Partner

Teile uns auf den sozialen Medien

Cookie Warnung

Akzeptieren Für statistische Zwecke und um bestmögliche Funktionalität zu bieten, speichert diese Website Cookies auf Ihrem Gerät. Das Speichern von Cookies kann in den Browser-Einstellungen deaktiviert werden. Wenn Sie die Website weiter nutzen, stimmen Sie der Verwendung von Cookies zu.