Skip to content

DK19: Der gemeine Buffer Overflow

In der letzten Sendung sprachen wir über Sicherheitsschwankungen bei Software. Dabei kam uns die Idee, einzelne Probleme aufzugreifen und in einer eigenen Sendung zu besprechen. Der neunzehnte Datenkanal macht den Anfang mit Buffer Overflows oder zu deutsch Pufferüberläufen.

Am Anfang der Sendung kamen wir von leichtgewichtigen und simplen Protokollen zur Erschaffung einer besonders kleinen ELF-Datei. Die Brücke zum eigentlichen Thema bildete der Free-Your-Android-Workshop im Krautspace. Wir erklärten den Aufbau des Stapelspeichers (Stacks) und nutzten dieses Bild, um Pufferüberläufe zu erklären. Denn letztlich werden im Speicher Kisten aufeinander gestapelt. In den Kisten lagern nach unserem Bild Blätter. Die werden beschrieben und wenn der Schreiber nicht aufpasst, kleckst die Tinte bzw. er übermalt Blätter. Geschicktes Übermalen bzw. Klecksen legt die Grundlagen für einen erfolgreichen Exploit. Das Bild sollte schön klar machen, wie ein Buffer Overflow funktioniert. Wir schweifen an einigen Stellen immer mal auf diverse C-Funktionen und anderes ab.

Der Schutz vor derartigen Schwachstellen ist im letzen Viertel dran. Wir starten mit Kanarienvögeln und arbeiten uns über ASLR zum NX-Bit. Der Ausflug ist wieder ein wenig technischer. Aber mit dem obigen Erklärungen sollte das gut zu verstehen sein.

Im Rahmen der Sendung sprechen wir über die Datei /proc/self/maps. Unten finden ihr eine Beispielausgabe mit dem Befehl less. Ich habe die Speicheradressen mal in Rot eingefärbt. Das Feld rechts daneben sind die angesprochenen Zugriffsrechte.

00400000-00421000 r-xp 00000000 fe:01 58740                              /bin/less
00620000-00621000 r--p 00020000 fe:01 58740                              /bin/less
00621000-00625000 rw-p 00021000 fe:01 58740                              /bin/less
00625000-0062a000 rw-p 00000000 00:00 0 
01531000-01552000 rw-p 00000000 00:00 0                                  [heap]
7f1d90aa8000-7f1d90c28000 r-xp 00000000 fe:01 60787                      /lib/x86_64-linux-gnu/libc-2.13.so
7f1d90c28000-7f1d90e28000 ---p 00180000 fe:01 60787                      /lib/x86_64-linux-gnu/libc-2.13.so
7f1d90e28000-7f1d90e2c000 r--p 00180000 fe:01 60787                      /lib/x86_64-linux-gnu/libc-2.13.so
7f1d90e2c000-7f1d90e2d000 rw-p 00184000 fe:01 60787                      /lib/x86_64-linux-gnu/libc-2.13.so
7f1d90e2d000-7f1d90e32000 rw-p 00000000 00:00 0 
7f1d90e32000-7f1d90e57000 r-xp 00000000 fe:01 14369                      /lib/x86_64-linux-gnu/libtinfo.so.5.9
7f1d90e57000-7f1d91056000 ---p 00025000 fe:01 14369                      /lib/x86_64-linux-gnu/libtinfo.so.5.9
7f1d91056000-7f1d9105a000 r--p 00024000 fe:01 14369                      /lib/x86_64-linux-gnu/libtinfo.so.5.9
7f1d9105a000-7f1d9105b000 rw-p 00028000 fe:01 14369                      /lib/x86_64-linux-gnu/libtinfo.so.5.9
7f1d9105b000-7f1d9107b000 r-xp 00000000 fe:01 60790                      /lib/x86_64-linux-gnu/ld-2.13.so
7f1d910e8000-7f1d9125f000 r--p 00000000 fe:02 388520                     /usr/lib/locale/locale-archive
7f1d9125f000-7f1d91262000 rw-p 00000000 00:00 0 
7f1d91278000-7f1d9127a000 rw-p 00000000 00:00 0 
7f1d9127a000-7f1d9127b000 r--p 0001f000 fe:01 60790                      /lib/x86_64-linux-gnu/ld-2.13.so
7f1d9127b000-7f1d9127c000 rw-p 00020000 fe:01 60790                      /lib/x86_64-linux-gnu/ld-2.13.so
7f1d9127c000-7f1d9127d000 rw-p 00000000 00:00 0 
7fff5c705000-7fff5c726000 rw-p 00000000 00:00 0                          [stack]
7fff5c7ff000-7fff5c800000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]

