НЕОП слайд
Эта статья нуждается в дополнительных цитатах для проверки . ( январь 2018 г. ) |
В компьютерной безопасности слайд NOP , салазки NOP или пандус NOP — это последовательность инструкций NOP (без операций), предназначенных для «сдвигания» потока выполнения инструкций ЦП к конечному желаемому месту назначения всякий раз, когда программа переходит к адресу памяти в любом месте. слайд.
Этот метод широко используется в программных эксплойтах , где он используется для управления выполнением программы, когда цель инструкции ветвления точно не известна. Другие известные приложения включают стратегии защитного программирования, такие как программирование с учетом EMC.
Хотя слайд NOP будет работать, если он состоит из списка канонических инструкций NOP, наличие такого кода подозрительно и его легко обнаружить автоматически. По этой причине практические слайды NOP часто состоят из неканонических инструкций NOP (таких как перемещение регистра в себя или добавление нулей). [1] ), или инструкций, которые лишь незначительно влияют на состояние программы, что значительно затрудняет их идентификацию.
NOP-салазки — старейший и наиболее широко известный метод использования переполнения буфера стека . [2] Он решает проблему поиска точного адреса буфера за счет эффективного увеличения размера целевой области. Для этого гораздо большие разделы стека повреждаются с помощью недействующей машинной инструкции. В конце предоставленных злоумышленником данных, после пустых инструкций, злоумышленник помещает инструкцию для выполнения относительного перехода к началу буфера, где шелл-код расположен . Этот набор пустых операций называется «NOP-салазками», потому что, если адрес возврата перезаписывается каким-либо адресом в неактивной области буфера, выполнение будет «скользить» вниз по пустым операциям до тех пор, пока не будет перенаправляется на реальный вредоносный код переходом в конце. Этот метод требует, чтобы злоумышленник угадал, где в стеке находится NOP-след, а не сравнительно небольшой шеллкод. [3]
Из-за популярности этого метода многие поставщики систем предотвращения вторжений будут искать этот шаблон бездействующих машинных инструкций в попытке обнаружить используемый шеллкод. Важно отметить, что NOP-салазки не обязательно содержат только традиционные безоперационные машинные инструкции; любая инструкция, которая не искажает состояние машины до такой степени, что шелл-код не запускается, может использоваться вместо аппаратного бездействия. В результате для авторов эксплойтов стало обычной практикой составлять неактивный слейд из случайно выбранных инструкций, которые не оказывают реального влияния на выполнение шеллкода. [4]
Хотя этот метод значительно повышает шансы на успех атаки, он не лишен проблем. Эксплойты, использующие эту технику, по-прежнему должны полагаться на некоторую удачу, позволяющую угадать смещения в стеке, находящиеся в области NOP-салазки. [5] Неверное предположение обычно приводит к сбою целевой программы и может предупредить системного администратора о действиях злоумышленника. Другая проблема заключается в том, что салазкам NOP требуется гораздо больший объем памяти для хранения салазок NOP, достаточно больших, чтобы их можно было использовать. Это может стать проблемой, если выделенный размер затронутого буфера слишком мал, а текущая глубина стека мала (т. е. от конца текущего кадра стека до начала стека не так уж много места). Несмотря на свои проблемы, NOP-салазки часто являются единственным методом, который будет работать для данной платформы, среды или ситуации, и как таковой по-прежнему остается важным методом.
Энтропия . слайда NOP зависит от наложенных на него ограничений Если можно определить, что определенные регистры не используются (то есть, перед следующим использованием им будет установлено известное значение), в слайде NOP могут использоваться инструкции, которые произвольно манипулируют ими. Кроме того, если выравнивание как слайда NOP, так и указателя инструкции является детерминированным, многобайтовые инструкции могут использоваться в слайде NOP без учета результатов невыровненного выполнения. Если входные данные, обеспечивающие вектор атаки, в который должны быть введены слайд NOP и полезные данные, фильтруются (например, принимаются только печатные символы), поле возможных инструкций для включения ограничено. Хотя инструкции, являющиеся частью расширения архитектуры (например, SSE ), часто могут не иметь отношения к состоянию программы, их нельзя использовать в слайде NOP, предназначенном для компьютера, на котором это расширение не поддерживается.
Обнаружение
[ редактировать ]Существует множество методов обнаружения присутствия слайдов NOP в памяти. Например, в 2005 году греческие исследователи обнаружили, что их можно легко обнаружить, проверив, содержит ли образ памяти длинную последовательность байтов, в которой каждое начальное смещение внутри последовательности является допустимым и приводит выполнение к одному и тому же месту. [6]
См. также
[ редактировать ]- Распыление кучи - метод, дополняющий использование слайдов NOP.
- Переполнение буфера § Техника салазок NOP
- Проверка памяти на червяков
Ссылки
[ редактировать ]- ^ corelanc0d3r (31 декабря 2011 г.). «Учебное пособие по написанию эксплойтов, часть 11: Распыление кучи» . Команда Корелана. Архивировано из оригинала 25 апреля 2015 г. Проверено 15 января 2014 г.
{{cite web}}
: CS1 maint: числовые имена: список авторов ( ссылка ) - ^ Вангелис (08 декабря 2004 г.). «Эксплойт переполнения стека: введение в классическую и расширенную технику переполнения» . Wowhacker через Neworder. Архивировано из оригинала (текста) 18 августа 2007 г.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ Балабан, Мурат. «Раскрытие тайны о переполнении буфера» (текст) . Enderunix.org.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ Акритидис, П.; Маркатос, Евангелос П.; Полихронакис, М.; Анагностакис, Костас Д. (2005). «STRIDE: обнаружение полиморфных салазок посредством анализа последовательности инструкций» (PDF) . Материалы 20-й Международной конференции по информационной безопасности IFIP (IFIP/SEC 2005) . Международная конференция ИФИП по информационной безопасности. Архивировано из оригинала (PDF) 1 сентября 2012 г. Проверено 4 марта 2012 г.
- ^ Кляйн, Кристиан (сентябрь 2004 г.). «Переполнение буфера» (PDF) . Архивировано из оригинала (PDF) 28 сентября 2007 г.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ Акритидис, П.; Маркатос, Е.П.; Полихронакис, М.; Анагностакис, К. (2005). «STRIDE: обнаружение полиморфных салазок посредством анализа последовательности инструкций». Безопасность и конфиденциальность в эпоху повсеместных вычислений . ИФИП: Достижения в области информационных и коммуникационных технологий. Том. 181. С. 375–391. дои : 10.1007/0-387-25660-1_25 . ISBN 978-0-387-25658-0 .
{{cite book}}
:|journal=
игнорируется ( помогите )
Внешние ссылки
[ редактировать ]- Использование слайда NOP для компрометации системы
- Невилл, Алан (20 марта 2010 г.). «Журналы IDS в криминалистических расследованиях: анализ скомпрометированной приманки» (PDF) . Архивировано из оригинала (PDF) 31 марта 2012 г. Проверено 3 сентября 2011 г.