stringtranslate.com

Выполнение произвольного кода

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

Произвольное выполнение кода означает, что если кто-то отправляет специально разработанный набор данных на компьютер, он может заставить его делать все, что захочет. Несмотря на то, что эта конкретная слабость может не вызывать реальных проблем в реальном мире, исследователи обсуждали, предполагает ли это естественную тенденцию компьютеров иметь уязвимости, которые позволяют несанкционированное выполнение кода. [2]

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

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

Методы

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

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

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

Чтобы обойти это, как только злоумышленник может выполнить произвольный код на цели, часто предпринимается попытка эксплойта повышения привилегий , чтобы получить дополнительный контроль. Это может касаться самого ядра или учетной записи, такой как Administrator, SYSTEM или root. С этим расширенным контролем или без него эксплойты имеют потенциал нанести серьезный ущерб или превратить компьютер в зомби — но повышение привилегий помогает скрыть атаку от законного администратора системы.

Примеры

Любители ретрогейминга сумели найти уязвимости в классических видеоиграх, которые позволяют им выполнять произвольный код, обычно используя точную последовательность нажатий кнопок в суперигре с помощью инструмента, чтобы вызвать переполнение буфера , что позволяет им записывать в защищенную память . На Awesome Games Done Quick 2014 группе энтузиастов скоростного прохождения удалось закодировать и запустить версии игр Pong и Snake в копии Super Mario World [12], используя чтение за пределами буфера указателя функции, который указывает на контролируемый пользователем буфер, для выполнения произвольного кода.

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

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

PHP был объектом многочисленных уязвимостей ACE. [15] [16] [17]

9 декабря 2021 года в популярном фреймворке для ведения журналов Log4j была обнаружена уязвимость RCE под названием « Log4Shell » , которая затрагивает многие сервисы, включая iCloud , Minecraft: Java Edition и Steam , и характеризуется как «самая большая и критическая уязвимость последнего десятилетия». [18] [19]

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

Ссылки

  1. ^ Команда KernelCare (25 января 2021 г.). «Атака удаленного выполнения кода: что это такое, как защитить ваши системы». blog.kernelcare.com . Получено 22.09.2021 .
  2. ^ Джонсон, Понтус (2021). «Внутренняя склонность компьютеров к уязвимости? Произвольное выполнение кода в универсальной машине Тьюринга». arXiv : 2105.02124 . {{cite journal}}: Цитировать журнал требует |journal=( помощь )
  3. ^ «Десериализация ненадежных данных». owasp.org .
  4. ^ «Понимание уязвимостей путаницы типов: CVE-2015-0336». microsoft.com . 18 июня 2015 г.
  5. ^ «Эксплуатация CVE-2018-19134: удаленное выполнение кода через путаницу типов в Ghostscript». lgtm.com . 5 февраля 2019 г.
  6. ^ «Выполнение произвольного кода LDD».
  7. ^ Gilreath, William F.; Laplante, Phillip A. (2003-03-31). Архитектура компьютера: минималистская перспектива. Springer Science & Business Media. ISBN 9781402074165.
  8. ^ Рейли, Эдвин Д. (2003). Вехи в компьютерной науке и информационных технологиях . Greenwood Publishing Group. стр. 245. ISBN 9781573565219.
  9. ^ "Tech Insight: Execute Disable Bit (XD-Bit)" (PDF) . Toshiba Polska . 2005. Архивировано из оригинала (PDF) 2018-10-31 . Получено 2018-10-31 .
  10. ^ "AMD has you covered" (PDF) . AMD . 2012. Архивировано из оригинала (PDF) 5 марта 2019 г.
  11. ^ "Удаленное выполнение кода - обзор". Темы ScienceDirect . Получено 2021-12-05 .
  12. ^ Орланд, Кайл (14 января 2014 г.). «Как робот, работающий на эмуляторе, перепрограммировал Super Mario World на лету». Ars Technica . Получено 27 июля 2016 г.
  13. ^ "Уязвимость произвольного выполнения кода Microsoft Windows CVE-2018-8213". Symantec . Архивировано из оригинала 31 октября 2018 г. Получено 31 октября 2018 г.
  14. ^ «Уязвимость в 7-Zip может привести к произвольному выполнению кода». New York State Office of Information Technology Services . Архивировано из оригинала 2021-08-15 . Получено 2018-10-31 .
  15. ^ "NVD - CVE-2017-12934". nvd.nist.gov . Получено 2018-10-31 .
  16. ^ «Файловая операция, вызванная десериализацией через оболочку потока «phar://»» (PDF) . Secarma Labs . 2018.
  17. ^ "NVD - CVE-2017-12933". nvd.nist.gov . Получено 2018-10-31 .
  18. ^ «Zeroday в повсеместном инструменте Log4j представляет серьезную угрозу для Интернета». Ars Technica . 9 декабря 2021 г. Получено 11 декабря 2021 г.
  19. ^ «Недавно обнаруженная уязвимость программного обеспечения — «самая критическая уязвимость последнего десятилетия»». The Guardian . 11 декабря 2021 г. . Получено 11 декабря 2021 г. .