Računalniški virus v biološki DNK
Matej Huš
14. avg 2017 ob 10:47:06
Raziskovalci z Univerze Washington v Seattlu so pokazali, da je mogoče v zaporedje DNK shraniti zlonamerno programsko opremo, ki se zažene na računalniku, ki sekvencira to zaporedje. Čeprav je ranljivost za zdaj še zelo teoretične narave in v praksi ni veliko možnosti, da bi jo zlorabili, so uspeli izdelati delujoč prikaz koncepta. Z napredkom raziskav o shranjevanju podatkov v DNK bo namreč tudi možnost zapisovanje računalniških virusov v DNK postala realen problem. V preteklosti so na primer znanstveniki v DNK že uspeli vgraditi sliko.
Koncept je v resnici zelo preprost. DNK je molekula, ki jo sestavljata dve verigi, ki sta zviti v vijačnico in sta zaradi vodikovih vezi med komplementarnimi baznimi pari zelo stabilni. V verigi nastopajo štiri baze (adenin, citozin, gvanin in timin), torej lahko z eno bazo zapišemo dva bita informacije. Sekvenciranje je postopek analize verige DNK, s katerim preberemo in zapišemo zaporedje baz, kakor nastopa v verigi. Te podatke programska oprema za sekvenciranje običajno zapiše v datoteko ASCII, kar so raziskovalci uporabili za izvedbo ranljivosti. Toda da so uspeli pripraviti delujočo ranljivosti, so si morali malce pomagati.
Prvi problem je bil že pri sintezi. Računalniška koda lahko vsebuje poljubno zaporedje znakov, medtem ko čisto vsakega DNK v praksi ni možno sintetizirati. Če na kupu preveč ponovitev gvaninov in citozinov, je dvojna vijačnica preveč stabilna in se ne odpre, ker so med tema bazami tri vodikove vezi. Take verige ne moremo podvojiti s klasičnim PCR in tudi ne sekvencirati. Če je gvaninov in citozinov premalo, pa je vijačnica nestabilna, ker sta med timini in adenozini le dve vodikovi vezi. Kodo je bilo zato treba napisati tako, da je bila tudi njena prevedba v sistem ACGT biološko smiselna z vidika stabilnosti DNK.
Ko jim je to uspelo, so morali še malo pogoljufati s programom za branje zaporedja baz. Izdelali so si namensko pokvarjeno verzijo, ki je bila občutljiva na prekoračitev predpomnilnika (buffer overflow) in ni uporabljala ASLR. Paziti so morali tudi, da je bil virus napisan zelo kompaktno, saj je branje več kot 300 baznih parov v enem zaporedju v praksi že obremenjeno z napakami in zato nezanesljivo. V 600 bitov so torej stlačili škodljivo programsko opremo, ki je po branju in prekoračitvi predpomnilnika omogoča povezavo programa z zunanjim strežnikom, ki se je povezal in pridobil nadzor nad računalnikom.
Toda na koncu jim je uspelo. Izdelali so DNK, jo sekvencirali in ob branju rezultata se je računalnik povezal v internet na strežnik, ki so ga nadzorovali "napadalci".
Ob tem je treba poudariti, da je tovrstni napad za zdaj še precej oddaljen. Vidimo, da so morali raziskovalci uporabili namerno oslabljeno verzijo programa za branje zaporedja. Toda to ni tako daleč od resnice, saj je veliko znanstvene programske opreme milo rečeno varnostno pomanjkljive. V veliki meri jo pišejo znanstveniki, kjer varnost ni na prvem mestu, temveč funkcionalnost. Veliko računalnikov, ki nadzorujejo raziskovalne stroje, je povezanih v internet in jih uporabljajo različni raziskovalci. Vse to so razlogi, da bo kdaj v prihodnosti napad prek DNK mogoče tudi izvedljiv.