Siirry sisältöön

NX-bitti

Wikipediasta

NX-bitti (no execute) tarkoittaa tietokoneen muistin tilabittiä, joka määrittää saako sivulta suorittaa ohjelmakoodia vai ei.[1] Eri suoritinarkkitehtuurit ovat tukeneet toimintoa pitkään.[1] x86-arkkitehtuuriin se tuli AMD:n lisättyä tuen 64-bittisiin suorittimiinsa (AMD64).[1]

Toimintoa on kutsuttu myös termeillä "Enhanced virus protection", "Execute disable" (XD-bit) ja "Data execution prevention" (DEP).[2][3][4][5]

ARM-suorittimissa käytetään vastaavalle ominaisuudelle termiä XN (execute never).[6]

Ratkaisu rajoittaa ohjelmissa esiintyvien puskurin ylivuotovirhe -tietoturva-aukkojen hyödyntämistä hyökkäyksiin estämällä tietokoneohjelman suorittamisen tietyiltä alueilta.[7] Haittaohjelmat pyrkivät hyödyntämään haavoittuvuuksia ylikirjoittamalla pinon sen omalla koodilla ja sitten suorittamaan sen.[7] NX-bitillä yritys suorittaa ohjelmakoodia suojatusta paikasta havaitaan ja voidaan pysäyttää.[7] NX ei kuitenkaan pysäytä haittaohjelmia, jotka eivät riipu sen mukana tulevasta koodista: haittaohjelma voi edelleen ohjata ohjelman suorituksen toiseen paikkaan joka avaa sen hyökkäykselle.[7] ROP-hyökkäystä (Return Oriented Programming) vastaan on kehitetty ASLR-tekniikka.[8]

  1. a b c x86 NX support lwn.net. 2.6.2004. Viitattu 20.9.2020. (englanniksi)
  2. http://web1.toshiba.ca/support/isg/tsb/en/view.asp?docid=TSB001112 (Arkistoitu – Internet Archive)
  3. AMD, Intel put antivirus tech into chips zdnet.com. 8.1.2004. Viitattu 19.9.2020. (englanniksi)
  4. Data Execution Prevention (PDF) h10032.www1.hp.com. Viitattu 19.9.2020. (englanniksi)
  5. Execute Disable Bit – The BIOS Optimization Guide techarp.com. Viitattu 19.9.2020. (englanniksi)
  6. https://developer.arm.com/documentation/ddi0360/f/memory-management-unit/memory-access-control/execute-never-bits
  7. a b c d Kristopher Kubicki: A bit about the NX bit; Virus Protection Woes anandtech.com. 11.10.2004. Arkistoitu 24.1.2021. Viitattu 20.9.2020. (englanniksi)
  8. On the effectiveness of NX, SSP, RenewSSP and ASLR against stack buffer overflows (PDF) hmarco.org. Viitattu 20.9.2020. (englanniksi)