Jälgede ajamine
Ettevalmistused
Teil on uurimiseks virtuaalmasin, milles toimuva ja toimunu kohta peate võimalikult palju teada saama. Virtuaalmasin on OVA-formaadis, mis tähendab, et see tuleb importida oma VirtualBoxi. Selle saate alla laadida järgnevatest linkidest (sama fail erinevates kohtades, sest osad tudengid kurtsid, et Owncloudiga olevat olnud probleeme, mistõttu laadisin faili koopia üles ka OneDrive):
forensics-2017.ova (owncloud link) või forensics-2017.ova (OneDrive link)
Kahtlase süsteemi uurimisel tuleb alati teha algul täiskoopia ning jätta vähemalt üks koopia muutmata (kõiki uurimistegevusi tuleb toimetada kloonide peal). Praktikumis on meil *.ova
fail esialgseks instantsiks ning selle VirtualBoxi imporditud koopia(d) on uurimiseks ja katsetamiseks.
Importige forensics.ova
oma VirtualBoxi (File
-> Import Applicance
-> Import
), kuid ärge seda kohe käima pange. Alustuseks keelake virtuaalmasina võrku pääs, määrates virtuaalmasina võrgukaardi lahtiühendatuks (Not Attached
). Alles siis võib masina käima panna. Veel kavalam oleks bootida üles mõni olemasolev virtuaalmasin ja haakida uuritav ketas sinna külge ilma sealt programme käivitamata, aga lihtsuse huvides kasutame meie sedasama süsteemi ennast. Tänases praktikumis võite lihtsuse mõttes siiski kasutada ka võrku ühendatud masinat NAT
režiimis.
Ligipääs
Tegu on tundmatu masinaga ja paroole te ei tea. Ubuntu vihjab Linuxile, seega tekitage omale ligipääs:
- Masina käivitamise ajal hoidke all
SHIFT
klahvi, et satuksite ja jääksite boot-menüüsse. - Sealt vajutage Ubuntu kirje peal 'e', minge lõppu kerneli reale (rida algab sõnaga "linux") ning kirjutage rea lõpus oleva
ro text
asemelerw init=/bin/bash
. VajutageF10
bootimiseks. - Masina ülesbootimisel satute root-õigustes käsureale. Kehtestage uus root'i parool:
passwd root
- Sünkroniseerige muutused kettale
sync mount -o remount,ro / reboot -f
- Bootige masin üles ja logige sisse kasutajana root ning enda määratud parooliga.
Esmane uurimine
Alguses tegeleme mittegraafilise kasutajaliidesega. Enne tegevuste juurde asumist on soovitatav muuta klaviatuuri asetus endale sobivaks käsuga.
loadkeys ee
Esmase uurimise tarbeks uurige valdavalt logifaile /var/log
kataloogis. Huvi võib pakkuda näiteks syslog
ja auth.log
. Syslog
sisaldab erinevaid süsteemi kohta käivaid logisid, näiteks võrgu seadistuse muudatusi. auth.log
sisaldab autentimisega seotud logisid.
NB! Linux operatsioonisüsteem roteerib vanu logisid (lisab faili nime lõppu .1
, .2
, jne) ja kustutab neid kui seatud andmemahu piir ette tuleb. Seega uurige ka vanemaid faile. Teid huvitavad tegevused on toimunud mais 2017, millal praktikumis uuritav masin loodud on. Väga vanad logifailid ka pakitakse kokku gzip tarkvaraga (lõppevad .gz
laiendiga).
Logide uurimiseks kasutage käsku less
(juhul kui oskate, siis katsetage ka vim-i). Näiteks uurige /var/log/syslog
sisu.
Üsna pea saab selgeks, et logidest on vaja kuidagi huvipakkuv info eraldada, sest suurt infohulka ei ole võimalik käsitsi läbi vaadata. Abiks on käsk grep
, mis võimaldab otsida faili seest sobilikke märksõnu. Proovige otsida infot tarkvara paigaldamise kohta:
grep -ia "install" /var/log/syslog grep -ia "install" /var/log/syslog.1 zcat /var/log/syslog.2.gz | grep -ia "install"
Eelmiste käskude väljundit saab analüüsida (käsurida kerida) kasutades SHIFT+PG_UP
ja SHIFT+PG_DOWN
klahve
Hakkame nüüd uurima, kes on vastavat masinat kasutanud. Selle jaoks on olemas käsud:
last -F -f /var/log/wtmp last -F -f /var/log/wtmp.1
nägemaks sisselogimiste ajalugu alternatiivsest binaarlogist (wtmp) ja
lastb -F -f /var/log/btmp last -F -f /var/log/btmp.1
nägemaks ebaõnnestunud sisselogimisi.
Eelnevalt mainitud meetodeid kasutades uurige:
- Mis kasutajad on süsteemi viimasel ajal kasutanud?
- Millal lisandus viimane kasutaja ja kes see oli? (vihje: auth.log)
- Kes olid sisse logitud ajahetkel 16. mai 2017 00:10?
- Mis oli sel kellaajal masina enda IP-aadress? (vihje: syslog)
- Arvestus 1: Missugune kasutaja on viimati masinat kasutanud üle võrgu ning missuguselt IP-aadressilt oli ta sisse logitud?
Kui käsu väljund on liiga pikk ning ekraanile ei mahu saab kasutada:
Shift+PageUp Shift+PageDown
et ekraanivaates vastavalt üles ja alla liikuda.
Protsessid
Tutvuge juhendi abil erinevate viisidega protsessitabeli vaatamiseks. Oluline on teada, et kõik protsesside ressursid asuvad kataloogis /proc
. Seega saate kõigepealt leida huvipakkuva protsessi ning siis protsessi id
põhjal /proc
kaustast vaadata näiteks missuguseid faile see protsess kasutab. Kataloogi /proc
kohta on teinud hea illustratsiooni Julia Evans (@b0rk):
Süsteemis jooksvate protsesside kuvamiseks on mitmeid käske. Meie jaoks on olulisemad järgnevad käsud:
top ps auxww pstree ls -l /proc lsof
Juhul kui mõne käsu väljund on liiga pikk, siis tasub kasutada grepi. Näiteks kui on soov leida protsessi nimega "netmap", siis saab kasutada käsku
ps -ef | grep "netmap"
Leidke süsteemist kahtlase nimega protsess:
- Leidke süsteemist protsess, mis end protsessitabelis vale nime alla peidab (vihje: ps -eo cmd,ucmd,pid)
- Uurige, kas see on mõnest paigaldatud pakist (
dpkg -l | grep "pakinimi"
võidpkg -s pakinimi
) - Uurige ilma seda tapmata, mis failid on tal avatud (uurige /proc/<PID>/fd kausta sisu, abiks on ka
lsof
käsk) - Uurige, mis failid sellel protsessil avatud on
- Arvestus 2: Tehke kindlaks, kuidas see end peitev protsess automaatselt käivitati. Selleks uurige
/etc/init
aluseid süsteemselt käivitatavate teenuste faile,/etc/init.d
aluseid käivitusskripte ningatd
ja crond poolt käima pandavate programmide nimekirju (soovitus: kasutage grepi). Vastuses peaks kindlasti olemas olema käsk, mis käivitab ennast varjava protsessi ja lühike seletus selle kohta, mida vastav käsk teeb.
Failide ajatemplid
Jälgede ajamisel ja otsustamisel, kes mida tegi saate uurida failide ajatempleid. Linux ext4
failisüsteem registreerib 3 erinevat aega iga faili kohta: atime
(access time), mtime
(modify time) ja ctime
(change time). Enamasti vaatame linuxi ajatempleid käsuga ls
:
ls -la /etc/passwd ls -la /home/
Kuid teinekord võib olla vajalik vaadata detailsemalt selleks saab kasutada stat
nimelist käsku ja ajatempleid muuta touch
käsuga.
stat /failitee/failinimi touch -a --date="1988-02-15 01:00 +0300" AloPeets.txt
Rohkem infot ajatemplite kohta saab lugeda siit https://www.shellhacks.com/fake-file-access-modify-change-timestamps-linux/ Juhendis olevad käsud päris hästi meie UBUNTU-ga läbi ei saa seega anname teile näidiskäsu aja seadistamiseks.
timedatectl timedatectl set-ntp false timedatectl set-time "1988-02-15 01:55" date
NB! tulenevalt Virtualboxi Guest addition'itest ei õnnestu aega seadistada tulevikku (kaugemale kui RTC).
- Arvestus 3: Looge fail, mille loomise kuupäev vastab teie sünnikuupäevale ja faili nimeks pange enda nimi. Proovige ka
ctime
parameeter ära muuta! Esitage ekraanivaade loodud failist koosstat
käsu väljundiga. - Tehke kindlaks, mis päeval enne masina teie poolt käivitamist viimati muudeti mitmeid faile (vajadusel tehke kahendotsingut päevade arvu järgi). Selleks on soovitav kasutada käsku
find
koos -mtime võtmega, täpsemalt vt. man find. Arvestage päevade arvu juures ka aastat! Alternatiivina võib kasutada võtit -newermt (näiteks find -newermt algkuupäev ! -newermt lõppkuupäev). - Kasutajatel on oma kodukataloogides failid käsurea ajalooga. Leidke üles, mis failis hoitakse käskude ajalugu.
- Leidke ajaloo järgi kasutaja, kes on käinud failisüsteemi mööda ringi nuuskimas ja eri kataloogide sisu uurimas.
- Arvestus 4: Leidke analoogselt teistest punktiga algavatest failidest, missuguseid faile on redigeeritud editoriga vim. Nimetage vähemalt kahte faili, mida on vim abil muudetud. Teie enda poolt vim-ga tehtud muudatused ei lähe arvesse.
Andmete taastamine
Kõigepealt üritame käivitada graafilise kasutajaliidese, sest see on mõnede kasutajate jaoks meelepärasem. Kuna tegu on Linuxi keskkonnaga, siis proovime, kas järgmine käsk toimib:
startx
Selgub, et midagi on kasutajaliidesel viga ja see ei toimi nii nagu me eeldaksime. Põhjus seisneb selles, et Ubuntu 16.04
on kasutajaliideseks Unity ning selle käivitamiseks läheb vaja eraldi käsku. Pange virtuaalmasin seisma "Shut down", parandage (ühendage) Internet ja käivitage see uuesti ning seekord sisestage käsk:
systemctl start lightdm.service
Kui te ei saa masinasse sisse logida, siis muutke kasutaja
parool ära ja proovige uuesti. Kui see on tehtud, siis üritame masinast leida kustutatud faile. Selle jaoks kasutame tarkvara foremost
. Kõigepealt paigaldage tarkvara.
sudo apt update sudo apt install foremost
PS! Veenduge, et teie virtuaalmasinas oleks Internet, et programmi foremost
paigaldus õnnestuks.
PS2! graafilises kasutajaliideses saate klaviatuuri paigutust muuta käsuga
setxkbmap ee
Tarkvara foremost
käivitamisel peate parameetritena ette andma partitsioonifaili, milles otsingut teostatakse.
mkdir kustutatud cd kustutatud sudo foremost -i /dev/sdb1
- Kuhu
foremost
tarkvara salvestab leitud failid? - kuidas neile graafilises keskkonnas ligi pääseda?
Arvestus 5: Leidke 50MB suuruselt kettalt /dev/sdb1
kustutatud failid. Avage failid ning tehke nendest ekraanitõmmis nii, et näha oleks avatud failide sisu kui ka teie nimi. Esitage lahenduseks vastav ekraanitõmmis.
Lisaks
Boonusülesanne: Logifailidest on midagi ära kustutatud. Leidke üles, mis logifaile on modifitseeritud ning tuvastage, mis ajavahemiku kohta käivad logid on kustutatud. Kindlasti tuleb kirjutada, kuidas vastuseni jõuti.
- Kui aega jääb, ühendage arvuti võrku (ühendage Virtualboxist liides host-only networki asemel NAT või Bridged võrku) ning paigaldage chkrootkit pakk:
apt-get update && apt-get install chkrootkit
Lugege manuali, uurige mida see teeb ning skännige selle abil süsteemi - kas leiate midagi huvitavat?
Mida tavaliselt veel uuritakse
- Brauseri ajalugu
- Failid prügikastis
- Kas mälupulgaga on arvuti juures käidud
- Mis võrkudes arvuti käinud on
Tagasiside
Kune tegu on viimase praktikumiga, siis palume anda semestri jooksul toimunud praktikumide kohta tagasisidet, sest siis osakame järgmise aasta jaoks materjale täiendada.
Tagasiside on anonüümne ja tagasiside vormi leiate järgneva lingi abil: tagasiside ankeet.
Praktikumi ülesanded
Praktikumi ülesannete lahendamine annab kaks punkti. Praktikumi ülesanne peab olema esitatud hiljemalt 31. mai (kaasa arvatud).
Praktikumi arvestuseks tuleb vastata järgmistele küsimusele:
- Missugune kasutaja on viimati masinat kasutanud üle võrgu ning missuguselt IP-aadressilt ta sisse logitud oli?
- Kirjutage, kuidas end peitev protsess automaatselt käivitati. Selleks uurige /etc/init aluseid süsteemselt käivitatavate teenuste faile, /etc/init.d aluseid käivitusskripte ning atd ja crond poolt käima pandavate programmide nimekirju. Vastuses peaks kindlasti olemas olema käsk, mis käivitab ennast varjava protsessi ja lühike seletus selle kohta mida vastav käsk teeb.
- Looge fail mille loomise kuupäev vastab teie sünnikuupäevale ja faili nimeks pange enda nimi. Proovige ka
ctime
parameeter ära muuta! Esitage ekraanivaade loodud failist koosstat
käsu väljundiga. - Leidke teistest punktiga failidest, missuguseid faile on redigeeritud editoriga vim. Nimetaga vähemalt kahte faili, mida on vim abil muudetud. Arvesse ei lähe teie enda poolt vim-ga tehtud muudatused.
- Leidke 50MB suuruselt kettalt kustutatud failid. Avage failid ning tehke nendest ekraanitõmmis nii, et näha oleks avatud failide sisu kui ka teie nimi. Esitage lahenduseks vastav ekraanitõmmis.
- Boonusülesande korrektse lahenduse eest saab 0.5 boonuspunkti.
Koduülesanne:
Käesoleva koduse ülesande lahendamine annab kaks
- 2 punkti. Lahendus tuleb esitada hiljemalt 31. maiks (hilinenud lahendusi -50%
võtame vastu kuni 2. juuni).
Windows 10 ja paljud teised operatsioonisüsteemid salvestavad regulaarselt kasutaja tegevusi. Valdav enamik Andmeturve aine kuulajatest kasutavad igapäevaselt Windows operatsioonisüsteemi ja seega on küsimused ja vihjed nende lahendamiseks katsetatud operatsioonisüsteemiga Windows 10 education
. Samas võite kasutada küsimustele vastamiseks ka mõnda muud operatsioonisüsteemi (MacOS, Windows 7), aga siis peate vastused leidma manuaalselt või leidma vastuste otsimiseks sobiliku tarkvara.
Antud praktikumi koduseks ülesandeks on uurida enda isiklikku arvutit (võib kasutada ka virtuaalmasinat) ja vastata järgmistele küsimustele: (iga vastus annab 0.2p
ja nimekirjast peaksite valima nii palju, et kokku saaksite vähemalt 2p
jagu vastuseid. Siiski kokku võib selle ülesande eest teenida maksimaalse mitte rohkem kui kaks punkti
):
- Millal ja millised kasutajad teie arvutit kasutasid?
- Kuvada arvutis viimasena käivitatud faile. (Recent)
- Enamik programme omab eraldi viimati avatud failide nimekirja. Vali ise programm ja kuva programmi poolt salvestatud viimaste failide nimekirja.
- Milline kaust teie arvutis (v.a. C:\) võtab kõige rohkem ruumi kaasa arvatud selle alamkaustad? (
WinDirStat
) - Näha arvutisse salvestatud Wi-Fi paroole (levinud olukord hostelites ja hotellides, kus ollakse nõus sisestama Wi-Fi parool sinu seadmesse aga mitte seda sinuga jagama).
- Millal ja millist Wi-Fi võrku teie arvuti viimati kasutas?
- Näha
SHIFT
+DEL
klahvikombinatsiooniga kustutatud faile. - Millal ja milline USB andmekandja arvuti taha ühendati?
- Millal viimati süsteemi kellaaega muudeti?
- Millal ja (millise faili) jaoks viimati arvutiga ID-kaarti kasutati? (Vihje: ID kaardi jaoks on eraldi programmid
Prefetch
nimekirjas) - Millal kasutaja viimati veebilehitseja käivitas?
- Kuvada veebilehitseja salvestatud piltide ajalugu. (
cache
) - Kuvada veebilehitsejasse salvestatud kasutajatunnuseid ja paroole.
- Näha kasutaja viimaseid internetiotsinguid populaarseimates otsingumootorites ja veebilehitsejates.
- Näha milliseid veebilehti kasutaja viimase 24h jooksul incognito/private/Inprivate režiimis külastas? (vihje:
DNS cache
) - Kuvada litsentseeritud tarkvarade (näiteks MS Office, Windows ise) litsentsi võtmeid (
product key
). - Vabalt valitud muu huvitav info Operatsioonisüsteemi kasutamise ajaloo kohta ehk peab sobima valdkonda jälgede ajamine (forensics). Kes, mida, millal ja kuidas tegi uuritava arvutiga :) - 0.4p
Lahenduseks esitage iga küsimuse kohta pilt, millel on selgelt näha millise tarkvara (või käsuga) antud info saadi. Vastuse rida või kirje peab oleva esile tõstetud muust pildil olevast infost.
Vihjed:
- Antud ülesanne on keskmisest mahukam ning seega ei tasu seda jätta viimase õhtu peale. Enamik vastused on võimalik leida Windows masinas
NirSoft
tarkvarapaketi erinevate programmidega: http://www.nirsoft.net/utils/index.html. Teie ülesanne on leida nimistust sobivprogramm
, seekäivitada
ja tulemus pildina salvestada. NB! uusim Windows viirusetõrjetarkvara märgib osanirsoft
programme pahavaraks, seega nirsoft kasutamine isiklikus arvutis ei ole soovitatud (kasutage virtuaalmasinat). Virtuaalmasinaks võib kasutadaAndmeturve Windows XP
virtuaalmasinat või alla laadida Microsoft ametlikWindows 10
testmasin https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/ lehelt. - Et virtuaalamsina pildid oleksid huvitavamad tehke vajadusel käsitsi tegevusi läbi, et ajaloos oleks vastav info mille kirjeid otsite.
- Kui vastus sisaldab tundlikke andmeid (näiteks paroole), siis soovitame need osaliselt hägustada või peita.
- Olge ettevaatlikud Internetist vastuseid otsides. Nii mõnigi Internetis pakutud (k.a.
NirSoft
paketist pärit) tarkvara võib sisaldada erinevat tüüpi soovimatut lisatarkvara (viirused, backdoors, spyware, jne..).
Boonus
Leidke veel põnevaid TASUTA tarkvarasid lisaks NirSoft
paketile, mis võimaldavad teil kuvada arvutis tehtud tegemisi! NB! Boonuspunktide saamiseks peaksid tegevused, tarkvarad ja kuvatav info olema praktikumijuhendaja arvates piisava keerukusega. Enamasti tähendab see seda, et info kättesaamine Windows registrist või logidest peab tulema juhendajatele üllatusena või siis olema väga lihtsalt kättesaadav. Lisaks Windows'le võib esitada lahendusi ka muude operatsioonisüsteemide kohta. Samuti on endiselt oodatud soovitused ja parandusettepanekud Andmeturve kursuse kodutööde ja praktikumide sisu osas.