Интернет магазин китайских планшетных компьютеров



Компьютеры - NX bit

07 мая 2011


Оглавление:
1. NX bit
2. Технические детали



Аппаратный антивирусная технология, предотвращающая «заражение» компьютера некоторыми типами вредоносного программного обеспечения, искусственно вызывающего ошибку вида «переполнение буфера».

Основные сведения

Данная технология может работать только при соблюдении следующих условий:

  • Процессор, поддерживающий данную технологию на аппаратном уровне.
  • Операционная система с поддержкой данной технологии.
  • Используется PAE или архитектура x86-64.

Данная технология иногда вызывает программные конфликты с некоторыми видами ПО, поэтому в BIOS материнских плат, предусматривающих установку процессоров с поддержкой EDB, есть возможность отключения данной технологии.

Описание

NX — атрибут страницы памяти в архитектурах x86 и x86-64, который может применяться для более надежной защиты системы от программных ошибок, а также использующих их вирусов, троянских коней и прочих вредоносных программ. NX — терминология AMD. Intel называет этот атрибут XD-бит.

Поскольку в современных компьютерных системах память разделяется на страницы, имеющие определенные атрибуты, разработчики процессоров добавили ещё один: запрет исполнения кода на странице. То есть, такая страница может быть использована для хранения данных, но не программного кода. При попытке передать управление на такую страницу процессор сформирует особый случай ошибки страницы и программа будет завершена аварийно. Атрибут защиты от исполнения давно присутствовал в других микропроцессорных архитектурах, однако в x86-системах такая защита реализовывалась только на уровне программных сегментов, механизм которых давно не используется современными ОС. Теперь она добавлена ещё и на уровне отдельных страниц.

Современные программы четко разделяют на сегменты кода, данных, неинициализированных данных, а также динамически распределяемую область памяти, которая подразделяется на кучу и программный стек. Если программа написана без ошибок, указатель команд никогда не выйдет за пределы сегментов кода, однако, в результате программных ошибок, управление может быть передано в другие области памяти. При этом процессор перестанет выполнять какие-то запрограммированные действия, а будет выполнять случайную последовательность команд, за которые он будет принимать хранящиеся в этих областях данные, до тех пор, пока не встретит недопустимую последовательность, или попытается выполнить операцию, нарушающую целостность системы, которая вызовет срабатывание системы защиты. В обоих случаях программа завершится аварийно. Также процессор может встретить последовательность, интерпретируемую как команды перехода к уже пройденному адресу. В таком случае процессор войдет в бесконечный цикл, и программа «зависнет», забрав 100 % процессорного времени. Для предотвращения подобных случаев и был введен этот дополнительный атрибут: если некоторая область памяти не предназначена для хранения программного кода, то все её страницы должны помечаться NX-битом, и в случае попытки передать туда управление процессор сформирует особый случай и ОС тут же аварийно завершит программу, сигнализировав выход за пределы сегмента.

Основным мотивом введения этого атрибута было не столько обеспечение быстрой реакции на подобные ошибки, сколько то, что очень часто такие ошибки использовались злоумышленниками для несанкционированного доступа к компьютерам, а также написания вирусов. Появилось огромное количество таких вирусов и червей, использующих уязвимости в распространенных программах.

Один из сценариев атак состоит в том, что воспользовавшись переполнением буфера в программе, специально написанная вредоносная программа может записать некоторый код в область данных уязвимой программы таким образом, что в результате ошибки этот код получит управление и выполнит действия, запрограммированные злоумышленником.



Просмотров: 1798


<<< Страничная память
Защищённый режим >>>