NX-Bit

NX-Bit

Das NX-Bit (No eXecute) ist die Bezeichnung einer Technik zur „Verbesserung der Sicherheit eines Computers“. Sie soll verhindern, dass Programme beliebige Daten als Programm ausführen und auf diese Weise Schadcode (Viren, Backdoors u. ä.) starten. Bei Windows-Betriebssystemen (ab Windows-XP SP2) wird die Technik auch als DEP, Data Execution Prevention (deutsch: Datenausführungsverhinderung) bezeichnet.[1]

Inhaltsverzeichnis

Prozessorfamilien

Die Technik wurde vom Chiphersteller AMD mit dem Prozessor Athlon 64 unter dem Namen NX-Bit für den x86-Markt eingeführt. Die Technik wird von AMD als Enhanced Virus Protection (EVP) vermarktet. Auch Intel verwendet in den Itanium-Prozessoren und in den neuesten Pentium-4- und Pentium-M- sowie den Core-Modellen diese Technik, allerdings unter dem Namen XD-Bit (Execute Disable). Auch Transmeta und VIA/Centaur bieten CPUs mit NX-Bit an. Ähnliche Techniken gibt es auf anderen Prozessorarchitekturen schon länger, etwa beim PowerPC von IBM, beim Sun SPARC und bei den Alpha-Prozessoren.

Geschichte

Seit dem 80286er besteht im sogenannten Protected Mode die Möglichkeit, einzelne Speichersegmente als ausführbar (Code-Segmente) oder nicht ausführbar (Daten-Segmente) zu kennzeichnen. Wird versucht, eine Adresse in einem als nicht ausführbar markierten Speichersegment auszuführen, löst die CPU einen Hardware-Interrupt aus, welcher vom Betriebssystem abgefangen wird und das betreffende Programm daraufhin abgebrochen wird.

Heutige Betriebssysteme nutzen zwar ebenfalls den Protected Mode, jedoch verwenden sie ein sogenanntes „flaches Speichermodell“, in dem sämtliche Segmente den gleichen linearen Speicherbereich überdecken. Der segmentbasierte Speicherschutz ist damit ausgehebelt, eine Trennung zwischen Code- und Datenbereichen ist nicht mehr möglich.

Funktionsweise

64-Bit-Eintrag im Seitenverzeichnis (Page directory entry)
Bits: 63 62 ... 52 51 ... 32
Inhalt: NX reserved Bit 51..33 der Basisadresse
Bits: 31 ... 12 11 ... 9 8 7 6 5 4 3 2 1 0
Inhalt: Bit 31...12 der Basisadresse AVL ig 0 ig A PCD PWT U/S R/W P

Heutige Betriebssysteme verlassen sich beim Speicherschutz ausschließlich auf seitenbasiertes Speichermanagement. Dieses gestattet bei der IA32-Architektur zwar die Unterscheidung zwischen Seiten, die „nur lesbar“ und welchen, die „les- und schreibbar“ sind (siehe Bit 1 ("R/W") im Seitentabelleneintrag), jedoch ist dort keine Unterscheidung zwischen (Daten) „Lesen“ und (Code) „Ausführen“ vorgesehen. AMD hat für das NX-Bit das Bit 63 in den 64-Bit-Seitentabellen und -verzeichnissen verwendet. 64-Bit-Seitentabellen und -verzeichnisse werden nur im 64-Bit-Modus und im 32-Bit-Modus mit aktivierter Physical Address Extension verwendet.

Das NX-Bit wird vom Betriebssystem, sofern es dieses unterstützt, für den Stack und andere Datenbereiche im Arbeitsspeicher gesetzt, so dass diese nicht mehr ausführbar sind. Versucht ein Programm nun, aufgrund eines Bugs oder einer Infektion mit Schadcode diese so markierten Speicherseiten auszuführen, fängt die CPU dies ab und meldet dies über einen Hardware-Interrupt an das Betriebssystem, welches daraufhin das betroffene Programm beendet.

Durch dieses Vorgehen wird das Von-Neumann-Prinzip, Daten und Programm in einem gemeinsamen Speicher abzulegen, teilweise gebrochen. Allerdings wird nur der Ausführung von Code in Datensegmenten (z. B. in einem Stack oder Heap) vorgebeugt. Der Pufferüberlauf an sich wird nicht unterbunden. Wenn dabei ein Sprung in eine Codepage ausgelöst wird, ist die No-Execute-Technik wirkungslos. Allerdings lässt sich trotz dieser Technik beliebiger Code beispielsweise durch ein „return into libc“ ausführen.

