, как это нужно при переполнении буфера, а архитектурная особенность Windows, которая называется LPC (Local/Lightweight Procedure Call). Это механизм взаимодействия процессов, который позволяет, в том числе, передавать данные методом разделяемой памяти. Хотя этот механизм имеет возможность определять списки доступа, но в сервисах Windows эта возможность практически не используется. В результате, даже процессы с минимальными полномочиями могут разделить свою память с системными сервисами и вставить в него свой вредоносный код. После этого нужно только вмешаться в последовательность вычислений, чтобы передать управление на вредоносный код. В качестве примера Керрудо привел два эксплойта, которые эксплуатировали дыры механизмах COM (MS05-012) и TAPI (MS05-040). Предложенная методика исполнения вредоносного кода более универсальна и позволяет обойти известные на текущий момент механизмы защиты от переполнения буфера.

Поделитесь материалом с коллегами и друзьями