Расширения ISA

Архитектура набора команд Intel (ISA) продолжает развиваться, наращивать функциональность и возможности пользователей, создавая основу для успешного взаимодействия отраслевых технологий.

Intel® Memory Protection Extensions (Intel® MPX)

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

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

How to Protect Apps from Buffer Overflow Attacks Learn how to enhance security for software on Windows® 10 using Intel® Memory Protection Extensions.
Storing and loading bounds
Intel® Memory Protection Extensions Enabling Guide This document describes Intel® Memory Protection Extensions (Intel® MPX), its motivation, and programming model. It also describes the enabling requirements and the current status of enabling in the supported OSs: Linux* and Windows* and compilers: Intel® C++ Compiler, GCC, and Visual C++*. Finally...
Exposing Processor Features to Dynamic Languages Intel® for its part invests countless hours and billions of transistors to add features in our silicon products which will speed up people's lives. If only they knew how to take advantage of it! Part of our job in dynamic languages is what I call "putting the cookies on the bottom shelf". Make this...
Pointer Checker in ICC: requires dynamic linking of runtime libraries
10.07.2014
The -check-pointers switch, which enables the Pointer Checker feature available in Intel® Parallel Studio XE 2016, cannot be used with the -static flag on Linux* (/MT on Windows*) which forces all Intel libraries to be linked statically. The reason is that, by design, the Pointer Checker library “...
Using Intel® SDE's chip-check feature Intel® SDE includes a software validation mechanism to restrict executed instructions to a particular microprocessor. This is intended to be a helpful diagnostic tool for use when deploying new software. Use chip check when you want to make sure that your program is not using instruction features...
Using Intel® MPX with the Intel® Software Development Emulator Intel has announced a new technology called Intel® Memory Protection Extensions (Intel® MPX). To find out more, check out the Instruction Set Extensions web pages.  Once you know about Intel MPX, you may want to experiment with Intel® SDE. This article explains how to run Intel MPX with Intel SDE...
Intel® Memory Protection Extensions (Intel® MPX) Design Considerations   My very first exposure to buffer overflow was with Morris worm in 80’s and since then, we collectively have tried to get a good handle on buffer overflow as it impacts both security and robustness of C/C++ software. Needless to say, we have made significant progress with addressing buffer...
Intel® Memory Protection Extensions (Intel® MPX) Runtime Support Enabling an application to use Intel MPX will generally not require source code updates but there is some runtime code needed in order to make use of Intel MPX.  For most applications this runtime support will be available by linking to a library supplied by the compiler or possibly it will come...
Intel® Memory Protection Extensions (Intel® MPX) support in the GNU toolchain Invalid memory access problem is commonly found in many C/C++ programs and leads to time consuming debugging, program instability and vulnerability. Many attacks exploit software bugs related to inappropriate memory accesses caused by buffer overflow (or buffer overruns). Existing set of...