Abo
  • Services:
Anzeige
PaX liefert eine deutlich bessere Speicherrandomisierung als der Standard-Linux-Kernel.
PaX liefert eine deutlich bessere Speicherrandomisierung als der Standard-Linux-Kernel. (Bild: PaX)

ASLR: Speicher-Randomisierung unter Linux mangelhaft

PaX liefert eine deutlich bessere Speicherrandomisierung als der Standard-Linux-Kernel.
PaX liefert eine deutlich bessere Speicherrandomisierung als der Standard-Linux-Kernel. (Bild: PaX)

Die Randomisierung des Speicherlayouts (ASLR) gilt als wichtige Maßnahme, um die Ausnutzung von Sicherheitslücken zu erschweren. Unter Linux hat das Konzept Mängel, aber viel gravierender ist, dass vielfach ASLR überhaupt nicht eingesetzt wird.

Anzeige

Zu den häufigsten Sicherheitslücken gehören Fehler in der Speicherverwaltung von C-Programmen, beispielsweise klassische Buffer Overflows. Moderne Betriebssysteme haben inzwischen eine Reihe von Schutzmaßnahmen implementiert, um die Ausnutzung von solchen Fehlern zu erschweren. Eine Möglichkeit ist die sogenannte Address Space Layout Randomisation (ASLR).

Eine Strategie zur Ausnutzung von Sicherheitslücken ist es häufig, das System des Opfers dazu zu bringen, an eine bestimmte Stelle im Speicher zu springen und dort Code auszuführen. Damit derartige Angriffe jedoch funktionieren, muss der Angreifer wissen, an welchen Speicheradressen sich was befindet. Hier setzt ASLR an: Durch die zufällige Verteilung von Code, Heap und Stack im Speicher werden solche Angriffe enorm erschwert. ASLR ist nicht perfekt. Durch die Nutzung von weiteren Lücken kann ein Angreifer Speicheradressen erfahren, das sogenannte Heap Spraying setzt darauf, bösartigen Code möglichst oft im Speicher zu wiederholen, so dass bei einem zufälligen Sprung die Chance besteht, den entsprechenden Code zu erreichen. Doch auch wenn ASLR nicht alle Angriffe verhindert, gilt es als wichtiger Baustein moderner Sicherheitskonzepte.

Linux war Pionier in Sachen ASLR

Linux war eigentlich einst Pionier in Sachen Speicherrandomisierung. Das PaX-Projekt hatte bereits 2002 mittels eines Kernel-Patches die Möglichkeit von ASLR eingeführt. Ein Jahr später führte OpenBSD als erstes Betriebssystem ASLR als Standardfunktion ein. PaX existiert noch heute und ist Teil des Grsecurity-Projekts, das einen Kernel-Patch mit zahlreichen zusätzlichen Sicherheitsfunktionen für den Linux-Kernel bereitstellt. Doch PaX wurde nie Teil des offiziellen Linux-Kernels. Mit der Version 2.6.12 führte Linux eine eigene Implementierung von ASLR ein. Doch das Problem dabei: In vielen Fällen greift diese überhaupt nicht. Während unter Windows, Mac OS X, Android und iOS ASLR inzwischen Standard ist, wird es unter Linux nach wie vor nur mangelhaft genutzt.

Der Hintergrund ist, dass nicht jedes Programm automatisch an beliebige Speicherbereiche geladen werden kann. Klassischerweise können Sprungbefehle in Software auf feste Adressen verweisen. Damit der Code an beliebige Speicherbereiche geladen werden kann, muss dies bereits bei der Kompilierung berücksichtigt werden. Der gcc-Compiler bietet hierfür die Option -fpic (pic steht für "Position Independent Code"), für den Linker muss die Option -pie (für "Position Independent Executable") angegeben werden. Und genau hier hapert es: Alle großen Distributionen nutzen standardmäßig noch Programme, die nicht mit den entsprechenden Optionen für positionsunabhängigen Code kompiliert wurden.

Geringe Auswirkungen auf die Leistungen

Die Nutzung von positionsunabhängigem Code hat Auswirkungen auf die Performance. Insbesondere auf alten PC-Systemen mit 32 Bit ist das ein Problem, denn hier ist die Zahl der Prozessorregister knapp und für den positionsunabhängigen Code wird ein zusätzliches Register benötigt. Auf 64-Bit-Systemen sind die Performanceeinbußen hingegen sehr gering. Bei einem Test von uns mit der Codierung eines Videos mit dem Programm ffmpeg betrug der Unterschied etwa 1,5 Prozent. Es gibt Patches für den gcc-Compiler und Binutils, welche die Leistungseinbußen noch weiter reduzieren und die in den kommenden Versionen der entsprechenden Tools enthalten sein werden.

