uk
мова
смартфони SoC процесори відеокарти ігри
українська русский
Архів | ПроцесорТехнології та інструкції, що використовуються в процесорах → NX (XD) і EVP
Стаття востаннє коригувалася 2017.03.14 та могла втратити свою актуальність !!!

NX (XD) і EVP

14.03.2017 р.

Технології NX (No Xecute), XD (eXecute Disable) і EVP (Enhanced Virus Protection), не дивлячись на різні назви, є одним і тим же - важливим компонентом будь-якого сучасного процесора, що забезпечує підвищений захист комп'ютера від вірусів і хакерських атак, які використовують механізм переповнення буферу.

Назви NX і XD характерні для процесорів Intel. EVP - для процесорів AMD.

Зустрічаються також і інші варіанти назв, такі як DEP (Data Execution Prevention), XN (eXecute Never) тощо.

Переповнення буфера


Майже кожна програма працює з зовнішніми даними, отримуваними з запам'ятовуючих пристроїв, з мережі Інтернет чи інших джерел. Для використання цих даних програми копіюють їх в буфери - блоки віртуальної пам'яті комп'ютера, які виділяються для їх роботи.

Переповнення відбувається, коли в буфер записуються дані, обсяг яких перевищує його розміри. Це можливо, якщо розробник програми в якомусь її місці не передбачив перевірку відповідності обсягу копійованих даних розміру буфера. В результаті переповнення "зайві" дані потрапляють в пам'ять комп'ютера і розташовуються за межами конкретного буфера, "несанкціоновано" замінюючи частину даних, що знаходяться в пам'яті.

Системна пам'ять використовується не тільки для зберігання даних, що обробляються. Вона також може містити виконуваний код, з якого складаються програми.

Знаючи про існування бага в конкретній програмі, зловмисник може "підставити" їй потрібним чином скомпонований програмний код, який через механізм переповнення буферу замінить частину виконуваного коду, що міститься в пам'яті. Процесор виконає цей код і здійснить, таким чином, необхідні зловмиснику дії.


Гострота проблеми


Вперше механіз переповнення буферу був використаний при створенні комп'ютерного вірусу, що одержав назву "черв Морріса". Це був саморозповсюджуваний черв, який "розповзся" в 1988 році по всьому Інтернету (який тоді ще тільки починав розвиватися).

З вказаного часу масові зараження комп'ютерів шкідливим кодом, заснованим на цій вразливості, неодноразово мали місце. Зі зростанням Інтернету збільшувалися й їх масштаби. У 2001 році черв Code Red інфікував понад 350 тис. комп'ютерів по всьому світу, в 2003 році черв SQL Slammer поширився не менше ніж на 75 тисяч комп'ютерів і т. д.

Сьогодні серед комп'ютерних вразливостей переповнення буферу займає одне з перших місць. Кількість шкідливих програм, які його використовують, обчислюється тисячами. При цьому, під небезпеку підпадають як комп'ютери на базі Windows, так і машини, що використовують Linux. Крім того, в 2015 році була виявлена потенційна можливість переповнення буферу в Linux-драйвері, яка підставляє під удар крім комп'ютерів ще й мільйони маршрутизаторів по всьому світу.


Механізм роботи NX і EVP


Технології NX і EVP використовуються в процесорах з 2004 року й ґрунтуються на "ізоляції" блоків віртуальної пам'яті комп'ютера, призначених для зберігання виконуваного коду, від блоків, в які записуються оброблювані дані. За таких умов навіть якщо зловмиснику вдасться впровадити свій код в пам'ять комп'ютера, він не буде виконаний процесором.

Щоб цей захист повноцінно функціонував, комп'ютер повинен використовувати відповідну операційну систему. У Windows підтримка NX/EVP з'явилася у версії Windows XP SP2. А Windows 8, 10 і зовсім не працюють на комп'ютерах, процесори яких не підтримують зазначені технології.

NX/EVP не забезпечують повний захист від загроз переповнення буферу, однак, дуже знижують вірогідність злому системи.





вгору