Betriebssysteme

Microsoft Windows

Microsoft Windows unterstützt DEP seit Version XP SP 2 , sofern der jeweilige Prozessor die Möglichkeit bietet. Unter Windows Vista und Windows 7 sind die Einstellungen dem Benutzer sichtbar.

Linux

Der Linux-Kernel unterstützt das NX-Bit ab der Version 2.6.8, wobei entweder ein Kernel für eine x86_64-CPU oder ein Kernel für eine x86-CPU mit aktiviertem PAE verwendet werden muss.

Mac OS X

Mac OS X unterstützt das NX-Bit ab Version 10.6 (Snow Leopard).

CPUs mit NX-Bit

CPUs mit dem NX-Bit-Feature lassen sich per Software an einem gesetzen 11. Bit im Extended Feature Enable Register erkennen. Dieses Model-specific Register lässt sich nur von privilegierter Software (Systemsoftware), also beispielsweise vom Betriebssystemkern, auslesen.

Weblinks

Einzelnachweise

  1. siehe den Artikel Data Execution Prevention in der englischsprachigen Wikipediaausgabe und die dort genannten Quellen

Wikimedia Foundation.

Игры ⚽ Поможем решить контрольную работу

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Bit rate — Bit rates Decimal prefixes (SI) Name Symbol Multiple kilobit per second kbit/s 103 megabit per second Mbit/s 106 gigabit per second Gbit/s 109 …   Wikipedia

  • Bit manipulation — is the act of algorithmically manipulating bits or other pieces of data shorter than a byte. Programming tasks that require bit manipulation include low level device control, error detection and correction algorithms, encryption algorithms, and… …   Wikipedia

  • Bit — Saltar a navegación, búsqueda Bit es el acrónimo de Binary digit. (dígito binario). Un bit es un dígito del sistema de numeración binario. Mientras que en el sistema de numeración decimal se usan diez dígitos, en el binario se usan sólo dos… …   Wikipedia Español

  • BIT — (binary digit) Contraction de l’expression anglaise binary digit (chiffre binaire), le terme bit prend en informatique trois significations différentes. Puisqu’on se trouve ici dans un système de numération à base 2, deux symboles (habituellement …   Encyclopédie Universelle

  • Bit — [bɪt], das; [s], [s]: kleinste Einheit der Informationseinheit beim Computer: ein Byte besteht aus acht Bit; ein Bit steht entweder auf 0 oder auf 1. * * * bịt 〈EDV; Zeichen für〉 Bit * * * 1Bịt , das; [s], s <aber: eine Million Bits od.… …   Universal-Lexikon

  • bit — bit1 [bit] n. [ME < OE bite, a bite < bītan, BITE] 1. the part of a bridle that goes into a horse s mouth, used to control the horse: see BRIDLE 2. anything that curbs or controls 3. the part of a pipestem held in the mouth: see PIPE 4. th …   English World dictionary

  • bit — Ⅰ. bit [1] ► NOUN 1) a small piece or quantity. 2) (a bit) a short time or distance. 3) (also bit of fluff or stuff) informal a girl or young woman. ● a bit …   English terms dictionary

  • Bit Cloud — is a character from , an anime based on TOMY s Zoids model franchise. Voiced by Takahiro Sakurai in the Japanese version and Richard Ian Cox in the English version of the series, he is the protagonist of the story, and a member of the Blitz team …   Wikipedia

  • Bit Corporation — (普澤 Pu Ze in Chinese) [cite web |url=http://fuji.drillspirits.net/gamate/?p=bit |title=Gamate: Bit Corporation |accessdate=2008 06 09 |author=Taizou |date=2008 |work=Neo Fuji |publisher=] was a Taiwanese game developer and console… …   Wikipedia

  • Bit Corp — Bit Corporation war ein taiwanischer Spiele und Konsolen Hersteller. Inhaltsverzeichnis 1 Spiele 2 Hardware 3 Anmerkungen 4 Weblinks // …   Deutsch Wikipedia

  • Bit (informatique) — Bit Pour les articles homonymes, voir Bit (homonymie).  Ne doit pas être confondu avec byte. Unités de bits Préfixes SI …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”