A környező világ vírusai újabb és újabb gazdaszervezetek megfertőzésével képesek önmaguk sokszorosítására és a fennmaradásra, így nem véletlen, hogy a hasonló logikával terjedő, biztonsági réseket kihasználó számítógépes programok megjelenésekor, valamikor az 1980-as évek elején nem is kellett sokat gondolkozni, hogy a malware ezen fajtáját hogyan nevezzék el.
Azóta a számítógépes vírusok a mindennapjaink részévé váltak, olyannyira, hogy a DNS, mint adattároló koncepciójának terjedésével, természetesen már arra is volt példa, hogy számítógépes vírusok kódját fordították le speciális algoritmusokkal, és ültették DNS-be. Ilyenkor persze a DNS-visszaolvasása után még a dekódolás lépése, illetve a program elindítása is elválaszt attól, hogy a gépünk a vírus áldozatává váljon, ami azért kellő biztonságot ad, ilyenfajta adatátviteli kísérletekhez.
De vajon lenne-e arra lehetőség, hogy a DNS olvasása már önmagában is spontán olyan folyamatokat indítson el, amivel valaki átveheti uralmát a szekvenátorhoz kapcsolt számítógépes rendszer felett? A látszólag abszurd kérdésre most elegáns és praktikus választ adtak a University of Washington kutatói.
Így történhet egy DNS-alapú stack-overflow támadás a szekvenátorra kapcsolt számítógép ellen. Forrás: University of Washington
A lényegi eleme a folyamatnak, hogy DNS-szekvenátorokból kiömlő információt feldolgozó és elemző programok írásakor egyáltalán nem lebegett senkinek a szeme előtt, hogy itt valaha, valaki majd ezen keresztül megpróbálna betörni a számítógépre, éppen ezért viszonylag sok olyan biztonsági rés van ezekben a scriptekben, amelyek megfelelő technikával kihasználhatók.
Az egyik legelemibb ilyen támadási felület, hogy ezek a programok kifejezetten sérülékenyek veremtúlcsordulásos (stack overflow) támadásokkal szemben, mert születésükkor a technika még viszonylag rövid DNS-szekvenciák (néhány tucattól max. 200 bázispárig) létrehozását tudta biztosítani és ilyen típusú információk feldolgozására készültek. Márpedig az ilyen esetekben, ha adott hosszúságú információra számítanak csak a programozók, a memóriában egy fix méretű tömböt foglalnak le számára, de ennek révén egyben biztonsági rizikót hoznak létre. Ugyanis, ha ilyen esetekben a vártnál nagyobb információcsomag érkezik, akkor a lefoglalt tömbön túl a memória egyébb részei is átíródhatnak - bizonyos esetekben azok is, amelyek már a program futásához kellenek. Megfelelően meghatározva, hogy mi legyen a bevitt információcsomag így a számítógép egy teljesen más program futtatására vehető rá, pusztán az adatbevitel révén.
Jelen esetben, az egyszerűbb kivitel kedvéért a kutatók egy extra veremtúlcsordulásos biztonsági rést tettek a DNS szekvenciát beolvasó és feldolgozó egyik programba (vagyis itt nem a már létező, potenciális biztonsági rések valamelyikét használták ki), majd megalkották azt a vírus-scriptet, aminek a bevitelével (elméletileg) átvehetik az irányítást (ebben az esetben, kicsit tisztelgésként a terület klasszikusai előtt, a Smashing The Stack For Fun And Profit kódot futtaták le).
A (ki)használt fqzcomp nevű program bitenként tárolja a DNS négy bázispárjának információit (az A-t 00-ként, a C-t 01-ként, a G-t 10-ként és a T-t 11-ként), ami lehetővé teszi, hogy ha a megtevezett rövid vírust binárisra lefordították, gyorsan át lehessen fordítani DNS-szekvenciára. Végül így egy 176 bázispár hosszú szekvenciát kaptak, amit kevesebb, mint 100 dollárért le is szállított nekik az egyik DNS-szintetizálásra szakosodott cég.
A szintetikus DNS-t betéve a szekvenátorba, kijött a szekvencia, aminek a feldolgozásakor a (módosított) fqzcomp annak rendje és módja szerint átadta az irányítást a számítógép felett.
Amiért izgalmas mindez, mert ez az első bizonyítéka annak, hogy mindez nem sci-fi, hanem létező biztonsági rés. Még ha jelen esetben az egyszerűség kedvéért módosítani is kellett egy programot, látható, hogy ez a fajta támadás fizikailag megvalósítható. És mivel az újabb szekvenátorok egyre hosszabb és hosszabb szekvenciákat tudnak kiköpni magukból, csak idő kérdése, hogy a nem módosított programok is szembenézzenek a veremtúlcsordulás problémájával. Most még van idő erre felkészülni és nem igen kétséges, hogy innentől kezdve ez is szempont lesz.
Persze felmerül a kérdés, hogy miért akarna valaki így betörni egy számítógépre? Két eshetőség adja magát szinte azonnal: vagy, hogy például tetthely színhelyéről származó minták beszennyezésével meggátolják, hogy az inkrimináló bizonyíték megszülessen (a számítógépre behatolva meg tudják hamisítani a szekvenciaadatokat), vagy, hogy egy nagyobb adatbázishoz hozzáférve, valaki másnak a személyes genomadatait megszerezhessék. A genomszekvencia értelmeszerűen szenzitív, személyes információ kellene legyen, és illetéktelen kezekbe kerülve akár zsarolásra is felhasználható, vagy gyógyszerérzékenységi profilok meghatározásával akár fizikai támadások megtervezésére is jó lehet.
Épp ezért bármennyire is szórakoztató maga a projekt, a veszély, amire felhívja a figyelmet, nagyon is valós. Így talán itt lesz annak is az ideje, hogy a DNS szintetizálásra szakosodott cégek annak az ellenőrzésén túl, hogy nem valami halálos patogén létrehozásához akarja a megrendelő a szekvenciát használni, azt is megnézik, hogy adott esetben nem egy DNS-alapú számítógépvírust hoznak létre.
(via The Atlantic)
[A poszt eredetileg a ScienceMeetup blogjában jelent meg.]