Віддалене виконання коду (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).
- Ведіть реєстр ПЗ і бібліотек, щоб швидко знайти, де використовується вразливий компонент.
- Запускайте сервіси з мінімальними правами, ізолюйте їх у контейнерах і окремих сегментах мережі.
- Перевіряйте вхідні дані, не використовуйте небезпечні десеріалізатори. Новий код пишіть мовами з безпечною роботою з пам’яттю.