Удалённое выполнение кода (RCE) — класс уязвимостей, который позволяет злоумышленнику по сети запускать свои команды и программы на чужом компьютере или сервере.
Как работает RCE
RCE возникает, когда программа начинает исполнять данные, которые пришли от атакующего. Типичные причины:
- ошибки работы с памятью — переполнение буфера, use-after-free;
- небезопасная десериализация;
- инъекции команд и шаблонов;
- загрузка файлов, которые попадают в исполняемый каталог.
Атакующему достаточно отправить специально сформированный запрос, файл или сетевой пакет — и уязвимый сервис выполнит полезную нагрузку со своими правами.
Хрестоматийные примеры:
- EternalBlue (MS17-010) — уязвимость в SMB, на которой в 2017 году распространялся WannaCry;
- Log4Shell (CVE-2021-44228) в библиотеке Log4j. Её запускала одна строка, попавшая в журнал, и она получила максимальную оценку CVSS — 10.0.
Почему RCE так опасна
Это самый опасный тип уязвимостей: ошибка в коде превращается в полный контроль над машиной. Особенно опасны RCE, которым не нужны ни вход в систему, ни действия пользователя (pre-auth, zero-click). Их эксплуатируют автоматически по всему интернету уже через несколько часов после публикации.
Через RCE в VPN-шлюзах, межсетевых экранах, почтовых и веб-серверах злоумышленники устанавливают бэкдоры, запускают программы-вымогатели и собирают ботнеты.
Как защититься
- В первую очередь обновляйте системы, доступные из интернета. Следите за каталогом CISA KEV (Known Exploited Vulnerabilities).
- Ведите реестр ПО и библиотек, чтобы быстро найти, где используется уязвимый компонент.
- Запускайте сервисы с минимальными правами, изолируйте их в контейнерах и отдельных сегментах сети.
- Проверяйте входные данные, не используйте небезопасные десериализаторы. Новый код пишите на языках с безопасной работой с памятью.