Kas yra RCE ir kuo pavojingos tokios atakos?

Autorius: Paskelbta

Trumpai: RCE, arba Remote Code Execution, reiškia nuotolinį kodo vykdymą kompiuteryje arba serveryje. Kalbant apie atakas, tai situacija, kai įsibrovėlis pasinaudoja klaida, kad įrenginys vykdytų jo nurodymus be savininko sutikimo. Tai rimta grėsmė, tačiau žalos mastas priklauso, be kita ko, nuo užpultos programos teisių — RCE ne visada reiškia, kad iš karto perimama visos sistemos kontrolė.

Ką praktiškai reiškia nuotolinis kodo vykdymas?

Kodas — tai kompiuterio vykdomos instrukcijos. Paprastai jas paleidžiate sąmoningai, pavyzdžiui, atverdami programą. RCE atakos atveju instrukcijas pateikia užpuolikas, o pažeidžiama programa jas vykdo ne pagal savo paskirtį.

Tai galima palyginti su dokumentų priėmimo langeliu. Darbuotojas turėtų perskaityti pateiktus duomenis, tačiau užuot tai daręs pradeda vykdyti formoje surašytus nurodymus. Panaši problema kyla, kai programa iš išorės gautą turinį palaiko instrukcija, o ne paprastais duomenimis.

Sąvoka „RCE spraga“ apibūdina klaidą, leidžiančią taip veikti. Tačiau pats RCE nusako galimybę vykdyti kodą arba tokio vykdymo rezultatą, o ne vieną konkrečią klaidą. Tą patį rezultatą gali sukelti daug skirtingų klaidų.

„Nuotolinis“ reiškia, kad užpuolikui nereikia būti prie įrenginio. Ataka gali pasiekti įrenginį internetu, vietiniu tinklu arba per specialiai parengtą failą. Ne kiekviena spraga galima pasinaudoti neprisijungus prie paskyros ir be naudotojo veiksmų — tai priklauso nuo konkrečios spragos išnaudojimo sąlygų.

Kaip gali įvykti RCE ataka?

RCE gali lemti netinkamas duomenų apdorojimas, nesaugus failų tvarkymas arba atminties valdymo mechanizmų klaidos. Pažeidžiamumas gali slypėti pačioje programoje arba jos naudojamoje bibliotekoje, tai yra paruoštame programinės įrangos komponente.

Įsivaizduokite internetinę parduotuvę, kurioje klientai prie užsakymo įkelia nuotraukas. Serveris automatiškai sukuria jų miniatiūras. Jei nuotraukų apdorojimo įrankyje yra atitinkama spraga, specialiai parengtas failas gali lemti, kad užuot tiesiog pakeitus vaizdo dydį bus įvykdytas užpuoliko kodas.

Tokiu atveju parduotuvės savininkui nereikia nieko atverti savo nešiojamajame kompiuteryje. Užpuolamas failą apdorojantis serveris. Vien tai, kad forma priima tik nuotraukas, saugumo negarantuoja: svarbus ir tikrasis failo turinys bei jo apdorojimo būdas.

Kitas kelias — komandų įterpimas, kai pateikiami duomenys, kuriuos programa klaidingai prijungia prie sistemoje vykdomos komandos. Tai vienas iš mechanizmų, galinčių lemti RCE, o ne visų tokių pažeidžiamumų sinonimas.

Ką užpuolikas gali padaryti pasinaudojęs RCE?

Užpuoliko kodas paprastai vykdomas su užpulto proceso, tai yra veikiančios programos, teisėmis. Jei programa gali skaityti tam tikrus failus arba prisijungti prie duomenų bazės, įsibrovėlis gali įgyti panašias galimybes.

Galimi padariniai:

RCE savaime nesuteikia administratoriaus teisių. Programos izoliavimas ir ribotos teisės gali sumažinti žalą. Tačiau užpuolikas gali mėginti pasinaudoti kitomis klaidomis, kad gautų platesnę prieigą.

Todėl į RCE pažeidžiamumus žiūrima labai rimtai. Ypač skubiai reikia reaguoti, kai pažeidžiama paslauga pasiekiama internetu, o klaidai išnaudoti nereikia patvirtinti tapatybės. Tiksliai vertinant riziką būtina remtis gamintojo pranešime aprašytomis sąlygomis, o ne vien santrumpa RCE.

Kaip sumažinti riziką ir įvertinti įspėjimą apie RCE?

Svarbiausia — atnaujinti sistemą, programas, papildinius ir bibliotekas. Vieno komponento atnaujinimas automatiškai nepašalina kitų komponentų pažeidžiamumų. Svetainės savininkas taip pat turėtų žinoti, kuriuos komponentus atnaujina pats, o už kuriuos atsako prieglobos paslaugų teikėjas.

Apribojus programos teises sumažėja galimos atakos mastas. Įkeliamas nuotraukas apdorojančiai programai nereikėtų be būtinybės suteikti prieigos prie visų parduotuvės duomenų. Taip pat administravimo skydelį, kuris neprivalo būti viešai pasiekiamas, galima padaryti prieinamą tik kontroliuojamu būdu.

Kai pasirodo įspėjimas apie RCE jūsų naudojamame produkte:

  1. Oficialiame gamintojo pranešime patikrinkite, kurioms versijoms ir konfigūracijoms būdinga ši problema.
  2. Nustatykite, ar naudojate pažeidžiamą komponentą ir ar jis pasiekiamas galimam užpuolikui.
  3. Įdiekite pataisą arba pritaikykite gamintojo nurodytą laikiną apsaugos priemonę. Jei pataisos nėra, apsvarstykite galimybę išjungti pažeidžiamą funkciją.
  4. Jei buvo galimybė įvykdyti ataką, patikrinkite, ar nėra neteisėtos veiklos pėdsakų. Vien atnaujinimas nepašalina ankstesnio įsilaužimo padarinių.

Atsarginės kopijos padeda atkurti duomenis, tačiau neapsaugo nuo jų vagystės. Užkarda ar antivirusinė programa taip pat neatstoja pažeidžiamumo pašalinimo.

Jei administruojate svetainę ir nežinote jos komponentų versijų, pirmiausia jas surašykite ir išsiaiškinkite, kas atsakingas už atnaujinimus. Taip bendrą įspėjimą apie RCE galėsite paversti konkrečiu sprendimu: ką patikrinti, atnaujinti arba laikinai išjungti.

Taip pat skaitykite

Sužinokite, kaip PHP-FPM apdoroja PHP užklausas, kuo skiriasi nuo žiniatinklio serverio ir kaip derinti procesus prie srauto bei išteklių.
Susipažinkite su BIND – atvirojo kodo DNS serverio programine įranga, jos paskirtimi ir atvejais, kai verta ją diegti patiems.
Sužinokite, ką reiškia Lenkijos REGON registras ir numeris, kuo jis skiriasi nuo NIP bei KRS ir kaip patikrinti įmonės duomenis.