Однако мы бы не стали применять наши данные по "разгону" ко всем доступным процессорам. Как и во времена Pentium 166, вам потребуется немного удачи.

Мы также решили добавить результаты тестов процессора на 2,6 ГГц в наши диаграммы.


Материнская плата Gigabyte согласилась поменять множитель.

DEP: Data Execution Protection



Примерно так будет выглядеть опция Microsoft Data Execution Prevention - предотвращение выполнения данных. Программы, несовместимые с технологией DEP, придётся заносить в этот список вручную.

64-битные процессоры AMD обеспечивают дополнительную функцию безопасности. Все процессоры в линейке AMD64, включающую в себя Athlon64, Athlon FX и Opteron, имеют дополнительный флаг для маркировки отдельных областей памяти как "не исполняемые". Эта функция помогает предотвратить выполнение вредоносного программного кода. Кстати, иногда подобную маркировку называют флагом NX (no execute - не исполнять).

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

Долгожданный Service Pack 2 (пакет обновления) до Windows XP был отложен до лета 2004. Помимо различных "заплаток" он добавляет технологию DEP (Data Execution Prevention) к операционной системе.

Следовательно, владельцы процессора AMD64 смогут активировать технологию защиты памяти, скачав пакет обновления - задержите дыхание - объёмом 360 Мбайт (версия: Beta 2028).

Переполнение буфера: возможные риски

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

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

Переполнение буфера с помощью ввода чрезмерных значений ещё не означает больших проблем, поскольку перезаписываются только области смежных данных - программа находится в каком-либо другом месте памяти. Как же проникнуть в программу?

Всё становится опаснее при переполнении так называемых локальных переменных. Они записываются в области памяти, называемой стеком, вместе с адресом возврата выполняемой программы. Как только хакер сможет найти способ переполнения буфера, он может изменить адрес возврата по своему желанию - и выполнить какой-либо код без ведома пользователя.

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

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

Для предотвращения подобных сценариев необходимо блокировать определённые области памяти (адрес возврата), если есть опасность переполнения буфера. Но Microsoft ещё предстоит выйти на рынок с решением этой проблемы. Тот же Solaris или Linux уже давно используют NX.

Тесты производительности: не всё гладко

MSI K8T Master MS-9130: проблемы с SYSmark 2004
 

Copyright @ by Lehach, 2009