Praktikum 15 - Linux forensics & Nutiseadme turvapoliitika
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. Kui importimisel tuleb veateade võrguadapteri kohta valige Change
ja siis NAT
ning vaadake üle ka muud seaded.
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 lastb -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)
- Ülesanne 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
- Ülesanne 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
. Näiteks
touch -a --date="1988-02-15 01:00 +0300" AloPeets.txt stat 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).
- Ülesanne 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.
- Ülesanne 4 Leidke kasutajate kodukasutas
/home/...
punktiga algavatest failidest (algavad punktiga ja on vaikimisi peidetud kodukaustas), missuguseid faile on redigeeritud tekstiredaktorigavim
. Nimetage vähemalt üks fail, mida onvim
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 (CTRL
+ALT
+F1
-> muutke parool -> CTRL
+ALT
+F7
) 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?
Ülesanne 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.
Boonusülesanne
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 manuaali, uurige mida see teeb ning skännige selle abil süsteemi - kas leiate midagi huvitavat?
Boonusülesande korrektse lahenduse eest saab täiendavad - 0.5 boonuspunkti.
Mida tavaliselt veel uuritakse
- Brauseri ajalugu
- Failid prügikastis
- Kas mälupulgaga on arvuti juures käidud
- Mis võrkudes arvuti käinud on
Nutiseadme turvapoliitika ja privaatsus
Käesolevas aines käsitlesime peamiselt Windows
ja Linux
näitel arvuti kasutamisega seotud turvalisuse nüansse ja teemasid, kuid enamik neist on üle kantavad ka nutiseadmetele Android
ja iOS
. Siiski on üks teema, mis on peamiselt nutiseadmete teema ja see on rakenduste ehk Applications
või lühidalt apps
privaatsusseaded. Endale teadvustamata loobume tihti vabatahtlikult oma privaatsusest ja andmetest, mida me kaitsta üritame. Nutiseadmetes on levinud, et kolmandate tootjate rakendused (nn need mis paigaldab kasutaja rakenduste poest näiteks Google Play) küsivad ligipääsu sinu seadme riistvarale ja andmetele.
Levinud õiguste kategooriad Android
keskkonnas on:
- Calendar
- Camera
- Contacts
- Location
- Microphone
- SMS
- Storage
- Telephone
Kirjuta iga õiguste kategooria juurde üks populaarne rakendus, mis seda ligipääsu õigust küsib ja juhtumi kirjeldus kuidas selle õigusega tungida inimese eraellu või saada ligipääs tundlikele andmetele.
Näidislahendus:
Storage - Bolt
takso kutsumise app. Kuna antud rakendus küsib ligipääsu telefoni storage'le ehk telefonis olevatele failidele on rakenduse autoritel soovi korral võimalik telefonis olevaid faile muuta, filtreerida märksõna järgi ja huvitavamad saata Taxify serverisse. Seega peaks väga hoolikalt kaaluma enne iga rakenduse paigaldamist kas antud rakendus on ikka vajalik, usaldusväärse looja poolt kirjutatud ning mis juhtub kui ta lekitab sinu nutiseadmes (telefonis) olevaid faile.
Ülesanne 6 Teie ülesanne on eelnevalt mainitud 8 levinuima nutiseadme õiguste kategooria kohta leida üks populaarne rakendus mis konkreetseid õigusi küsib ja kirjutada juhtumikirjeldus, kuidas antud õigusi saab rakenduse autor kurjasti ära kasutada. Rakenduste õigustega saate tutvuda Android või Apple rakenduste poest enne rakenduste allalaadimist. Rakendust ei tohi korrata seega kokku peate leidma vähemalt 8 unikaalset rakendust, mille õigusi analüüsite.
Lisamaterjalid
- Nutiseadmete turvalisus
- Nutiseadmete turvapoliitika
Esitada Praktikum15:
Praktikumi ülesande lahendamine annab neli punkti ja esitamiseks on umbes kaks nädalat alates praktikumi toimumisajast ( kuni 48h enne teie eksami toimumist).
- Ülesanne 1: Missugune kasutaja on viimati masinat kasutanud üle võrgu ning missuguselt IP-aadressilt ta sisse logitud oli? - 0.5p
- Ülesanne 2: 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-d 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. - 0.5p
- Ülesanne 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. - 0.5p - Ülesanne 4: Leidke kasutajate kodukasutas
/home/...
punktiga algavatest failidest (algavad punktiga ja on vaikimisi peidetud kodukaustas), missuguseid faile on redigeeritud tekstiredaktorigavim
. Nimetage vähemalt üks fail, mida onvim
abil muudetud. Teie enda poolt vim-ga tehtud muudatused ei lähe arvesse. - 0.5p - Ülesanne 5: 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. - 0.5p
- Ülesanne 6: Kirjuta iga nutiseadme õiguste kategooria juurde üks populaarne rakendus, mis seda ligipääsu õigust küsib ja juhtumi kirjeldus kuidas selle õigusega tungida inimese eraellu või saada ligipääs tundlikele andmetele. - 1.5p
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 Linux
, MacOS
, Android
jne. Samuti on endiselt oodatud soovitused ja parandusettepanekud Andmeturve kursuse ja praktikumide sisu osas.