Download und Anhören

Musik

Wir waren bei der Sendung so in unser Gespräch vertieft, dass wir keine Musik spielten. Jedoch würde wahrscheinlich das Lied »Buffer Overflow« von Under The Hat ganz gut passen. :-)

Shownotes

Trackbacks

qbi on : qbi via Twitter

Show preview
Zur Nachtbeschallung: Die neue Sendung des @datenkanal über #Pufferüberläufe oder Buffer Overflows: http://t.co/OKvYMjHr6T #ccc #stack #aslr

Qbi's Weblog on : 19. Datenkanal über Buffer Overflows

Show preview
Woher kommen eigentlich Viren, Würmer und andere Schadsoftware? Über welchen Weg brechen Angreifer in Computersysteme ein? In vielen Fällen heißt die Antwort »Buffer Overflow« oder Pufferüberlauf. Jörg und ich sind der Frage nachgegangen, was so ein Buffe

chaosupdates on : chaosupdates via Twitter

Show preview
#Datenkanal 19: Der gemeine Buffer Overflow http://t.co/Gz5q9Xk6aU #ccc

lilithlela on : lilithlela via Twitter

Show preview
RT @chaosupdates: #Datenkanal 19: Der gemeine Buffer Overflow http://t.co/LAPKlko6mS #ccc http://t.co/MdzuYrJ5Hj

IT_Ing on : IT_Ing via Twitter

Show preview
@myen http://t.co/uFaNDryfwW

hoersuppe.de on : PingBack

Unfortunately, the contents of this trackback can not be displayed.

R4spu7in on : R4spu7in via Twitter

Show preview
DK19: Der gemeine Buffer Overflow http://t.co/1tK722O3Oi

freak___out on : freak___out via Twitter

Show preview
RT @R4spu7in: DK19: Der gemeine Buffer Overflow http://t.co/1tK722O3Oi

Datenkanal on : DK20: Chemnitzer Linux-Tage 2013

Show preview
Jörg und Jens waren dieses Jahr wieder zu Besuch bei den Chemnitzer Linux-Tagen. In der Sendung besprechen wir Vorträge, die wir besuchten bzw. die uns gefielen. Im Gegensatz zum letztjährigen Datenkanal haben wir keine Interviews geführt. Download und

krzym on : krzym via Twitter

Show preview
Podcast: Datenkanal http://t.co/yCqMWb3xpo

qbi on : qbi via Twitter

Show preview
RT @krzym: Podcast: Datenkanal http://t.co/yCqMWb3xpo

41i3n8 on : 41i3n8 via Twitter

Show preview
RT @krzym: Podcast: Datenkanal http://t.co/yCqMWb3xpo

Datenkanal on : DK22: Schwachstellen im Web II (OWASP Top Ten)

Show preview
Die Sendung schließt nahtlos an den Vorgänger an. Im Datenkanal 21 sprachen wir hauptsächlich über SQL Injections und Cross-Side-Scripting (XSS). Diesmal wanderten wir grob an der Top Ten des Open Web Application Security Projekts entlang. Zu

Datenkanal on : DK26: Live-Hacking

Show preview
Im Laufe des Jahres sendeten wir verschiedene Beiträge zur IT-Sicherheit. Diese Sendung sollte ein wenig interaktiver verlaufen. Jens installierte dazu auf einem VServer ein Debian GNU/Linux. Dazu kam diverse Serversoftware, wie Apache, MySQL, SSH und and

datenkanal.org on : PingBack

Unfortunately, the contents of this trackback can not be displayed.

datenkanal.org on : PingBack

Unfortunately, the contents of this trackback can not be displayed.

datenkanal.org on : PingBack

Unfortunately, the contents of this trackback can not be displayed.

Comments

Display comments as Linear | Threaded

No comments

Add Comment

Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.
Standard emoticons like :-) and ;-) are converted to images.
E-Mail addresses will not be displayed and will only be used for E-Mail notifications.
BBCode format allowed
Form options
tweetbackcheck