Внедрение кода
Что такое Внедрение кода?
Внедрение кодаКласс уязвимостей, при которых данные от злоумышленника интерпретируются и выполняются приложением как код, что ведёт к произвольному выполнению.
Внедрение кода — широкое семейство уязвимостей, при которых недоверенный ввод попадает туда, где приложение позже трактует его как программный код, конфигурацию или разметку, в результате чего среда выполнения исполняет его. Конкретные виды включают eval-инъекции в JavaScript и Python, серверные шаблонные инъекции, инъекции выражений (OGNL, SpEL), небезопасную десериализацию с цепочками gadget'ов и динамическую загрузку классов из пользовательских данных. Успешная эксплуатация обычно даёт удалённое выполнение кода с правами приложения, что часто становится трамплином к компрометации хоста или кластера. Защита включает запрет на построение кода из ввода, параметризованные API, ограничение динамических возможностей и применение принципа минимальных привилегий с песочницей.
● Примеры
- 01
eval(request.body.expr) выполняет управляемый атакующим JavaScript в Node-сервисе.
- 02
Java-приложение вызывает ScriptEngine.eval над пользовательским скриптом.
● Частые вопросы
Что такое Внедрение кода?
Класс уязвимостей, при которых данные от злоумышленника интерпретируются и выполняются приложением как код, что ведёт к произвольному выполнению. Относится к категории Атаки и угрозы в кибербезопасности.
Что означает Внедрение кода?
Класс уязвимостей, при которых данные от злоумышленника интерпретируются и выполняются приложением как код, что ведёт к произвольному выполнению.
Как защититься от Внедрение кода?
Защита от Внедрение кода обычно сочетает технические меры и операционные практики, как описано в определении выше.
Какие есть другие названия Внедрение кода?
Распространённые альтернативные названия: Удалённое выполнение кода, Произвольное выполнение кода.