DK19: Der gemeine Buffer Overflow

Published: March 1, 2013, 11 a.m.

b'

In der letzten Sendung sprachen wir \\xfcber 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\\xfcberl\\xe4ufen.

\\n

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

\\n

Der Schutz vor derartigen Schwachstellen ist im letzen Viertel dran. Wir starten mit Kanarienv\\xf6geln und arbeiten uns \\xfcber ASLR zum NX-Bit. Der Ausflug ist wieder ein wenig technischer. Aber mit dem obigen Erkl\\xe4rungen sollte das gut zu verstehen sein.

\\n

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

\\n
00400000-00421000 r-xp 00000000 fe:01 58740                              /bin/less\\n00620000-00621000 r--p 00020000 fe:01 58740                              /bin/less\\n00621000-00625000 rw-p 00021000 fe:01 58740                              /bin/less\\n00625000-0062a000 rw-p 00000000 00:00 0 \\n01531000-01552000 rw-p 00000000 00:00 0                                  [heap]\\n7f1d90aa8000-7f1d90c28000 r-xp 00000000 fe:01 60787                      /lib/x86_64-linux-gnu/libc-2.13.so\\n7f1d90c28000-7f1d90e28000 ---p 00180000 fe:01 60787                      /lib/x86_64-linux-gnu/libc-2.13.so\\n7f1d90e28000-7f1d90e2c000 r--p 00180000 fe:01 60787                      /lib/x86_64-linux-gnu/libc-2.13.so\\n7f1d90e2c000-7f1d90e2d000 rw-p 00184000 fe:01 60787                      /lib/x86_64-linux-gnu/libc-2.13.so\\n7f1d90e2d000-7f1d90e32000 rw-p 00000000 00:00 0 \\n7f1d90e32000-7f1d90e57000 r-xp 00000000 fe:01 14369                      /lib/x86_64-linux-gnu/libtinfo.so.5.9\\n7f1d90e57000-7f1d91056000 ---p 00025000 fe:01 14369                      /lib/x86_64-linux-gnu/libtinfo.so.5.9\\n7f1d91056000-7f1d9105a000 r--p 00024000 fe:01 14369                      /lib/x86_64-linux-gnu/libtinfo.so.5.9\\n7f1d9105a000-7f1d9105b000 rw-p 00028000 fe:01 14369                      /lib/x86_64-linux-gnu/libtinfo.so.5.9\\n7f1d9105b000-7f1d9107b000 r-xp 00000000 fe:01 60790                      /lib/x86_64-linux-gnu/ld-2.13.so\\n7f1d910e8000-7f1d9125f000 r--p 00000000 fe:02 388520                     /usr/lib/locale/locale-archive\\n7f1d9125f000-7f1d91262000 rw-p 00000000 00:00 0 \\n7f1d91278000-7f1d9127a000 rw-p 00000000 00:00 0 \\n7f1d9127a000-7f1d9127b000 r--p 0001f000 fe:01 60790                      /lib/x86_64-linux-gnu/ld-2.13.so\\n7f1d9127b000-7f1d9127c000 rw-p 00020000 fe:01 60790                      /lib/x86_64-linux-gnu/ld-2.13.so\\n7f1d9127c000-7f1d9127d000 rw-p 00000000 00:00 0 \\n7fff5c705000-7fff5c726000 rw-p 00000000 00:00 0                          [stack]\\n7fff5c7ff000-7fff5c800000 r-xp 00000000 00:00 0                          [vdso]\\nffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]\\n
\\n

Download und Anh\\xf6ren

\\n \\n

Musik

\\n

Wir waren bei der Sendung so in unser Gespr\\xe4ch vertieft, dass wir keine Musik spielten. Jedoch w\\xfcrde wahrscheinlich das Lied \\xbbBuffer Overflow\\xab von Under The Hat ganz gut passen. :-)

\\n

Shownotes

Continue reading "DK19: Der gemeine Buffer Overflow"'