? Computer-Sicherheit wird beim Umgang mit esoterischen Sicherheitslücken auf Hardware-Ebene . Auch die grundlegende Struktur Ausführung von Computern hat Löcher , die Hacker ausnutzen können . Ingenieure müssen ständig weiter zu entwickeln Techniken, um Hacker-Angriffe zu umgehen. Um Speicher zu adressieren Manipulation nutzt wie Puffer-Überläufe , Ingenieuren entwickelt Stapel oder Address Space Layout , Randomisierung. Diese Technik macht traditionelle und wiederholbare Angriffe weniger wirksam und schützt Computer vor grundlegende Sicherheitslücken . Der Call Stack
Der generische Datenstruktur als "Stack" definiert eine grundlegende Liste der Artikel , in denen jedes hinzugefügte Element fügt an das Ende der Liste entfernt und jeder Artikel kommt aus dem Ende der Liste in einem Last-in- first-out Reihenfolge. Die Aufrufliste eines laufenden Programms Funktionen viel in der gleichen Weise. Statt einfacher Datenelemente , jedoch organisiert das Call-Stack Referenzen im Speicher Ausführen von Funktionen im Programm.
Pufferüberläufe und Speicher Vulnerability
Einer der Nachteile von mit der Stapel-Datenstruktur , um Programme zu organisieren, ist in Bezug auf , wie das Gedächtnis organisiert ist. Während jeder laufenden Funktion in einem Programm sitzt in der Call-Stack , sie sitzen oft side-by -side im physikalischen Speicher . Dementsprechend wird, wenn ein Angreifer Überschreitungen einen variablen Puffer nicht durch zu viele Daten für eine Datenstruktur zu handhaben , zum Beispiel, dann die zusätzlichen Informationen können Daten in benachbarten physikalischen Speicherplätzen überschrieben werden , die die Strömung der Programmausführung .
Stapel Randomisierung
Um die Sicherheit Bedenken auszuräumen, entwickelt Ingenieure eine Speicherzuweisung Technik, die als Stapel Randomisierung oder Address Space Layout Randomisation bekannt. Typischerweise wird der Speicher sequentiell während der Programmausführung zugewiesen . Wenn ein Programm gestartet wird, wird es den nächsten verfügbaren Speicherplatz im Speicher zugeordnet. Bei Verwendung Stapel Randomisierung bestimmt der Computer eine pseudo-zufällige Lage auf einem vorbestimmten Offset basiert. Die Rahmen-Pointer auf dem Stack werden um diesen Offset als gut aufgestellt . Der Offset wird beim Booten vom Betriebssystem bestimmt.
Stapel Randomisierung und Sicherheit
Wegen Stapel Randomisierung nicht Programmdaten nicht ganz nacheinander wohnen in dem Speicher des Systems . Dies stellt ein Problem für Hacker versucht, einen Angriff wie ein Pufferüberlauf nutzen . Während ein Pufferüberlauf auftreten kann , konnte die Effekte nicht vorgegeben werden. Vor Stapel Randomisierung , wenn ein Hacker wusste, wie viele Daten in einem Pufferüberlauf nutzen , konnte er den gleichen Exploit auf dem gleichen Programm verwenden , wiederholt . Mit Randomisierung wird kein Puffer Angriff Erfolg zwischen den einzelnen laufenden Instanz eines Programms garantiert, auch auf dem gleichen Computer .