Švedski raziskovalec odkril 54 let staro programsko ranljivost

Matej Huš

12. maj 2021 ob 22:02:15

V bazah znanih ranljivosti od minulega tedna najdemo vnos CVE-2021-32471, ki je postavil rekord za najstarejšo odkrito ranljivost. Švedski raziskovalec Pontus Johnson s Kraljevega inštituta za tehnologijo (KTH) v Stockholmu je odkril ranljivost v implementaciji Turingovega stroja iz leta 1967 Marvina Minskega. To predstavlja najstarejšo odkrito ranljivost, saj tiči v 54 let starem "programu".

Rekord je seveda bolj zanimivost kot kaj praktično uporabnega, saj te implementacije univerzalnega Turingovega stroja v praksi nikjer ne uporabljamo. Turingov stroj je algoritemska posplošitev, abstraktni sistem, ki ne obstaja. Zamislil si ga je britanski matematik Alan Turing leta 1936 in predstavlja (neizvedljiv) model do skrajnosti poenostavljenega računalnika z neskončnim spominom, ki zmore računati. S Turingovim strojem lahko simuliramo vsak (končni) računski algoritem.

Marvin Minskys, ki velja za pionirja umetne inteligence, je leta 1967 objavil znamenito knjigo Computation: Finite and Infinite Machines, v kateri je definiral implementacijo univerzalnega Turingovega stroja (simulacija v Pythonu). Johnson je sedaj ugotovil, da je v njen ranljivost, ki niti ni zelo skrita. Če stroj bere ustrezno manipulirane podatke, ga lahko pretentamo v izvajanje poljubnih ukazov. S tem je Johnson v resnici postavil dva rekorda. To ni le najstarejša ranljivost, temveč tudi v najbolj preprostem računalniku. Podrobnosti je zapisal v znanstvenem članku.

Takšna odkritja niso pomembna neposredno, temveč nas zanimajo posredne implikacije. Ali to pomeni, da je vsako upanje na popolnoma vodotesno kodo obsojeno na propad, če odkrivamo luknje tudi v najenostavnejših programih?