10 éves a vírus
Érdekes évforduló, ha egyáltalán lehet annak nevezni. Az ember felkapja rá a fejét, elmereng, lehet-e ilyen határt szabni, nosztalgiázik, hogy tényleg akkor kezdődött-e, milyen gépek is voltak akkor. Egy dolog azonban biztos: sokunknak pontosan ez az időszak jelenti a számítógépezés egyfajta hőskorát, a C64, az első PC-k, az assembly programozás, a fapados oprendszerek, a bitfaragás korszaka.
És ekkor tényleg megmozdult valami...
Első emlékképem egy C64-es programhoz kapcsolódik: ő bizony azt hirdette magáról, hogy víruskereső. Kissé unalmasan működött, negyedórányi lemezzümmögtetés után kiírta, hogy "Not found". Nem semmi, ez már tudhat valamit – gondoltam magamban, és egy időre el is felejtettem az egészet.
A következő eset egy iskolai XT volt. Rengetegen nyúzták, fő feladata egy repülőgép-szimulátor futtatásában merült ki (szimuláció = 15 poligon elmozdítása másodpercenként). Egy Michelangelo vírus zavarta meg az idillt: ezután a gép 2 perc alatt töltötte be a Norton Commandert.
Mai szemmel nézve hihetetlen és főleg mulatságos, hogy egy ilyen egyszerű programocska mekkora gondot okozott, és milyen hatalmas méreteket öltött a terjedése. Jellemző volt, hogy bárhonnan, bárkitől is érkezett néhány lemez, szinte biztos, hogy Mich is lapult rajtuk. Ekkoriban minden laikus tudta, hogy "A számítógépvírus" = Michelangelo.
Nem kellett sok idő, hogy a vírusgyártó iparosok termelékenysége meglóduljon. A bolgár és orosz import vírusokon edződő kisdiákok egyre jobb hazai termékekkel rukkoltak elő. Aki nem foglalkozik a témával, annak valószínűleg kiábrándítóan hat, hogy a misztikus függöny mögött (észrevétlenül terjedő, "okos" és "gonosz" programok) tényleg csak annyi van, hogy otthon buheráló srácok így tanultak meg programozni. Nagyon ritka az a vírus, amely szakember műve.
Még a hőskorban vagyunk, a vírusvadásznak a legtöbb érzékére szüksége van a túléléshez:
– éleslátás (editorban az EXE file, és olyan ismerős bájtkutyulék van a végén),
– hallás (többet klattyan a vinyó az NC betöltésénél),
– tapintás (egy érdekes vírus használta a koprocesszort, amely akkoriban külön foglalatban volt, és melegedéssel jelezte a vírust),
– csalhatatlan ösztön (olvasni akartam írásvédett lemezről, és Write error).
A termékskála egyre bővült: file-vírus, bootvírus, CEB vírus, klaszter vírus, ANSI vírus, trójai programok, vírusgeneráló programok, makróvírus...
Kezdetben vala a kódolatlan vírus. Ekkoriban a keresők, amelyek büszkén hirdették magukról, hogy több száz vírust ismernek, és fontoskodó feliratokkal kápráztatták el a szegény tudatlan felhasználót, lényegében szövegminta-keresést végeztek. Azóta nagyot változott a világ: a fejlődés második szakaszában a vírusok egyre elképesztőbb trükköket vonultattak fel, például a polimorfizmust. Minden fertőzésnél megújul a vírus. Egy véletlenszám-generátor eldönti, hogy melyik kódoló algoritmus kerüljön bele az új példányba, azt is többféleképpen meg tudja valósítani, változó, hogy mely regiszterek vesznek részt a kódolásban, üres utasításokat kever bele véletlenszerűen, de úgy, hogy azok ne zavarják meg a kódolás adatfolyamát...
Ehhez a keresőknek is igazodniuk kellett: szekvenciakereséssel már nem lehetett boldogulni. Annál inkább egy processzoremulátorral, amely a vizsgálandó programot (vírust) futtatja addig, amíg az ki nem kódolja saját magát.
Egy jó vírus elbújik: a memóriában is kódolva van a lényegi része, a fertőzött file-ok tartalmát és méretét meghamisítja (az eredeti állapotot mutatja).
Van, amelyik átkódolja a gépen tárolt adatokat. Figyel minden olvasási műveletet, a felhasználónak visszakódolja, és ha szakszerűtlenül irtják le, akkor minden adat elvész.
A rengeteg új trükk hihetetlen mértékű gányolással járt: Nem ritka az a vírus, amely (a memóriában levő antivírus lecselezéséhez) utasításonként hajtja végre a 21-es DOS megszakítást, és ha úgy gondolja, hogy már tutira a DOS kódjában van, akkor beleír egy JMP-t (a kernel kódba!!).
Speciális esetek kihasználása, függés az aktuális DOS verziótól, és egyéb inkompatibilitási források jellemzik az egyre modernebbé váló vírusokat. Tökéletes vírus nincs, mint ahogy tökéletes kereső sincs. Gondoljatok bele: hogyan lehet algoritmikusan eldönteni, hogy két vírusos próba-file ugyanazzal van fertőzve, avagy nem? Egyszerűnek tűnik, de nagyon nem az.
Manapság a hangsúly nagy mértékben eltolódott a makróvírusok felé, a régi vírusok nagy része már nem is működik az egyre csillogóbb-villogóbb oprendszerekkel. Ezt akár a fejlődés harmadik szakaszának is vehetjük. Szép új világ, amelyben nincs helye buherátoroknak, csak vizuális objektumorientált magas szintű nyelveken farigcsáló, dokumentáló és algoritmustervező kollegáknak. Vírusok pedig ugyanúgy vannak, terjednek, rombolnak, trükköznek, fittyet hányva minden elméletnek.
A vírusok hasonló irányban fejlődnek, mint általában a többi program. Néhány klikkelés egy virtuális világban, és a böngészőnk épp aktuális biztonsági hibájának köszönhetően kissé átíródott az autoexec.bat, például.
Azt gondolhatnánk, hogy ma már egyáltalán nem feeling vírusokat bütykölni, tekintve a fejlődés ilyetén elmozdulását. Azonban az Internet, mint a terjedés egyik új dimenziója, rengeteg érdekes problémát felvet. A legérdekesebb, hogy akár egy szellemes és kellő naivitással megáldott "Küldj tovább ezerszer" típusú levelecske is képes vírusként viselkedni.... Tisztán látszik, hogy egy egész évtized fejlődésének csúcspontjára értünk.
Innen már csak lefele vezet út.
bereg