Datum: | 07.09.2014 |
Moderatoren: | marcus, rens, simon |
Download: | devradio271.mp3(ohne Musik) devradio271.ogg(ohne Musik) |
Sendungsinhalte:
Bitte schickt per Fan-Kommentar Shownotes ein! radio (at) ulm.ccc.de
kurze Einschätzung des Weltgeschehens gefolgt von allerlei rant über schlechte Programme. Mit Ausblick auf Compiler, Hochsprachen und nur am Rande Erwähnung von Test-Suiten.
Shownotes:
Blogartikel LLVM über spezifizierten und unspezifizierten Typüberlauf
http://blog.llvm.org/2011/05/what-every-c-programmer-should-know.html
airgap
Danke an Clemens fürs Feedback. Der Kommentar war, dass ein amd64 die ersten sechs Pointer- oder Integerparameter per CPU-Register übergeben würde. Wie funktioniert der Angriff?
In der Sendung beziehen wir uns auf i386. Für das amd64-System würde ein Aufruf mit mehr als 6 Parametern taugen. Für spezielle return-to-libc-Dinge befragen wir nochmal unseren Experten (tm).
Allgemein gesagt: Jede Abwehrmaßnahme hat einen korrespondierenden Angriff, der diese Maßnahme aushebelt.
Sobald die Returnadresse auf dem Stack liegt, lässt sie sich per Buffer-Overflow überschreiben. Calling Conventions sind compilerspezifisch. Wikipedia x68 calling conventions SystemV ABI" In erster Lesung klingt es, als würde der Return-Pointer immer auf den Stack geschrieben. Wir beraten uns nochmal.