Выполнение произвольного кода - Arbitrary code execution - Wikipedia

В компьютерная безопасность, выполнение произвольного кода (ACE) - это способность злоумышленника выполнять произвольные команды или код на целевой машине или в целевой машине. процесс.[нужна цитата ] An выполнение произвольного кода уязвимость это недостаток безопасности в программном или аппаратном обеспечении, допускающий выполнение произвольного кода. Программа, предназначенная для использования такой уязвимости, называется выполнение произвольного кода эксплуатировать. Возможность инициировать выполнение произвольного кода по сети (особенно через глобальную сеть, такую ​​как Интернет) часто называют удаленное выполнение кода (RCE).

Типы уязвимости

Существует ряд классов уязвимостей, которые могут привести к тому, что злоумышленник сможет выполнять произвольные команды или код.

Методы

Выполнение произвольного кода обычно достигается за счет контроля над указатель инструкции (например, прыжок или ответвляться ) бегущего процесс. Указатель инструкции указывает на следующую инструкцию в процессе, которая будет выполнена. Таким образом, контроль над значением указателя инструкции дает контроль над тем, какая инструкция будет выполняться следующей. Чтобы выполнить произвольный код, многие эксплойты ввести код в процесс (например, отправив ему ввод, который сохраняется в входной буфер в баран ) и используйте уязвимость, чтобы изменить указатель инструкции, чтобы он указывал на внедренный код. Затем введенный код будет автоматически выполнен. Этот тип атак использует тот факт, что большинство компьютеров (которые используют Архитектура фон Неймана ) не делайте общего различия между код и данные,[5][6] чтобы вредоносный код можно было замаскировать под безвредные входные данные. Многие новые процессоры имеют механизмы, которые усложняют эту задачу, например бит без выполнения.[7][8]

В сочетании с повышением привилегий

Сам по себе эксплойт выполнения произвольного кода даст злоумышленнику то же самое привилегии как целевой процесс, который уязвим.[нужна цитата ] Например, если использовать недостаток в веб-браузер, злоумышленник может действовать как пользователь, выполняя такие действия, как изменение файлов на персональном компьютере или доступ к банковской информации, но не сможет выполнять действия на системном уровне (если соответствующий пользователь также не имеет такого доступа).

Чтобы обойти это, как только злоумышленник может выполнить произвольный код на цели, часто предпринимается попытка повышение привилегий эксплуатируйте, чтобы получить дополнительный контроль. Это может включать ядро сама или учетная запись, такая как Администратор, СИСТЕМА или root. С этим расширенным контролем или без него эксплойты могут нанести серьезный ущерб или превратить компьютер в зомби - но повышение привилегий помогает скрыть атаку от легитимного администратора системы.

Такое объединение эксплойтов называется цепочкой эксплойтов.[нужна цитата ] Произвольное удаленное выполнение кода с уязвимостью повышения привилегий в широко распространенном программном обеспечении считается наиболее серьезным классом компьютерной уязвимости.[нужна цитата ]

Примеры

Ретрогейминг любителям удалось найти уязвимости в классических видеоиграх, которые позволяют им выполнять произвольный код, обычно используя точную последовательность нажатия кнопок, чтобы вызвать переполнение буфера, позволяя им писать на защищенная память. В Замечательные игры, сделанные быстро 2014, группа спидраннинг энтузиастам удалось кодировать и запускать версии игр Понг и Змея в копии Супер Марио Мир[9] используя переполнение буфера для записи произвольного кода в объем памяти.

12 июня 2018 г. исследователь безопасности Жан-Ив Авенар из Mozilla обнаружил уязвимость ACE в Windows 10.[10]

1 мая 2018 г. исследователь безопасности обнаружил уязвимость ACE в 7-молния файловый архиватор.[11]

PHP был предметом многочисленных уязвимостей ACE.[12][13][14]

Смотрите также

Рекомендации

  1. ^ «Десериализация ненадежных данных». owasp.org.
  2. ^ «Основные сведения об уязвимостях путаницы типов: CVE-2015-0336». microsoft.com.
  3. ^ «Использование CVE-2018-19134: удаленное выполнение кода из-за путаницы типов в Ghostscript». lgtm.com.
  4. ^ https://catonmat.net/ldd-arbitrary-code-execution
  5. ^ Гилрет, Уильям Ф .; Лапланте, Филипп А. (31 марта 2003 г.). Компьютерная архитектура: минималистская перспектива. Springer Science & Business Media. ISBN  9781402074165.
  6. ^ Рейли, Эдвин Д. (2003). Вехи компьютерных наук и информационных технологий. Издательская группа "Гринвуд". п.245. ISBN  9781573565219.
  7. ^ "Tech Insight: Execute Disable Bit (XD-Bit)" (PDF). toshiba.pl. 2005.
  8. ^ "AMD вас прикрыла" (PDF). amd.com. 2012.
  9. ^ Орланд, Кайл (14 января 2014 г.). «Как робот с эмулятором перепрограммировал Super Mario World на лету». arstechnica.com. Получено 27 июля 2016.
  10. ^ "Уязвимость Microsoft Windows CVE-2018-8213, связанная с выполнением произвольного кода | Symantec". www.symantec.com. Получено 2018-10-31.
  11. ^ «Уязвимость в 7-Zip делает возможным выполнение произвольного кода». Управление информационных технологий штата Нью-Йорк. Получено 2018-10-31.
  12. ^ "NVD - CVE-2017-12934". nvd.nist.gov. Получено 2018-10-31.
  13. ^ "Десериализация, вызванная операцией с файлом через" phar: // "Stream Wrapper" (PDF). Secarma Labs. 2018.
  14. ^ "NVD - CVE-2017-12933". nvd.nist.gov. Получено 2018-10-31.