älä kokeile tätä kotona: yksinkertaisen viruksen luominen Rubylla
tiedon aikakausi on antanut meille hämmästyttävän tekniikan: käsikäyttöiset supertietokoneet kasvojentunnistuksella, roskikset joilla voi luoda kauppalistoja, virtuaalitodellisuus, 146-tuumaiset taulutelevisiot jne.
tietokoneet ovat olennainen osa mitä tahansa liiketoimintaa, kotia, koulua. Tämän teknologian myötä nykyteknologian toteutuksessa on kuitenkin olemassa synkempi puoli, kuten virukset.
biologisessa mielessä virus on pieni infektoiva aine, joka koostuu proteiinikerrokseen kapseloidusta geneettisestä materiaalista, joka voi monistua vain isäntäsolun sisällä. Se, miten virukset lisääntyvät, on hermostuttavaa. Ne lisäävät geneettisen informaationsa isäntäsolun geneettiseen materiaaliin, ja isäntäsolun replikaation aikana syntyy myös materiaalia uusien virusmolekyylien luomiseksi. Lopulta virusmolekyylejä on instantioitu niin paljon,että solu ei pysty käsittelemään joukkoa ja räjähtää. Vapautuneet virusmolekyylit leijuvat sitten pois valmiina tartuttamaan uusia soluja. Vaikka virukset sisältävät geneettistä tietoa, voivat lisääntyä ja kehittyä luonnonvalinnan kautta, koska niiltä puuttuu muita elämän ominaisuuksia, viruksista käytetään yleensä nimitystä replikaattorit eli ”eliöt elämän reunalla”. Kumpikaan elävä tai kuollut, replikoivat ja kylvävät tuhoa ilman syytä, ne ovat tosielämän vastine zombeille.
tietokonevirukset
kuten niiden biologinen kaima, tietokonevirukset koostuvat koodista ja voivat monistua vain, kun kyseistä koodia ajetaan. Jotta virus leviäisi, käyttäjien pitäisi siirtää saastuneita tiedostoja tai ohjelmia muihin tietokonejärjestelmiin. Kun tiedosto/ohjelma on ajettu, virus voi käyttää muita tietokoneen tiedostoja, jotka pahimmassa tapauksessa voivat poistaa kaikki käyttäjän tietokoneen tiedostot. Jos käyttäjä esimerkiksi lataisi ja toistaisi kyseenalaisen videon saastuneelta verkkosivustolta, virus voisi tartuttaa kaikki tietokoneen videot. Ja sitten, jos tämä sama huolimaton käyttäjä lähettäisi videon tiedostostaan pahaa aavistamattomalle ystävälleen, kun tämä ystävä Lataa ja toistaa saastuneen videon, se vaikuttaa samalla tavalla hänen tietokoneensa videoihin. Nämä virukset voivat aiheuttaa valtavia rahasummia, ajan tuhlausta ja stressiä kaikille tartunnan saaneille osapuolille. Vaikka alla olevassa kuvassa on esimerkki blasterista, tietokoneviruksesta hieman poikkeavasta tietokonemadosta, se näyttää, miten tietoturvan aukkoja voidaan hyödyntää.
niin, miksi haluaisin oppia luomaan viruksen, jos se aiheuttaa niin paljon tuskaa muille? Sun Tzun teoksen The Art of War kolmannessa luvussa hän kirjoitti, että tuntien sekä itsesi että vihollisesi, voit voittaa sata taistelua vaarantamatta itseäsi. Alan Turingin tulkinta Enigmasta, saksalaisesta salakirjoituskoneesta, jota käytettiin pääasiassa toisessa maailmansodassa, olisi voinut lyhentää sotaa kahdella vuodella ja pelastaa yli kymmenen miljoonaa ihmishenkeä. Tietokoneemme ovat henkilökohtaisten tietojen ja resurssien aarreaittoja, joiden pitäisi olla yksityisiä ja suojattuja. Oppimalla lisää viruksen luomisprosessista, voin ymmärtää enemmän siitä, miten virukset leviävät ja miten virustorjuntaohjelmisto toimii.
Perustietokoneviruksen luominen
aluksi viruksen pitäisi pystyä tunnistamaan, mitkä tiedostot ovat saastuneita ja mitkä eivät. Teemme tämän tarkistamalla tiedoston ensimmäisen rivin, ja jos se ei vastaa virus_top-tunnistetta, viruskoodi tunnistaa tiedoston tiedostoksi, joka ei ole saanut tartuntaa. Jos tiedosto ei ole vielä saanut tartuntaa, viruksen pitäisi voida upottaa tiedostoon/ohjelmaan. Virus tarvitsee myös lopputunnisteen, jotta viruskoodi leviää, ilman saastuneen tiedoston sisältöä.
kun tiedosto on valittu tartutettavaksi, virus’ Code uudelleennimetään tiedostoksi ’temp.rb”.
virus_contents-muuttuja on tyhjä merkkijono, jonka täytämme viruskoodilla. Tämän jälkeen virus upottaa koodinsa tiedostoon, jossa on alkuperäisen tiedoston nimi, jotta tartunnan saaneen tietokoneen käyttäjä ei epäile minkään olevan vialla. Koodi sijaiselta.rb-tiedosto liitetään sitten saastuneeseen tiedostoon ja poistetaan, ja virus on levinnyt.