﻿# RCE \(Remote Code Execution\)

RCE — это тип уязвимостей, эксплуатация которых приводит к удалённому запуску скриптов и программ злоумышленника на компьютере жертвы\. RCE является подмножеством [ACE \(Arbitrary Code Execution\)](https://en.wikipedia.org/wiki/Arbitrary_code_execution), не требующим физического доступа злоумышленника к компьютеру\.

Среди уязвимостей, способных привести к RCE, можно выделить следующие: 

1. Небезопасная десериализация\. 
1. Различные инъекции \([SQL\-инъекция](https://pvs-studio.ru/ru/blog/terms/6507/), [OS command инъекция](https://pvs-studio.ru/ru/blog/terms/6547/), LDAP\-инъекция\)\.
1. [Ошибки переполнения буфера](https://pvs-studio.ru/ru/blog/terms/0067/)\.
1. Использование устаревших зависимостей в проекте\. 

Кроме того, к RCE может приводить сложная схема воспроизведения, отдельные компоненты которой могут не представлять опасности\. Подобный пример описан в этой [статье](https://pvs-studio.ru/ru/blog/posts/java/1296/)\. 

Так как злоумышленник может получить полный доступ к системе, RCE считается одной из самых опасных типов уязвимостей, последствия которой могут начинаться от кражи персональных данных и заканчиваться выводом из строя оборудования жертвы\. 

Уменьшение рисков воспроизведения RCE является комплексным подходом, действия которого могут включать:

1. Валидацию пользовательского ввода через экранирование специальных символов и белые списки\. 
1. Регулярные обновления программных компонентов, устраняющих потенциальные уязвимости при их использовании\.
1. Использование средств виртуализации и ограничений прав доступа для предотвращения чтения и записей за пределами выделенной области памяти\.