ru
язык
смартфоны 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 не обеспечивают полную защиту от угроз переполнения буфера, однако, сильно снижают вероятность взлома системы.





вверх