Ero sivun ”NX-bitti” versioiden välillä

Wikipediasta
Siirry navigaatioon Siirry hakuun
[arvioimaton versio][arvioimaton versio]
Poistettu sisältö Lisätty sisältö
FlaBot (keskustelu | muokkaukset)
p Botti lisäsi: pt:Bit NX
NX-bitin suoman suojan ohituksesta
Rivi 5: Rivi 5:


NX-bitillä voidaan ohjelman data-alueet suojata siten että kun ohjelman [[ohjelmointivirhe]]en seurauksena suoritin meinaa alkaa suorittaa ohjelmakoodina hyökkääjän antamaa syötettä, suoritin kieltäytyykin suorittamasta koodia koska ohjelman data-alueelta ei ole lupa suorittaa ohjelmakoodia. Tämä tekee puskurin ylivuoto -tyyppisistä tietoturva-aukoista murtautumisen selvästi vaikeammaksi, mutta ei silti täysin suojaa niiltä.
NX-bitillä voidaan ohjelman data-alueet suojata siten että kun ohjelman [[ohjelmointivirhe]]en seurauksena suoritin meinaa alkaa suorittaa ohjelmakoodina hyökkääjän antamaa syötettä, suoritin kieltäytyykin suorittamasta koodia koska ohjelman data-alueelta ei ole lupa suorittaa ohjelmakoodia. Tämä tekee puskurin ylivuoto -tyyppisistä tietoturva-aukoista murtautumisen selvästi vaikeammaksi, mutta ei silti täysin suojaa niiltä.

Useilla arkkitehtuureilla (mukaanlukien x86) pino kasvaa muistissa "alaspäin". Kun ohjelma kutsuu funktiota, se työntää pinolle paluuosoitteen josta suoritus jatkuu funktiosta palattaessa. Jos pinolla sijaitsevaan (ts. lokaaliin) muuttujaan voi sijoittaa mielivaltaisen määrän dataa, paluuosoitteen voi ylikirjoittaa. Perinteisesti puskurin ylivuotohaavoittuvuutta vastaan hyökätessä paluuosoitteeksi valittaisiin sellainen joka ohjaisi ohjelman virran hyökkääjän syöttämään dataan. Oikein käytettynä NX-bitti kuitenkin estää tämän.

Yleinen tapa hyödyntää puskuriylivuotoa NX-bitin yhteydessä on return-to-libc -hyökkäys. Return-to-libc -hyökkäyksellä pino muotoillaan niin että ohjelma saadaan kutsumaan jo sisältämiään funktioita mielivaltaisilla parametreilla.


[[AMD]] kutsuu NX-bittiään harhaanjohtavalla markkinointitermillä "Enchanced virus protection".
[[AMD]] kutsuu NX-bittiään harhaanjohtavalla markkinointitermillä "Enchanced virus protection".

Versio 28. heinäkuuta 2007 kello 21.25

NX-bitti tarkoittaa virtuaalimuistin tilabittiä, joka mahdollistaa virtuaalimuistisivuille määriteltävän, että saako sivulta suorittaa ohjelmakoodia vai ei.

Useissa ohjelmissa on puskurin ylivuoto -tietoturva-aukkoja, jotka mahdollistavat sen, että ohjelma voidaan saada suorittamaan ohjelmakoodina sille annettua syötettä, jonka ei pitäisi olla ajettava ohjelma, mutta joka voidaan laittaa sisältämään hyökkääjän haittakoodi, eli esimerkiksi vakoiluohjelma tai mato.

NX-bitillä voidaan ohjelman data-alueet suojata siten että kun ohjelman ohjelmointivirheen seurauksena suoritin meinaa alkaa suorittaa ohjelmakoodina hyökkääjän antamaa syötettä, suoritin kieltäytyykin suorittamasta koodia koska ohjelman data-alueelta ei ole lupa suorittaa ohjelmakoodia. Tämä tekee puskurin ylivuoto -tyyppisistä tietoturva-aukoista murtautumisen selvästi vaikeammaksi, mutta ei silti täysin suojaa niiltä.

Useilla arkkitehtuureilla (mukaanlukien x86) pino kasvaa muistissa "alaspäin". Kun ohjelma kutsuu funktiota, se työntää pinolle paluuosoitteen josta suoritus jatkuu funktiosta palattaessa. Jos pinolla sijaitsevaan (ts. lokaaliin) muuttujaan voi sijoittaa mielivaltaisen määrän dataa, paluuosoitteen voi ylikirjoittaa. Perinteisesti puskurin ylivuotohaavoittuvuutta vastaan hyökätessä paluuosoitteeksi valittaisiin sellainen joka ohjaisi ohjelman virran hyökkääjän syöttämään dataan. Oikein käytettynä NX-bitti kuitenkin estää tämän.

Yleinen tapa hyödyntää puskuriylivuotoa NX-bitin yhteydessä on return-to-libc -hyökkäys. Return-to-libc -hyökkäyksellä pino muotoillaan niin että ohjelma saadaan kutsumaan jo sisältämiään funktioita mielivaltaisilla parametreilla.

AMD kutsuu NX-bittiään harhaanjohtavalla markkinointitermillä "Enchanced virus protection".