stringtranslate.com

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

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

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

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

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

Методы

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

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

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

Чтобы обойти эту проблему, как только злоумышленник может выполнить произвольный код на цели, он часто пытается использовать эксплойт повышения привилегий , чтобы получить дополнительный контроль. Это может включать в себя само ядро ​​или учетную запись, такую ​​как администратор, система или 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 сентября 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. ^ Гилрит, Уильям Ф.; Лапланте, Филип А. (31 марта 2003 г.). Компьютерная архитектура: минималистский взгляд. Springer Science & Business Media. ISBN 9781402074165.
  8. ^ Рейли, Эдвин Д. (2003). Вехи в области компьютерных наук и информационных технологий . Издательская группа Гринвуд. п. 245. ИСБН 9781573565219.
  9. ^ «Tech Insight: выполнить бит отключения (XD-Bit)» (PDF) . Тошиба Польша . 2005. Архивировано из оригинала (PDF) 31 октября 2018 г. Проверено 31 октября 2018 г.
  10. ^ «AMD поможет вам» (PDF) . АМД . 2012. Архивировано из оригинала (PDF) 5 марта 2019 года.
  11. ^ «Удаленное выполнение кода — обзор» . Темы ScienceDirect . Проверено 5 декабря 2021 г.
  12. Орланд, Кайл (14 января 2014 г.). «Как робот на эмуляторе перепрограммировал Super Mario World на лету». Арс Техника . Проверено 27 июля 2016 г.
  13. ^ «Уязвимость Microsoft Windows CVE-2018-8213, связанная с выполнением произвольного кода» . Симантек . Архивировано из оригинала 31 октября 2018 года . Проверено 31 октября 2018 г.
  14. ^ «Уязвимость в 7-Zip может позволить выполнить произвольный код» . Управление информационных технологий штата Нью-Йорк . Архивировано из оригинала 15 августа 2021 г. Проверено 31 октября 2018 г.
  15. ^ «ПНВ — CVE-2017-12934» . nvd.nist.gov . Проверено 31 октября 2018 г.
  16. ^ «Операция с файлом вызвала десериализацию через оболочку потока «phar://»» (PDF) . Секарма Лаборатория . 2018.
  17. ^ «ПНВ — CVE-2017-12933» . nvd.nist.gov . Проверено 31 октября 2018 г.
  18. ^ «Zeroday в повсеместном инструменте Log4j представляет серьезную угрозу для Интернета» . Арс Техника . 9 декабря 2021 . Проверено 11 декабря 2021 г.
  19. ^ «Недавно обнаруженный недостаток программного обеспечения« самая критическая уязвимость последнего десятилетия »» . Хранитель . 11 декабря 2021 г. Проверено 11 декабря 2021 г.