Auch ohne positionsunabhängigen Code ist die Adressrandomisierung nicht völlig nutzlos. Der Stack- und der Heap-Speicher landen trotzdem an zufälligen Adressen und Bibliotheken werden generell mit positionsunabhängigem Code kompiliert. Aber für einen wirklichen Schutz reicht das nicht. Insbesondere um vor sogenannten Return-Oriented-Programming-Angriffen zu schützen, ist eine Randomisierung des eigentlichen Programmcodes wichtig.

Firefox hat ASLR nach Problemen wieder deaktiviert 

eye home zur Startseite
c0t0d0s0 09. Dez 2014

Ich opfere nicht eine von 100 Minuten Programmlaufzeit dafür, nein danke. Denn Zeit ist...

hannob (golem.de) 08. Dez 2014

Es ist leider nicht so einfach. Manchmal haben auch Libraries eine Main-Funktion...



Anzeige

Stellenmarkt
  1. Cassini AG, verschiedene Standorte
  2. Robert Bosch GmbH, Abstatt
  3. ETAS GmbH & Co. KG, Stuttgart
  4. über Harvey Nash GmbH, Köln


Anzeige
Blu-ray-Angebote
  1. Einzelne Folge für 2,99€ oder ganze Staffel für 19,99€ kaufen (Amazon Video)
  2. 29,99€ (Vorbesteller-Preisgarantie)

Folgen Sie uns
       


  1. Bundesverkehrsministerium

    Dobrindt finanziert weitere Projekte zum autonomen Fahren

  2. Mobile

    Razer soll Smartphone für Gamer planen

  3. Snail Games

    Dark and Light stürmt Steam

  4. IETF

    Netzwerker wollen Quic-Pakete tracken

  5. Surface Diagnostic Toolkit

    Surface-Tool kommt in den Windows Store

  6. Bürgermeister

    Telekom und Unitymedia verweigern Open-Access-FTTH

  7. Layton's Mystery Journey im Test

    Katrielle, fast ganz der Papa

  8. Kabel und DSL

    Vodafone gewinnt 100.000 neue Festnetzkunden

  9. New Technologies Group

    Intel macht Wearables-Sparte dicht

  10. Elektromobilität

    Staatliche Finanzhilfen elektrisieren Norwegen



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Handyortung: Wir ahnungslosen Insassen der Funkzelle
Handyortung
Wir ahnungslosen Insassen der Funkzelle
  1. Bundestrojaner BKA will bald Messengerdienste hacken können
  2. Bundestrojaner Österreich will Staatshackern Wohnungseinbrüche erlauben
  3. Staatstrojaner Finfishers Schnüffelsoftware ist noch nicht einsatzbereit

48-Volt-Systeme: Bosch setzt auf Boom für kompakte Elektroantriebe
48-Volt-Systeme
Bosch setzt auf Boom für kompakte Elektroantriebe
  1. Elektromobilität Shell stellt Ladesäulen an Tankstellen auf
  2. Ifo-Studie Autoindustrie durch Verbrennungsmotorverbot in Gefahr
  3. Mobilität Elektroautos deutscher Start-ups fordern Autobauer heraus

Anwendungen für Quantencomputer: Der Spuk in Ihrem Computer
Anwendungen für Quantencomputer
Der Spuk in Ihrem Computer
  1. Quantencomputer Ein Forscher in den unergründlichen Weiten des Hilbertraums
  2. Quantenprogrammierung "Die physikalische Welt kann kreativer sein als wir selbst"
  3. Quantenoptik Vom Batman-Fan zum Quantenphysiker

  1. Re: Ein bisschen ironisch ist das schon

    thinksimple | 20:26

  2. Re: Solange die Elektroautos Teurer sind als...

    ChMu | 20:18

  3. Re: Verkaufscharts

    plutoniumsulfat | 20:17

  4. Re: Gamer Smartphone?

    plutoniumsulfat | 20:16

  5. Re: Smartphonespiele sind spaßig

    DetlevCM | 20:08


  1. 16:55

  2. 16:33

  3. 16:10

  4. 15:56

  5. 15:21

  6. 14:10

  7. 14:00

  8. 12:38


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel