Arvutiteaduse instituut
  1. Kursused
  2. 2020/21 kevad
  3. Andmeturve (LTAT.06.002)
EN
Logi sisse

Andmeturve 2020/21 kevad

  • Pealeht
  • Loengud
  • Praktikumid
  • Referaat
  • Kirjandus
  • Turvauudised
  • Lingid

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 asemele rw init=/bin/bash . Vajutage F10 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õi dpkg -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 ning atd 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 koos stat 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 tekstiredaktoriga vim. Nimetage vähemalt üks fail, 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 (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

  1. Brauseri ajalugu
  2. Failid prügikastis
  3. Kas mälupulgaga on arvuti juures käidud
  4. 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.


Dilberti koomiks (allikas)

Lisamaterjalid

  • Nutiseadmete turvalisus
    • Nutiseadmete turvalisus
    • Smartphone Security
    • OWASP Mobile Security Project
    • Cyber security report 2017
    • Threat report 2015
    • MOBILE THREAT REPORT Q1 2014
    • MOBILE THREAT REPORT July-September 2013
    • Android Security, Pitfalls, Lessons Learned and BYOD
  • Nutiseadmete turvapoliitika
    • How to formulate an effective smartphone security policy
    • Sample Mobile Device Security Policy

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 koos stat 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 tekstiredaktoriga vim. Nimetage vähemalt üks fail, mida on vim 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
15. Praktikum 15 - Jälgede ajamine (Linux & Android)
Sellele ülesandele ei saa enam lahendusi esitada.

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.

  • Arvutiteaduse instituut
  • Loodus- ja täppisteaduste valdkond
  • Tartu Ülikool
Tehniliste probleemide või küsimuste korral kirjuta:

Kursuse sisu ja korralduslike küsimustega pöörduge kursuse korraldajate poole.
Õppematerjalide varalised autoriõigused kuuluvad Tartu Ülikoolile. Õppematerjalide kasutamine on lubatud autoriõiguse seaduses ettenähtud teose vaba kasutamise eesmärkidel ja tingimustel. Õppematerjalide kasutamisel on kasutaja kohustatud viitama õppematerjalide autorile.
Õppematerjalide kasutamine muudel eesmärkidel on lubatud ainult Tartu Ülikooli eelneval kirjalikul nõusolekul.
Courses’i keskkonna kasutustingimused