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



Компьютеры - PaX - Описание

15 мая 2011


Оглавление:
1. PaX
2. Описание



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

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

Чаще всего, вред, наносимый DoS атакой, состоит в потере времени и ресурсов из-за отказа функциональности атакуемого объекта. Однако, в данном случае, PaX предотвращает нелегитимный доступ и распространение конфиденциальных данных системы вследствие атаки, а не препятствует самому нападению. Между тем, прямые последствия DoS также весьма нежелательны, особенно для систем, где критичен любой перерыв в обслуживании, и проникновение взломщика наносит заведомо меньший ущерб, чем прекращение функционирования сервисов. В этом случае, PaX будет не самым хорошим решением, но тем не менее, это довольно таки приемлемый метод защиты важной информации.

Многие ошибки разработчиков приводят к неправильному обращению их программ к памяти. Это предоставляет гипотетическую возможность заставить программу выполнять то, что она не должна делать по замыслу. Цель PaX — не нахождение и исправление подобных уязвимостей, а, скорее, предотвращение их использования атакующими приложениями. Последствия ошибок будут сведены к минимуму — выполнение программы будет попросту прервано, что с точки зрения PaX лучше, чем её скомпрометированный функционал.

Следует понимать, что PaX напрямую не предотвращает переполнение буфера, а лишь пытается эффективно пресечь потенциальные, связанные с ним, ошибки разработчиков, которые могут привести, например, к предоставлению непредусмотренного доступа к системе. Однако, существуют такие разработки, как Stack-Smashing Protector и StackGuard, которые пытаются определить именно само переполнение буфера и остановить выполнение компрометирующих систему программ. Такая методика называется stack-smashing protection. Она ориентирована на непосредственное блокирование прямых атак, в случае, если это возможно. Хотя и PaX, и stack-smashing protection, по сути, преследуют одну цель, они не взаимозаменяемы. Однако, внедрение обеих технологий, безусловно, сделает систему более защищённой. Некоторые дистрибутивы Linux уже имеют в своём составе оба компонента сразу.

По состоянию на октябрь 2006 года PaX ещё не включён в основную ветку ядра, так как разработчики патча полагают, что он все ещё недостаточно готов. Но, несмотря на то, что PaX успешно используется на многих архитектурах, он всё ещё остаётся лишь частично, или вообще не поддерживаемым, в ряде других. Так PaX успешно применяется на IA-32, AMD64, IA-64, Alpha, PA-RISC, 32 и 64 bit MIPS, PowerPC и SPARC.



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


<<< Open Source Development Labs
Phoronix >>>