Що таке RCE: як працює віддалене виконання коду
Автор: Редакція Domeny.ForSale Опубліковано
Коротко: RCE, тобто Remote Code Execution, означає віддалене виконання коду на комп’ютері або сервері. У контексті атак ідеться про ситуацію, коли зловмисник використовує помилку, щоб пристрій виконав його інструкції без згоди власника. Це серйозна загроза, але масштаб шкоди залежить, зокрема, від прав доступу атакованої програми — RCE не завжди означає негайне захоплення всієї системи.
Що означає віддалене виконання коду на практиці?
Код — це інструкції, які виконує комп’ютер. Зазвичай ви запускаєте їх свідомо, наприклад відкриваючи програму. Під час атаки RCE інструкції надходять від зловмисника, а вразливий застосунок виконує їх усупереч своєму призначенню.
Це можна порівняти з віконцем приймання анкет. Працівник має читати надані дані, але натомість починає виконувати накази, записані в анкеті. Подібна проблема виникає, коли програма сприймає отриманий ззовні вміст як інструкцію, а не як звичайні дані.
Термін «вразливість RCE» позначає помилку, яка уможливлює таку дію. Проте саме RCE описує можливість або результат виконання коду, а не одну конкретну помилку. До того самого результату можуть призводити різні помилки.
«Віддалене» означає, що зловмиснику не потрібно перебувати біля пристрою. Атака може відбутися через інтернет, локальну мережу або спеціально підготовлений файл. Не кожну вразливість можна використати без входу в систему й без участі користувача — це залежить від умов її використання.
Як може статися атака RCE?
RCE може бути наслідком помилок обробки даних, небезпечної обробки файлів або недоліків у механізмах керування пам’яттю. Вразливість може міститися як у самому застосунку, так і в бібліотеці, яку він використовує, — готовому компоненті програмного забезпечення.
Уявіть інтернет-магазин, у якому клієнти завантажують фотографії до замовлення. Сервер автоматично створює їхні мініатюри. Якщо інструмент обробки фотографій має відповідну вразливість, спеціально підготовлений файл може спричинити виконання коду зловмисника замість звичайної зміни розміру зображення.
За такого сценарію власнику магазину не потрібно нічого відкривати на своєму ноутбуці. Атаки зазнає сервер, який обробляє файл. Сам факт, що форма приймає лише фотографії, не гарантує безпеки: значення мають також фактичний вміст файлу та спосіб його обробки.
Інший шлях — ін’єкція команд, тобто передавання даних, які застосунок помилково додає до інструкції, що виконується в системі. Це один із механізмів, які призводять до RCE, а не синонім усіх таких вразливостей.
Що зловмисник може зробити, скориставшись RCE?
Код зловмисника зазвичай виконується з правами атакованого процесу, тобто запущеної програми. Якщо застосунок може читати певні файли або підключатися до бази даних, зловмисник може отримати такі самі можливості.
Можливі наслідки:
- читання даних клієнтів, конфігураційних файлів і секретних даних доступу;
- зміна вмісту сайту або роботи застосунку;
- встановлення шкідливого програмного забезпечення;
- видалення або шифрування доступних даних;
- використання сервера для подальших атак.
RCE не означає автоматичного отримання прав адміністратора. Ізоляція застосунку й обмежені права доступу можуть зменшити шкоду. Проте зловмисник може спробувати використати інші помилки, щоб отримати ширший доступ.
Саме тому до вразливостей RCE ставляться дуже серйозно. Особливо невідкладного реагування потребує ситуація, коли вразливий сервіс доступний з інтернету, а використання помилки не потребує автентифікації. Точна оцінка має спиратися на умови, описані в повідомленні виробника, а не лише на саму абревіатуру RCE.
Як зменшити ризик і перевірити попередження про RCE?
Основа захисту — оновлення системи, застосунків, плагінів і бібліотек. Оновлення одного компонента не усуває автоматично вразливостей в інших. Власник сайту також має знати, які компоненти він оновлює сам, а за які відповідає хостинг-провайдер.
Обмеження прав застосунку зменшує масштаб можливої атаки. Програма, що обробляє завантажені фотографії, не повинна без потреби мати доступ до всіх даних магазину. Так само до адміністративної панелі, яка не має бути загальнодоступною, можна дозволити лише контрольований доступ.
Коли з’являється попередження про RCE у продукті, яким ви користуєтеся:
- Перевірте в офіційному повідомленні виробника, яких версій і конфігурацій стосується проблема.
- З’ясуйте, чи використовуєте ви вразливий компонент і чи доступний він потенційному зловмиснику.
- Застосуйте виправлення або тимчасовий захід захисту, рекомендований виробником. Якщо виправлення немає, розгляньте можливість вимкнути вразливу функцію.
- Якщо атака могла відбутися, перевірте, чи є сліди несанкціонованих дій. Саме оновлення не усуває наслідків попереднього зламу.
Резервні копії допомагають відновити дані, але не запобігають їх викраденню. Мережевий екран чи антивірусна програма також не замінюють усунення вразливості.
Якщо ви керуєте сайтом і не знаєте версій його компонентів, почніть зі складання їх переліку та з’ясуйте, хто відповідає за оновлення. Це дасть змогу перейти від загального попередження про RCE до конкретного рішення: що перевірити, оновити або тимчасово вимкнути.
Дивіться також: Що таке DDoS?
