Кіріспе

Компьютерлік қауіпсіздікте кез келген кодты орындау (ACE) – шабуылшының мақсатты машинада немесе мақсатты процесте кез келген командаларды немесе шабуылшының таңдауы бойынша кодты іске қосу қабілеті. Кез келген кодты орындау осалдығы – бағдарламалық немесе аппараттық құралда кез келген кодты орындауға мүмкіндік беретін қауіпсіздік кемшілігі. Мұндай осалдықты пайдалануға арналған бағдарлама кез келген кодты орындау эксплойты деп аталады. Желі арқылы (әсіресе Интернет сияқты кең аумақты желі арқылы) кез келген кодты орындауды іске қосу мүмкіндігі жиі қашықтықтан кодты орындау (RCE немесе RCX) деп аталады. Кез келген кодты орындау, егер біреу компьютерге арнайы дайындалған деректер жинағын жіберсе, оны қалағандай әрекет етуге мәжбүрлей алатынын білдіреді. Бұл нақты осалдық шынайы әлемде нақты проблемалар тудырмаса да, зерттеушілер компьютерлердің рұқсатсыз кодты орындауға мүмкіндік беретін осалдықтарға бейімділігі бар ма деген мәселені талқылайды.

Әдістер

Өз бетінше кодты орындау көбінесе жұмыс істеп тұрған процестің нұсқау көрсеткішіне (мысалы, секіру немесе тармақталу) бақылау арқылы жүзеге асырылады. Нұсқау көрсеткіші процесте орындалатын келесі нұсқауға сілтеме жасайды. Сондықтан, нұсқау көрсеткішінің мәнін басқару, келесі орындалатын нұсқауды басқаруға мүмкіндік береді. Кез келген кодты орындау үшін көптеген зиянды бағдарламалар процеске кодты енгізеді (мысалы, RAM-дегі кіріс буферінде сақталатын кіріс деректерін жіберу арқылы) және нұсқау көрсеткішін өзгертіп, оны енгізілген кодқа бағыттау үшін осалдықты пайдаланады. Содан кейін енгізілген код автоматты түрде орындалады. Бұл шабуыл түрі көптеген компьютерлердің (Von Neumann архитектурасын қолданатындардың) код пен деректер арасында нақты айырма жасамайтынынан пайдаланады, сондықтан зиянды код зиянсыз кіріс деректері ретінде жасырылуы мүмкін. Көптеген жаңа процессорларда бұл мүмкіндікті қиындататын механизмдер бар, мысалы, орындауға тыйым салынған бит.

Арнаулылықтарды арттырумен біріктіру

Өзінен, кездейсоқ кодты орындау қауіпсіздігін бұзу шабуылшыға әлсіз нысана процесінің құқықтарымен тең құқықтар береді. Мысалы, егер веб-браузердегі кемшілікті пайдаланса, шабуылшы пайдаланушы ретінде әрекет ете алады, жеке компьютердегі файлдарды өзгерту сияқты немесе банк ақпаратына қол жеткізу сияқты шараларды орындай алады, бірақ жүйелік деңгейдегі әрекеттерді орындай алмайды (егер сол пайдаланушының да осы құқығы болмаса). Осы шектеуді айналып өту үшін, шабуылшы нысанада кездейсоқ кодты орындағаннан кейін, көбінесе құқықтарды арттыру арқылы қосымша бақылауға ие болуға тырысады. Бұл ядроның өзіне немесе әкімші, ЖҮЙЕ немесе түбір сияқты тіркелгіге қатысты болуы мүмкін. Осы арттырылған бақылаумен немесе оның болмауымен, қауіпсіздікті бұзулар ауыр зиян келтіруге немесе компьютерді зомбиге айналдыруға әкелуі мүмкін, бірақ құқықтарды арттыру шабуылды жүйенің заңды әкімшісінен жасыруға көмектеседі.

Мысалдар

Ретро ойындармен әуесқойлар классикалық бейне ойындарда кез келген кодты орындауға мүмкіндік беретін осалдықтарды тапты, әдетте, құралмен көмектесілген супер ойын кезінде түймелерді басудың нақты тізбегін пайдаланып, буфердің толып кетуіне себеп болады, бұл оларға қорғалған жадқа жазуға мүмкіндік береді. Awesome Games Done Quick 2014 көрмесінде жылдам өтуге құмар ойыншылардың бір тобы Pong және Snake ойындарының нұсқаларын Super Mario World көшірмесінде кодтап, іске қоса алды. Олар мұны буфердің толып кетуін пайдаланып, жадқа кез келген кодты жазу арқылы жасады. 2018 жылдың 12 маусымында босниялық қауіпсіздік зерттеушісі Жан Ив Авенард Mozilla компаниясынан Windows 10 жүйесінде ACE осалдығын тапты. 2018 жылдың 1 мамырында қауіпсіздік зерттеушісі 7 Zip файлдық архивінде ACE осалдығын тапты. PHP көптеген ACE осалдықтарының нысанасы болды. 2021 жылдың 9 желтоқсанында танымал Log4j жүйелік тіркегішінде "Log4Shell" деп аталатын RCE осалдығы табылды, ол iCloud, Minecraft: Java Edition және Steam сияқты көптеген қызметтерге әсер етті және "соңғы он жылдың ең ірі, ең маңызды осалдығы" деп сипатталды.