Suorituksen esto (NX)
Execute Disable, jota kutsutaan x86-terminologiassa myös nimellä NX tai XD, antaa sivutauluille mahdollisuuden merkitä muistia suorituskelvottomaksi. Se on laitteistotason perusosa, jota käyttöjärjestelmän suojakäytännöt käyttävät.
Mitä sinun tulee tietää
Execute Disable, jota kutsutaan x86-terminologiassa myös nimellä NX tai XD, antaa sivutauluille mahdollisuuden merkitä muistia suorituskelvottomaksi. Se on laitteistotason perusosa, jota käyttöjärjestelmän suojakäytännöt käyttävät.
Miten se toimii
Kun ominaisuus on otettu käyttöön sovellettavassa sivutusympäristössä, käskyn nouto suorituskelvottomaksi merkityltä sivulta aiheuttaa poikkeuksen (fault) sen tavujen suorittamisen sijaan. Sivujen käyttöoikeudet erottavat suorituksen datan käytöstä; ohjelmisto vastaa sopivien oikeuksien määrittämisestä ja siirtymien käsittelystä laillisen luodun koodin osalta.
Missä siitä on hyötyä
Käyttöjärjestelmä voi kartoittaa datapuskurin ilman suoritusoikeutta, joten konekielitavujen kirjoittaminen tähän puskuriin ei tee siitä suoritettavaa koodisivua. JIT-ajonaikaiset ympäristöt käyttävät dokumentoituja muistinhallinnan rajapintoja ja käyttöoikeuskäytäntöjä luodulle koodille.
Tuen ja käyttöönoton tarkistaminen
CPUID.80000001H:EDX bitti 20 luetteloi x86 execute-disable -ominaisuuden asianmukaisen valmistajamääritelmän mukaisesti. Todellinen valvonta riippuu myös sivutustilasta ja käyttöjärjestelmätason käyttöönotosta. Tarkasta käyttöjärjestelmän dokumentoitu suojaustila sen sijaan, että päättelet sen suorittimen mallista.
Kyky, käyttöönotto ja valvonta on tarkistettava erikseen. Suoritin voi tukea suojausta, vaikka käyttöjärjestelmä, sovellus tai virtuaalikonekäytäntö ei aktivoi sitä. Tietokannan tukikenttä ei ole todiste käynnissä olevasta järjestelmästä.
Mitä ominaisuus ei takaa
NX ei takaa, että suoritettava tiedosto on turvallinen, estä kaikkia koodinuudelleenkäyttöhyökkäyksiä tai osoita Windows-kelpoisuutta. Tiedot pysyvät luettavissa tai kirjoitettavissa erillisten oikeuksien mukaisesti. Ominaisuuslippu ei tarkoita, että jokainen muistikartoitus noudattaa tiukkaa kirjoitus-/suorituskäytäntöä.
Yhteensopivuus ja suorituskyky käytännössä
Pidä käyttöjärjestelmä, laiteohjelmisto ja kyseinen suoritusympäristö ajan tasalla. Jos suojaus tuo esiin yhteensopivuusongelman, käytä ensin toimittajan diagnostiikkaa ja tuettuja päivityksiä. Laaja suojauksen vaihtokytkin voi vaikuttaa liittymättömiin sovelluksiin, ja sen tulisi noudattaa nimenomaista käyttöönottotapaa ja palautuskäytäntöä.
Käytännön tarkistuslista todentamiseen
- Kirjaa tarkka suoritin- tai alustamalli sekä kyseessä olevat sovellus-, käyttöjärjestelmä- ja ajonaikaiset versiot. Säilytä todellisen virheen tai vaatimuksen sanamuoto.
- Tarkista kyseisen tarkan mallin valmistajaviite ja tutki sitten todellinen suorituskyky ja käyttöönottotila ympäristössä, jossa ohjelma suoritetaan.
- Vertaa valitun binaarin tai taustajärjestelmän jokaista vaatimusta. Samankaltaisesti nimetty ominaisuus, alias tai laaja teknologiamerkintä ei riitä.
- Varmista, että sovellus valitsi aiotun toteutuksen. Käytä sen dokumentoitua diagnostiikkaa ja tuettua vararatkaisua, kun vaatimukset eivät täyty.
- Tee yksi tuettu muutos kerrallaan ja toista sama työkuorma. Pidä alkuperäinen kokoonpano ja palautuspolku saatavilla.
Jos ominaisuus on luettelossa, mutta ohjelmisto ei voi käyttää sitä
Aloita tarkasta vikaantuvasta komponentista. Laitteistotietokanta kuvaa tallennettua kykyä; käyttöjärjestelmä tai hypervisori voi tuoda esiin erilaisen todellisen ympäristön. Virheellisen käskyn virhe vaatii myös todellisen virheellisen käskyn ja binaarikäännöksen tutkimista, koska korruptio tai liittymätön tukematon käsky voi aiheuttaa samanlaisen oireen.
Asenna kyseiselle alustalle tuettu sovellus-, ajuri- tai ajoympäristöversio ja käytä tarvittaessa toimittajan dokumentoitua perus- tai varakäännöstä. Ohjelmistopäivitys ei voi luoda käskyä, joka suorittimelta puuttuu. Laiteohjelmisto- ja tietoturvakäytäntömuutosten tulee noudattaa järjestelmävalmistajan menettelyä ja palautussuunnitelmaa yleisen optimointiohjeen sijaan.
Tämän selityksen lähteet ja laajuus
Intel 64 and IA-32 Architectures Software Developer's Manual
Nämä viitteet määrittävät arkkitehtuurisen käyttäytymisen ja ohjelmistovaatimukset. Ne eivät itsenäisesti vahvista kaikkia ominaisuusarvoja linkitetyllä laitteistomallisivulla. Mallikohtaista tukea varten käytä kyseisen sivun valmistajan todisteita ja tarkista todellinen järjestelmäkokoonpano. Tämä artikkeli ei tarjoa suorituskykytestiä, sertifiointia tai riippumatonta arviointipäivämäärää.
Lähteet ja vahvistus
Toimituksellinen omistajuus: Feex. Riippumatonta tarkistuspäivämäärää ei ole kirjattu. Miten tutkimme.
- Intel 64 and IA-32 Architectures Software Developer's Manual · Osat 1 ja 2 kuvaavat nimetyt käskyperheet ja CPUID:n; Osa 3 kuvaa tila-, sivutus-, VMX- ja suojausohjaukset. Arkkitehtuuridokumentaatio ei vahvista tukea tietylle mallille.
Oliko tämä artikkeli hyödyllinen?
Kyllä tai ei riittää. Valitse halutessasi syy tai lisää lyhyt viesti.
Kiitos. Se auttaa meitä parantamaan tätä sivua.