Andmeturve Meelis Roos
Kursiivis tekst
on Meelis Roosi loengukommentaaride põhjal lisatud.Kollasega
märgitud osa kohta on Meelis Roos öelnud, et seda on ta tavaliselt
eksamil küsinud.
Kava• Turvaeesmärgid,
ohud, riskianalüüs, turvapoliitika, turbestrateegiad, turvatasemed,
turvastandardid
•
Mitmekasutajasüsteemide
turve , DAC & MAC, usaldatavad süsteemid
•
Autentimismeetodid,
paroolid , NIS(+),
Kerberos , NT domeenid, LDAP
kataloogid ,
Active Directory,
single signon
• PKI (avaliku
võtme infrastruktuuride) idee, rakendamine autentimisel ja
signeerimisel, hierarhiad
• Ohud võrgus,
tulemüürid, krüpto rakendamine
• Rünnakute
avastamine: IDS (Intrusion Detection System),
logimine ;
taasteplaanid; turvaprobleemide PR
•
Viirused ,
ussid ,
trooja hobused , tagauksed, ...
• Privaatsus ja
anonüümsus Internetis
•
Pöördkodeerimine, seadused, kopeerimiskaitsed, ...
Kirjandus• Infosüsteemide
turve 1:
turvarisk . Vello
Hanson , Märt Laur,
Monika Oit,
Kristjan Alliksoo. Cybernetica AS, Tallinn 2009
• Infosüsteemide
turve 2: turbetehnoloogia. Vello Hanson, Ahto
Buldas , Tarvi
Martens ,
Helger Lipmaa, Arne Ansper, Viljar Tulit. Küberneetika AS, Tallinn
1998
•
Security Engineering .
Ross Anderson, Wiley 2001
•
Practical UNIX &
Internet Security.
Simson Garfinkel, Gene Spafford. Second edition.
O’Reilly 1996 (tasuta, aga vanavõitu)
•
Firewalls and
Internet Security: Repelling the Wily Hacker. William R. Cheswick and
Steven M. Bellovin.
Addison -Wesley, 1994 (tasuta), 2011;
http://www.wilyhacker.com/ • Secrets and
Lies : Digital Security in a Networked World. Bruce Schneier. John
Wiley & Sons 2000
1. Turvaeesmärgid
• Käideldavus
(availability) —
varad peavad olema kasutatavad,
kõige
raskemini tagatav.•
Terviklus (integrity) —
varasid tohivad modifitseerida ainult volitatud
asjaosalised
•
Konfidentsiaalsus (confidentiality) — varad on kättesaadavad
ainult volitatud asjaosalistele,
kõige lihtsamini tagatav.Loetelule võiks
veel lisada privaatsuse.Turvalisuse
rikkumise tasemedOhud• Ohtude liigid:
– halvang -
ei
lase tööd teha– infopüük
– modifitseering
– võltsing
• Ohustatud
objektid:
– andmed
–
tarkvara –
riistvara – side
• Stiihilised ohud
(keskkond, tehnilised rikked,
inimohud ) vs ründeohud
• Sisemised või
välised ohud
andmedtarkvarariistvarasidehalvangandmete kustutaminetarkvara kustutamine; tarkvarale lõputu tsükliga päring;voolukatkestus; füüsilised vigastusedvõrgukatkestus; kaabli katkestus ; suur võrgukoormus või paketikadu (DDoS)infopüükandmete kopeeriminekoodijuppide varastamine; tarkvara versiooniinfo efektiivsema rünnaku planeerimisekskõvaketta vargus; riistvaralise tulemüüri tuvastamine pealtkuulamine (traadi pealt, õhust)modifitseeringandmete muutmine (keeruline vahet teha, kas see on rohkem modifitseering või võltsing)keylogger; tagauksed, trooja hobusedoma riistvara juurde lisamine (füüsiline keylogger), kaardimakseautomaatide skimmeridside ümbersuunamine vahepunkti kauduvõltsingvõltsitud veebileht; võlts login - ekraan (Ctrl+Alt+Del on selle võimaluse välistamiseks); piraattarkvaravõlts võrguseadmed, mis sisaldavad tagauksi; kaardimaksega vending machine ’id, mille eesmärk on kaardi andmeid varastadaedastatava info muutmine töö käigus - pangale saadetakse erinevad summad ja konto andmed kui panga veebilehel sisestatud Ründajad• Volitatud
kasutajad — suurim oht,
selle vastu aitab auditeerimine• Majandus- ja
sõjalise
luure agendid: vähe teada, tihti profid, peidavad jälgi.
Enamasti otsivad mingit konkreetset infot.
• Häkkerid (
black hat ja white hat häkkerid)
– Niisama
huvilised — uurivad süsteemide turvalisust oma lõbuks. Reeglina
ei tee kurja, vahel teavitavad omanikku leitud turvaprobleemidest.
Leiavad uusi turvaauke.
– Skriptijuntsud
(
script kiddies) —
Murravad süsteemi sisse, teevad pahategusid
(näotustamine (defacement), andmete kustutamine). Enamasti kasutavad
teiste tehtud ründeprogramme, tihti neist ise aru saamata.
– Organiseeritud
kuritegevus — see on terve tööstusharu
• Muud
(arvutivargused, ...)
Näitena StuxNet
(ilmselt USA ja Iisrael ründasid Iraani tuumareaktoreid, muutes
veidi reaktorite temperatuuride kohta kuvatavat infot, mistõttu reaktorid aeg-ajalt kuumenesid üle, tekkis suur majanduslik kahju),
mh kasutati ära Windowsi lähtekoodis olevat fontide renderdamist,
õhuvahet (rünnatavad arvutid ei olnud võrgus, pahavara levis
USB-pulkade kaudu).Riskianalüüs• Potentsiaalsete
ohtude tõenäosused on erinevad
• Erinevate ohtude
poolt tekitatav kahju on erinev
• Riskianalüüs —
hindame reaalseid
ohte ning kulutusi ning püüame leida
aktsepteeritava riski, kus turbekulud on ligikaudu võrdsed
tõenäoliste kahjudega
Ohtude edetabel 2014• Pahavara (ussid,
trooja hobused,
nuhkvara ,
väljapressimismeetodid)
• Veebipõhised
ründed kliendi pihta
(brauseris on turvaaugud , lisaosadel ( java ,
flash jne) omakorda turvaaugud) - tuleks jälgida, millistel lehtedel
käiakse (tänapäeval pornolehtedelt saab vähem ründeid kui
populaarsetelt uudiselehtedelt)• Ründed
veebirakendustele
• Zombivõrgud
(botnets)
•
Teenustõkestusründed
(ülekoormamine)• Spämm
• Õngitsemine
(phishing)
(autentimist nõudvad võltsleheküljed)• Eksploidipakid
• Andmelekked
• Füüsiline
kahjustamine , vargused
• Siseründed
•
Identiteedivargused
• Spionaaž
•
Lunavara (ransomware)
Turbestrateegiad• Vähim vajalik
privileeg — igale
objektile ja subjektile antakse minimaalne tööks
vajalik õiguste komplekt,
praktikas probleemiks suur
halduskeerukus• Kaitse sügavuti
(
defense in depth) — kasutatakse mitut järjestikku asuvat
kaitsemehhanismi
• Läbilaske punkt
(
choke point) — kogu pääs toimub ühest, hästi kontrolli
all
olevast punktist,
nt sise- ja välisvõrgu vahel on alati üks
kindel tulemüüripunkt• Nõrgim lüli —
kett on nii tugev kui tugev on tema nõrgim lüli
• Tõrkekindel
süsteem (
failsafe system) — turvasüsteemi tõrke korral
pääs pigem keelatakse kui lubatakse
• Üldine osavõtt
— turvameetmed ei toimi, kui kasutajad neist mööda hiilivad,
liiga sage parooli vahetamise kohustus tekitab ohu, et neid ei
õpita pähe vaid kirjutatakse paberile• Kaitse
mitmekesisus — mitte
loota ühte sorti ja ühest allikast pärit
vahenditele, kasutada heterogeenseid kaitsesüsteeme -
kahe sama
tootja tulemüüri järjestikku asetamine tähendab, et mõlemal on
identsed turvaaugud, pigem kasutada erinevate tootjate omi.• Lihtsus —
keerukus on turvalisuse
vaenlane • Turvalisus läbi
varjamise — ründajat üritatakse hägustamisega segadusse ajada,
tekib oht, et ise ka enam oma süsteemidest aru ei saaMõned suured
prohmakad uskumises• Marcus Ranum:
– Default
permit -
vaikimisi lubame, keelame vajadusel (tuleks toimida vastupidi)– Enumerating
badness -
keelame halvad asjad (nt antiviirus )– Penetrate and
patch -
lubame kellelgi sisse murda ning paikame ära avastatud
turvaaugud– Hacking is cool
-
kuritegelik–
Action is better
than inaction -
liigne agarus on ogarus– Educating
users solves problem -
kindlasti muutub olukord paremaks, aga pahalased
on kavalad ning kasutaja ei peagi tingimata midagi valesti tegema– We are not a
target -
kes meid ikka ründab? Botid jms ei pruugi eristada– Everyone would
be secure if they all just ran Z -
nt Win 10 saadab kahtlased
failid põhjalikumaks uurimiseks pilve (turvaauk on lahendusse
sisseehitatud)– We don’t need
a firewall, we have
good host security -
kogu võrgu kohta puudub
ülevaade, ründaja katsetab igat masinat eraldi– We don’t need
host security, we have a good firewall -
end-to-end https
põhjustab selle, et selle kaudu liikuva info sisu ei suuda isegi
tulemüür näha– Let’s go
production with it now and we can secure it later -
kiiresti
turule tulemise vajadus (juba alpha-versiooniga live’i), hiljem
turvaaukude parandamine sisuliselt võimatu• Reaalses elus on
vaja teha kompromiss turvalisuse ja kasutatavuse vahel
2. Riskianalüüs,
turvastandardid
• Riskianalüüs
• Turvapoliitika
• TCSEC
turvaklassid • EAL turvaklassid
• ISO 27000 pere
•
ISKE turvaklassid
Riskianalüüs• Potentsiaalsete
ohtude tõenäosused on erinevad
• Erinevate ohtude
poolt tekitatav kahju on erinev
• Riskianalüüs —
hindame reaalseid ohte ning kulutusi ning püüame leida
aktsepteeritava riski, kus turbekulud on ligikaudu võrdsed
tõenäoliste kahjudega
Riskianalüüsi
sammud• Objekti
piiritlemine, varade
liigitamine -
teha inventuur (eelnevalt
piiritleda (scope))• Varade
spetsifitseerimine -
ülevaade kõigist varadest, mida kaitsta
üritame (pikk nimekiri vms): nimekiri süsteemidest, andmebaasidest,
protsessidest; Y2K probleemi uurimise käigus said Eestis paljud
firmad teada, kui palju neil on arvuteid (seejuures ka, mis OS,
tarkvara, versioonid jms); Tallinna Vee süsteem kasutas aastaarve
kahekohalistena, Y2K ohus tehti uus süsteem, kuigi vanal süsteemil
oli aastaarvudest täiesti ükskõik• Varade hindamine
-
kui andmebaas hävib, kui palju inimtööd kulub selle
taastamiseks; käideldavuse kadu SLA ( Service Level Agreement)
põhjal, st kui suure osa ajast server on maas - trahv vastavalt
ajahulgale• Ohtude, nõrkuste
ja olemasolevate turbevahendite spetsifitseerimine -
turbevahendeid
lihtsam tuvastada ja hinnata, ohte ja nõrkuseid arvestatakse teiste
kogemuste põhjal• Turvarikete
tõenäosuste hindamine -
põhjalik inventuur/riskianalüüs oma
varade kohta; millised ohud võivad mõjutada meie andmebaase?;
järgmine aeg, millal probleeme võib tekkida, on UNIX-time’i lõpp
aastal 2038• Oodatava kahju
hindamine -
riskianalüüsUNIXis ajatemplid
arvudena
Turvapoliitika• Ootused
infosüsteemi korrektseks kasutamiseks -
milleks me oma
infosüsteeme üldse kasutame• Protseduurid
turvaintsidentide ärahoidmiseks
• Protseduurid
turvaintsidentidele reageerimiseks -
kellele teatada (töö
sisekorra eeskirjas)• Igale objektile
on määratud
turbe eest vastutaja
• Aluseks
igasugusele infoturbealasele tegevusele asutuses -
millised on
turvanõuded? isikuandmete käitlemine jms; osad nõuded tulenevad
seadusest (osa andmeid tuleks talletada krüpteeritud kujul)• Turvalisus on
protsess, mitte valmis saav asi. Seetõttu on ka turvapoliitika
iteratiivselt
uuenev .
Riskianalüüsiga
ei ole võimalik hinnata kõiki kasutatavaid rakendusi (erinevad
lugematul hulgal alamrakendusi ja teeke).TCSEC (Trusted
Computer System Evaluation Criteria ) turvaklassid• TCSEC — USA
kaitseministeeriumi vanem turvanormistik ("vikerkaarevärvilised
raamatud")
• D — minimaalne
kaitse (sisuliselt turbeta süsteem) -
pisikesed ühe kasutaja
süsteemid; seade on ühe inimese käes ja teisele ei anna või seade
paikneb ühes kindlas ruumis• C1 — kaitstud
OS, diskretsionaarne pääsupoliitika -
erinevatel andmeobjektidel
on omanikud, kes määravad ligipääsud teistele kasutajatele
(tavaline UNIX, Windows , jne)• C2 — C1 +
peenem granulaarsus + pidev auditeerimine (
24h või 48h, mille
jooksul keegi peab lugema logisid) -
vanemad UNIXid, süsteeme
oli vähe, kuna nõudis organiseerimist• B1 — C2 +
mandatoorne pääsupoliitika -
nt kasutaja ei saa teha faili
teistele kättesaadavaks, kui fail on peidetud• B2 — B1 +
formaalne mudel + hierarhilised turvatasemed
• B3 — B2 +
topeltauditeerimine +
vigade puudumine
disainis -
turvamudel on
formaalselt analüüsitud, tõestatud, et turvaauke pole• A1 — B3 +
formaalne tõestus, et süsteem on
korrektne -
formaalne
turvatõestus ka implementatsiooni kohta, programmikoodi analüüs;
juurde kirjutatud, mida ja kus kontrollida• A2 — tuleviku
jaoks reserveeritud -
sellise tasemeni ei jõutudEAL (Evaluation
Assurance Level) turvaklassid — Common Criteria -
ühistingumused erinevate riikide jaoks (nt kiipkaartide
verifitseemine jms)• EAL1 —
funktsionaalselt
testitud -
tarkvara on testitud• EAL2 —
struktuurselt testitud -
testid on tehtud vastavalt programmi
ülesehitusele, koiki variante on testitud• EAL3 —
metoodiliselt arendatud; testitud -
selgelt kirjeldatud
arendusmetoodika (kuidas korraldada kõigi defektide kirjapanek,
kirjeldus, muutushaldussüsteem (hiljem võimalik kontrollida, et
seda uuesti enam ei esine))• EAL4 —
metoodiliselt
disainitud ; testitud ja üle vaadatud -
süsteemi
disainil on olnud mõistlik metoodika - arvestatud, et oleks
auditeeritav, automaattestitav jne arhitektuuriliselt juba arvestatud
vastavaid vajadusi• EAL5 —
poolformaalselt disainitud; testitud
• EAL6 —
poolformaalselt verifitseeritud
disain ; testitud
• EAL7 —
formaalselt verifitseeritud disain; testitud
Tavalise
tarkvaraarendusega võiks jõuda vähemalt tasemeni EAL4.Alates EAL5
tegeletakse pigem erijuhtudel.ISO 27000
(International Organization for Standardization)
standardipereIEC
(International Electrotechnical Commission)• Standardipere
turbe korraldamise kohta
• ISO/IEC 27000 —
ülevaade ja
terminoloogia •
ISO/IEC 27001
— turbehaldus - nõuab, et kogu organisatsioonis on
korraldatud, et kõik on turvaline; taustakontrollid, füüsiline
turvalisus, juurdepääsud, uksekaardid, PINid/paroolid,
töökorralduslikud protsessid, IT tasemel valdkonniti määratud,
kuidas miski peaks toimuma. Sertifikaat ise ei taga kvaliteeti, kuna see ei määra taset, mille suhtes audit
on toimunud; nt see ei tähenda, et sertifitseeritud teenusepakkuja automaatselt tagab varundamise (see on lepingupõhiselt määratletud
teenus)• ISO/IEC 27002 —
infotehnoloogia, turbemeetodid, infoturbemeetodite tavakoodeks -
best practices • ...
• Rahvusvaheline
standard auditeerimaks organisatsioone, süsteeme
EVS = Eesti
Vabariigi StandardTarkvaraarenduse riskid (ISO/IEC 27001 jätkuks):- ei saa õigeks
ajaks valmis; tuleb maandada riske (töömahtude eelnev hindamine ja
ajakasutuse planeerimine )- projekti
jooksul klient muudab nõudmisi - täpsustuvad, muutuvad, tekivad
plaanid jätkuarenduseks; lahenduseks eelnev põhjalik analüüs ning
kliendipoolse allkirjaga kinnitus tellitavale tööle, lisatöö eest lisakulud - partnerite
usaldusväärsus- kontakti
saamise kiirus, kui on vaja infot vahendada- kliendil puudub
haldussuutlikkus loodava tarkvara kasutamiseksEesti etalonturbe
süsteem — ISKE (Infosüsteemide kolmeastmeline etalonturve)•
https://iske.ria.ee/ • Kohustuslik
riiklike
andmekogude , riigi ja kohalike omavalitsuste sisemiste
infosüsteemide jaoks
• Etalonturve —
valmis turvameetmete komplekt vastavalt turvaklassile
• Põhineb
esialgselt Saksa BSI etalonturbel, hiljem omasoodu edasi arenenud
• Riskianalüüs
on suures osas varem valmis tehtud (ohtude ja meetmete kataloogid) -
kaardistatud tüüpilised ohud mingisugusesse kataloogi , samuti
meetmed nendega võitlemiseks• Tulemuseks kolm
taset — madal, keskmine, kõrge
Riiklikel
andmekogudel kohustuslikEesti
turvaklassid (ISKE)• 3 sõltumatut
mõõdet
–
Konfidentsiaalsus (S)
– Käideldavus (K)
– Terviklus (T)
• Kokku on
andmekogu turvaklassiks näiteks S0K2T2
• Igal mõõtmel 4
taset (
0, 1, 2, 3), seega kokku 4 x 4 x 4 = 64 turvaklassi
Eesti
turvaklassid — konfidentsiaalsus• S3 — Andmete
avalikustamine on ohtlik riigi, asutuse või inimese julgeolekule
(võib põhjustada kontrollimatuid muutusi riigile või asutusele
tähtsates süsteemides. Riigi korral on kahjud võrreldavad
eelarvega, ettevõtte korral aastakäibega). Juurdepääsupiirangutega
teave. -
sisuliselt juurdepääs ainult konkreetsetele isikutele
vajaduse alusel• S2 — Salajane.
Andmete avalikustamine häirib riigi või asutuse funktsioneerimist
või rikub inimese privaatsust (riigi korral ulatuvad kahjud
miljonitesse, ettevõtte korral 10% aastakäibest). Juurdepääs
lubatav piiratud
ringile õigustatud huvi korral. -
nt mingile
grupile juurdepääs• S1 — Andmete
avalikustamine võib põhjustada materiaalset või moraalset kahju.
Asutusesiseseks kasutamiseks õigustatud huvi korral. -
liigitame
teabe asutusesiseseks• S0 — Avalikud
andmed -
piiranguid pole vajaVeel kõrgem on
riigisaladustele kohaldatav nõue.Eesti
turvaklassid — käideldavus• K3 —
töökindlus 99,9% (
seisak kuni 10 min nädalas), lubatav
reaktsiooniaja kasv tippkoormusel sekundites (1-10) -
praktikas
üksiku serveriga või serveriruumiga ei rakendata (mälu, ketas, toiteplokk vms läheb katki; voolukatkestused, UPS katki; maja
lastakse õhku vms)• K2 —
töökindlus 99% (seisak kuni 2h nädalas), lubatav reaktsiooniaja
kasv tippkoormusel minutites (1-10)
• K1 —
töökindlus 90% (seisak kuni ligi ööpäev nädalas -
16,8h),
lubatav reaktsiooniaja kasv tippkoormusel
tundides (1-10)
• K0 —
töökindlus pole oluline, jõudlus pole oluline
Eesti
turvaklassid — terviklus• T3 — info
allikal, selle muutmise ja hävitamise faktil peab olema
tõestusväärtus; vajalik on info õigsuse, täielikkuse ja
ajakohasuse kontroll
reaalajas -
me ei puhverda koopiat , võtame
alati allikast; õigsuse kontroll digiallkirjaga;
• T2 — info
allikas, selle muutmise ja hävitamise fakt peavad olema tuvastatavad
(
krüpto-räsiga võrdlemine); vajalikud on perioodilised info
õigsuse, täielikkuse ja ajakohasuse kontrollid
• T1 — info
allikas, selle muutmise ja hävitamise fakt peavad olema tuvastatavad
(
piisab logist); info õigsuse, täielikkuse, ajakohasuse
kontrollid erijuhtudel ja vastavalt vajadusele (
võib puhverdada)
• T0 — info
allikas, muutmise ega hävitamise tuvastatavus ei ole olulised; info
õigsuse, täielikkuse ja ajakohasuse kontrollid pole vajalikud
Võimalikud
turvaklassid:•
ÕIS - S1-2K2T1•
Riigi teataja veeb -
S0K1T3 (T3 pärast on kasutusel ka https)•
Haigla registratuuri
andmebaas - S1K2T1•
Ülikooli keskse serveri logi (meiliserver, SSH, failihoidlad jne; seejuures parooli räsi ei
logita või asendatakse dummy-väärtusega) - S2K1T13. Autentimine
•
Mitmekasutajasüsteemid
•
Autentimismeetodid
•
Autentimisprotsess
• Paroolid
• Biomeetrilised
tõendid
• Elektroonilised
volitustõendid
• Paroolkaitse
näide: Unix
•
Võrguautentimissüsteemid
• Single
sign -on
Mitmekasutajasüsteemid• Probleem:
– Hulk kaitstavaid
objekte (failid,
kirjed , kataloogid,
seadmed , ...)
– Hulk juurdepääsu
omada võivaid subjekte (inimesed, protsessid, ...)
• => Vaja
kasutajaid eristada (
pole vaja nt ühekasutajasüsteemides, nt
mobiiltelefonis piisab PIN-koodist)
• Autentimine vs.
identifitseerimine
Autentimine -
kasutaja väidab, et ta on mingi õigusega kasutaja ning tõendab
seda sisestades ainult talle teada oleva info - parooli, näotuvastus,
sõrmejälg jmsIdentifitseerimine
- nimetame unikaalselt kedagi: Jüri Tamm ei ole unikaalne ; nimi
isikukoodiga aga on unikaalne; sobib kasutada mõnd suvaliselt
genereeritud numbrijadaJuurdepääsu
kontrollVolitustõend
võib sisaldada krüptovõtmeid, lihtsamal kujul mingi koodPääsupoliitikapõhiselt
antud õigused. Kui kasutaja üritab faili poole pöörduda, toimub
volituste kontroll.Authorization =
“volitamine”, “ volituse kontroll”Mitte kasutada
sõna “ autoriseerimine ”, kuna on olemas täpsemad vasted.Autentimismeetodid• Teadmuspõhised
-
saab meelde jätta; võimalik neid andmeid kellelegi teisele
edasi anda.– Luku
kombinatsioon -
mehaaniline lukk –
Parool – PIN-kood
– Krüptovõti -
pikk ja keeruline kombinatsioon, tavaliselt pähe ei õpita–
Isikuandmed -
nõrk autentimismeetod; kasutatakse harva, kuna neid andmeid
teavad teisedki ning eeldab, et ründaja ei tea isiku kohta midagi– ...
• Esemelised -
kloonitavad, lihtsasti edasi antavad– Luku võti
– Magnet- või
kiipkaart
– Infrapunamärk -
RFID tag• Biomeetrilised -
ei saa mugavalt edasi anda, sobib ainult vahetu kontakti korral,
üle võrgu saab võltsida– Sõrmejälg -
tänapäeval piisab fotoaparaadiga eemalt pildistamisest– Silma
iiris – Hääl
– DNA
Neid saab parema
turvalisuse eemärgil omavahel kombineerida: kiipkaart + PIN-koodAutentimisprotsess• Ühepoolne -
üks
ütleb teisele: “Minu parool on ****.” teine vastab: “Selge”
ja ligipääs antakse•
Kahepoolne -
nagu panga koodikaart - küsitakse kindlat infot, mis kasutaja
annab• Kolmepoolne
– Vahendusrežiimis
-
kellegi kaudu (usaldatud isik)– On-line-režiimis
-
1. suhtleb Kerberosega, saab pileti ja esitab 2., 2. esitab
pileti Kerberosele ja saab tead, kas on kehtiv pilet–
Off-line-režiimis -
CA- sertifikaadid kohalikus seadmes , a la
ID-kaardiga allkirjastamine .Paroolid•
Entroopia —
parooli tugevuse mõõt -
erinevad märgid & võimalikult pikk• Ründed:
– Paroolide ära
arvamine
•
Kogemusele tuginedes -
ei tohi viidata isikule (sünniaeg,
aadress, nimi, pereliikmed , lemmikloomad jne)•
Kõigi paroolide proovimise teel -
olgu piisavalt pikk•
Sõnastikurünne -
ei tasu kasutada sõnu, sõnade puhul ei piisa
tähtede asendamisest numbritega•
Pöördkodeerimine -
räsist tagasi arvutamine– Õige parooli
hankimine -
social engineering - piisab küsimisest; keylogger,
üle õla vaatamine, post-it-ile kirjutatud, võrguliikluse pealt kuulamine , veebilehitsejast, mikrofoniga erinevate klahvide heli,
termokaameraga vaadata, milliseid klahve vajutatud, PIN- padi numbrid
kulunud, mobiili ekraanil sõrmejäljed– Paroolkaitsest
mööda hiilimine -
oma meedialt buutimine, et krüptimata kettale
ligi saadaElektroonilised
volitustõendid• Magnetkaart
– Vesimärgiga
–
Kahekihiline -
kaks magnetriba, pealmine nõrgema magnetiga, alumine tugevama
magnetiga - pealmine tühjendati alati enne kasutamist ära, mistõttu
kloonitud ühekihiline tühjendati enne kasutamist ära– Wiegandi kaart
– Pääsudiskett
:-)
• Kiipkaart,
kiiplipik (
ISO 7816)
– Mälukaart
(
kaitsega ja kaitseta) -
read-only või read-write– Turvaloogikaga
mälukaart -
pool mälu on loetab-kirjutatav, pool on ainult
loetav– Protsessorkaart
-
telefonikaartidel blokeeriti klemm, mille kaudu anti
kirjutamispinget, mistõttu kaardilt raha maha ei läinud; ID-kaart
või SIM-kaart annavad andmeid välja ainult PIN-koodi vastu
(PIN-padiga varustatud kiipkaardilugeja kaitseb arvutis oleva
pahavara eest)– Võib olla
kontaktivaba -
raadiosignaalide abil võib poes jalutava isiku
kõrval oleva inimese kontaktivaba kaardi signaal saata teise
inimeseni, kes on kassa juures; autovõtmed• Pultkaart
•
Raadiosageduslikud tõendid (RFID -
radio -frequency
identification, NFC -
near field communication ) -
NFC
võimaldab ka krüptosuhtlust arvutiga, saab teha turvalisemaid
lahendusiBiomeetrilised
tõendid• Anatoomilised
– Sõrmejälg
– Sõrme kuju
– Nahapoorid
– Käelaba
– Käe veenid
– Silma võrkkest
– Silma vikerkest
– Nägu -
piisab
fotost• Käitumuslikud
– Allkiri -
surve,
kiirus, lõpptulemus– Kõne -
hääl,
tämber, tempo, kõnevead, salvestis– Tippimisrütm
• Muud
– Lõhn
– DNA struktuur
Arvestama peab
valede ja valepositiivsete võimalikku hulka (sõrmejälg võib ajas
muutuda), kasutusmugavust (laseriga silma skännimine),
psühholoogilisi probleeme (mille jaoks DNA-d veel kasutatakse) jpmParoolkaitse
näide — Unix• Parooli
seadmisel genereeritakse juhuarv ("sool", 2 tähte) -
et
identsed paroolid saaksid erinevad räsid, võimalikud hulgad 2 tähe
puhul 210-212
• Parool koos
soolaga räsitakse, meelde jäetakse sool ja räsi
• Kontrollil
räsitakse kontrollitav parool samamoodi
• Uuemal ajal
kasutatakse ka muid algoritme, MD5 räsi näiteks -
koos soolaga• Algselt oli räsi
kõigile näha (/etc/passwd), see lihtsustas ründeid
• Praegusel ajal
kaitstakse räsisid
muust kasutajainfost paremini (/etc/
shadow )
• Autentimisinfo
koosneb kolmest
failist (eelnevad ja /etc/group grupikuuluvuste
jaoks)
• Gruppidel
paroole reeglina pole (on olnud) -
grupiparoolid pole seotud
isikuga, edasiantavad teistele isikutele, kaob kontroll; tänapäeval
kasutaja kuulub gruppi, kontrollitakse grupilist kuuluvastParoolkaitse
näide — Windows NT (NT = New Technology )• Mitu eri
meetodit, vaatleme NTLM (NT/Lan
Manager ) ja NTLMv2
•
Andmebaasis (SAM
- Security Account Manager) hoitakse räsisid (kumbki 16
baiti )
• NTLM: parool 14
baiti (2x7), suurtähtedeks, kummastki poolest DES võti (
Data
Encryption Standard), krüptitakse fikseeritud string -
kõige
turvalisema pikkusega oli 7- või 14-baidine parool, muude pikkustega
olid lihtsamini murtavad• NTLMv2: parool
konverteeritakse Unicode’i (
UTF-16 - iga märk on 2-baidine),
rakendatakse MD4 räsifunktsiooni -
eeldus, et räsi ei leki• Kaugautentimisel
piisab räsist (Unixi puhul on algne parool vajalik) -
protokollides
toimus räside räsimineNIS• NIS —
Network Information System, tuntud ka YP (
Yellow Pages) nime all
• Sun’i vana
süsteem passwd, shadow, group jms
tabelite üle võrgu kasutamiseks
-
kohalikes masinates kasutati tabelitest info saamiseks teeke•
Domeen — sama
autentimisinfot kasutavate masinate hulk -
küsisid kõik infot
sama domeeniserveri käest• Domeenis oli
primaarne server ja sekundaarsed
• Andmete muutmine
käis peaserveris, sekundaarsed hoidsid koopiat ja jagasid seda
• Kliendid
esitasid üle võrgu serverile getpwent() jms päringuid
•
Protokollid kasutavad kaugprotseduure (SunRPC)
• Turvalisust
eriti polnudki -
kõik võisid teha protokolle, kergesti
võltsitav, kergesti pealtkuulatavNIS+• NIS edasiarendus
(sisuliselt hoopis uus süsteem)
• Domeenid on
hierarhilised
• Igal domeenil on
endiselt primaarne ja sekundaarsed
serverid • Alamdomeenidel
on võimalik erinev
administratiivne alluvus
• Lisatud
turvalisus! -
krüpto kasutus• Domeenide
hierarhias ja tabelites saab kehtestada juurdepääsuõigusi
• Endiselt saab
kasutada lisaks süsteemsetele ka kasutaja defineeritud tabeleid
NIS+ tööpõhimõte• Kasutatakse
turvalisi kaugprotseduure (Secure RPC) — krüptimise ja iga päringu
autentimisega
• Krüptimiseks
DES (
Data Encryption Standard), autentimiseks Diffie-Hellmanni
võtmevahetus
• Kliendid
tunnevad serverit ja server kliente (hostivõtmete abil)
• Kasutaja logib
klientmasinasse sisse nime ja parooliga
• Kasutajal on ka
NIS+ parool (enamasti sama, mis harilik parool)
• NIS+
paroolist tuletatakse DES võti (≤40
bitti entroopiat -
240
pole tänapäeval enam keeruline brute force ’iga järele proovida)
• Avalikust NIS+
tabelist saadakse oma Diffie-Hellmanni võtme krüptitud salajane osa
• See krüptitakse
lahti ning selle abil saadakse juurdepääs NIS+ serverile (saab oma
parooli vahetada jms)
Kerberos
(tänapäeval versioon Kerberos 5, alla selle pole
turvaline)• Korraliku
krüptoga võrgus autentimise süsteem
• Süsteemis on
kliendid (kasutajad ja
programmid ) ning teenused
• Kliente ja
teenuseid kokku nimetatakse osapoolteks (principal)
• Osapooltele
antakse nimed järgmisel kujul: nimi[/täpsustus]@piirkond. Näiteks
[email protected], mroos/
[email protected]• Täpsustusega
nimi on sõltumatu ilma täpsustuseta samast nimest
• Kliendid
kasutavad enda teenustele autentimiseks pileteid (
ticket )
• On olemas
spetsiaalne esmane pilet teiste
piletite saamiseks — piletite
hankimise pilet (TGT — Ticket Granting Ticket)
Kerberose tööpõhimõte• Klient logib
Kerberos-süsteemi parooliga sisse
• Saadab
võtmejaotuskeskusele (KDC — Key Distribution Center) päringu
• KDC saadab talle
tema parooliga krüptitud piletite hankimise pileti
• Klient tahab
logida masinasse
math .ut.ee, selleks vajab ta piletit osapoolele
host/
[email protected]• Klient küsib
selle pileti TGT abil võtmejaotuskeskuselt ja esitab selle
math.ut.ee-le enda autentimiseks
• math.ut.ee
kontrollib seda võtmejaotuskeskusest
• Klient säilitab
oma pileteid kuni väljalogimiseni või nende aegumiseni, et ei peaks
kogu aeg küsimas käima
Arvutite kellad
peavad olema sünkroniseeritud, et ajatemplid oleksid
aktsepteeritavadKlassikaline
Windowsi domeen• Kasutusel
Windows NT ajastu Windowsites
• Windowsi võrk,
kus on üks ühtne kasutajatebaas
• Klientmasinates
võib olla ka kohalikke kasutajaid
• Domeeni
kasutajatebaas on domeenikontrolleris (
Domain Controller)
• Saab teha
sekundaarseid domeenikontrollereid, kuid muutmine käib ikka
primaarselt kontrollerilt
• Mitme domeeni
vahele saab lisada ühesuunalise usaldussuhte (
trust )
• Klient saab
Netlogon-teenuse kaudu omale SID’id DC käest
• Võrguteenusele
esitatakse kliendi õigused ning teenus saab nende abil kliendina
esineda
Windowsi domeen
koos Kerberosega (tänapäeval kasutusel)• Kasutusel alates
Windows 2000
• Domeen on
Kerberose piirkond
• Kerberose TGT-le
lisab KDC NT-spetsiifilise laienduse turvainfoga (SID’id) ja
signeerib selle
• TGT seest
kopeeritakse see info harilike piletite sisse
• Autentimine
toimub Kerberosega, teenused saavad NT kasutajainfo piletite
laiendusest
• Ühilduvuse
huvides toetatakse vaikimisi ka NTLM autentimist
Unixi Kerberose
ja Windowsi Kerberose ühilduvus• Windows NT
Kerberos on pooleldi ühilduv Unixi Kerberosega:
– Ainult nimel
baseeruv autentimine toimib mõlemas suunas
– Unixi KDC-d NT
domeenikontrollerina kasutada ei saa (puudub NT kasutajainfo) -
Windowsi Kerberose piletid on kasutatavad ainult Windowsi poolel.– Saab kasutada
piirkondade vahelist usaldamist: kasutajad on Unixi Kerberose
piirkonnas, NT piirkonnas olev KDC lisab NT kasutajainfo
Active Directory• Windows 2000
domeenide infot jagatakse Active Directory abil
klientmasinatele,
kasutusel puustruktuur •
Hierarhiline domeenide süsteem
• Seotud Interneti
(DNS) masinanimedega
• Active Directory
on realiseeritud LDAP (
Lightweight Directory Access Protocol )
kataloogi baasil -
LDAP on Microsoftist sõltumatu, pakub
konfiguratsioonipuud, sobib näiteks kasutajainfo levitamiseks (nt
ülikooli arvutitesse, et oleks võimalik ülikooli tunnusega
suvalisse ülikooli arvutisse sisse logida)• 3 sorti usaldust
domeenide vahel:
– Kahesuunaline
transitiivne usaldus -
ühesuunalisel: kui a usaldab b, b usaldab
c, siis a usaldab c– Ühesuunaline
usaldus (mitte transitiivne, nagu NT4)
– Ristusaldus —
domeenipuus otseteede tekitamine kiiruse huvides
Muud hajusad
autentimissüsteemid• LDAP kataloogi
kasutajainfo levitamiseks võib kasutada Active Directoryst
sõltumatult ka näiteks Unixi kasutajainfo levitamiseks
• LDAP katalooge
(ka Active Directory sees) saab replitseerida — jõudluse ja
töökindluse huvides -
nt harukontorites oma kohalik
sünkroniseeritud replica , juhuks kui võrk on maas, et kasutajate
autentimine endiselt toimiks• NDS —
Netware Directory
Services • PAM (
Pluggable
Authentication Modules) ja NSS (
Name Service Switch ) kui
autentimise programne
liides • OAuth (
nt
Facebooki login),
OpenID , OpenID Connect -
OpenID ja OpenID
Connect on kaks erievat asja - protokollid keerulised, ärge ehitage
oma, kasutage mõnda teeki;Single sign-on• Single sign-on —
kasutaja logib sisse korra oma töökohalt ja saab kasutada kõiki
talle lubatud ressursse ilma edasise autentimiseta
• Realiseeritav
näiteks parooli mällu jätmise, NTLM autentimise või Kerberose
abil
• Hea:
– Mugav
– Paremini
tsentraalselt hallatav (kui süsteemi tuntakse)
• Halb:
– Vähem
turvalisem -
parool on mälus krüpteerimata kujul– Keerulisem
süsteem => vigu rohkem
– Keerulisem
süsteem => raskem aru saada, et õigesti konfigureerida
M. Roos ise
kasutab parooliga kaitstud SSH-võtmeid SSO jaoks, nii et mälus
olevad võtmed on krüpteeritud kujul. Sellist lahendust ei ole
lihtne tsentraalselt hallata, kuna SSH-võti on kasutaja enda
määratlustega, kuigi võimalik teatud ulatuseni automatiseerida.4.
Mitmekasutajasüsteemid
• Probleemi
püstitus
• Diskretsionaarne
pääsupoliitika
• Mandatoorne
pääsupoliitika
• Rollipõhine
pääsupoliitika
Mitmekasutajasüsteemid• Probleem:
– Hulk kaitstavaid
objekte (failid, kirjed, kataloogid, seadmed, ...)
– Hulk juurdepääsu
omada võivaid subjekte (inimesed, protsessid, ...)
– Erinevatel
kasutajatel on objektidele erinevad õigused
– Autentimise abil
saime teada, kes on kes
• => Vaja
õigusi autenditud kasutajatele volitada
Juurdepääsu
kontrollDiskretsionaarsed
pääsupoliitikad• Lühend DAC
(Discretionary Access
Control ) -
igal objektil on oma omanik, kes
haldab teiste õiguseid• Põhineb
informatsiooni omamisel ja õiguste delegeerimisel
• Levinuim
laiatarbesüsteemides (peaaegu ainuvaldav)
• Kinnine
DAC-poliitika: vaikimisi keelatud, pääsuluba antakse
subjekt -objekt
paaride määratlemisega -
loetleme üles, missugused objektid
missugustele ressurssidele ligi pääsevad•
Lahtine DAC-poliitika: vaikimisi lubatud, paaridega määratakse keelatud
tegevused -
kasutusel harvem, kuna oht vaikimisi saada liiga
suured ligipääsuõigused• Igal objektil on
omanik (mingi subjekt) -
identifitseeritav nt isikukoodi põhjal
vms• Omanikul on
objektile maksimaalsed õigused
• Omanik saab
määrata teiste subjektide juurdepääsuõigusi oma objektidele
• Subjektide
grupeerimine lihtsuse huvides
DAC realiseerimine • Iga objektiga
võib siduda pääsuloendi (ACL - Access Control List). ACL sisaldab
subjektikirjelduste ja lubatud/keelatud tegevuste
paare .
fail.txt:
(mati: LK, kati: L)
Millal
parem: palju faile ja vähem kasutajaid; kasutajaid annab grupeerida• Iga subjektiga
võib siduda voliloendi (capability list). Voliloend sisaldab objekti
ja
lubatava pöörduse paare.
mati:
(
printer : K, CD: L)
Millal
parem: palju erinevate õigustega kasutajaid, objekte on pigem väheMillal halvem : palju faile ja vähem kasutajaid• capability
tõlgitakse volituseks
• Näited
reaalsetest volitustest Linuxis:
– CAP_DAC_OVERRIDE
-
sellele protsessile ei mõju failiõigused, saab igale poole
ligi, nt backup– CAP_KILL -
ainult administraator võib suvakasutaja protsesse tappa– CAP_SYS_RAWIO -
pöördumine otse kettaseadmete või IO- portide poole, otse
riistvaraga suhtlemine –
CAP_NET_BIND_SERVICE -
madalamad pordid (0- 1023 ) kasutajatele
blokeeritud, nemad ei saa kuulata ega kasutada; selle volitusega aga
saabDAC
realiseerimine• Pääsupoliitika
võib esitada maatriksina (nn.
maatriksmudel ):
Oi — objektid, Si
—
subjektid L — lugemine, K —
kirjutamine
Haldamine
keeruline, kuna on üks suur tabel - arvutis on sadu tuhandeid faile.
Tahame igale kasutajale näidata ainult temaga seotud õiguseid.
Sellist maatriksit saab näidata ainult täisõigustega
administraatorile, kellele võib näidata kõike.DAC probleemid• Subjekt saab oma
õigusi meelevaldselt teistele edasi
delegeerida -
salajase faili
saab meelega või kogemata lubada ka teistele• Puuduvad
vahendid ülesüsteemsete pääsureeglite kehtestamiseks (iga
kasutaja teeb omamoodi) -
puudub keskne kontroll• Enamasti ei
kehti reeglid kõrgemal tasemel (süsteemiülem omab kõiki õigusi)
-
domeeni või süsteemi administraator või root ;Lahendused:- organisatoorne
meede - vähemalt kaks kasutajat peavad korraga sama asja tegema;- mingite õiguste
piiramine - ühel administraatoril ühed, teisel teised õigused;- auditlogi -
kõik administraatori toimingud logitakse eraldiolevasse seadmesse,
millele administraatoril puudub ligipääs.Riskid:- programmide
paigalduse õigused on, aga failiõiguseid pole - muudab programme nii, et failiõiguseid ei kontrollita jne;- auditlogist
saab mööda hiilida, andes käske, mida ei logita (Linuxi bashis
käsu ette tühik, siis ei jää käsk historysse).• Trooja hobused,
viirused jms programmid lasevad infol lekkida
•
Konfidentsiaalsust kaitsvaid kitsendusi ei saa selgelt määratleda -
salastatud andmetele ligipääs ainult teatud isikutel, kellel on
vastava taseme luba - seda diskretsionaarse pääsupoliitikaga ei
õnnestu teha.Mandatoorsed
pääsupoliitikad 1• Lühend MAC
(Mandatory Access Control)
• Siia kuuluvad
pääsupoliitikad, mis kõrvaldavad erinevaid DAC turvaprobleeme
(eeskätt soovitakse infovoogu kontrolli all hoida)
• Objektidele ja
subjektidele omistatakse turvaklassid
• Iga märgend
koosneb kahest osast:
– Tüüpi
kirjeldav kategooria (järjestamata)
– Turvataset
määrav järjestatud tundlikkusaste (objektidel) või lojaalsusaste
(subjektidel)
• Märgendid on
ainult osaliselt järjestatud (matemaatilises mõttes on tegemist
võrega)
• Klass c1
on kõrgem (≥) klassist c2, kui c1
turvatase on suurem c2 turvatasemest ning c2
kategooriad sisalduvad c1
omades .
Mandatoorsed
pääsupoliitikad 2Juurdepääsu võre
kategooriate sisaldumise järgi
Mandatoorsed
pääsupoliitikad 3• Formaalseid
meetodeid on erinevaid
• Levinuimad on
Bell-LaPadula mudel (konfidentsiaalsuse kaitseks -
tagab, et info
ei leki) ja
Biba mudel (
duaalne , tervikluse kaitseks -
tagab,
et asjassepuutumatu ei riku andmeid)
• Bell-LaPadula
mudel rakendatuna andmeüksustele:
– Subjekt S tohib
lugeda andmeüksust A, kui cS
≥ cA
– Subjekt S tohib
kirjutada andmeüksust A, kui cS
≤ cA
• Andmebaaside
jaoks on MAC meetodeid edasi arendatud, eri turvatasemed tähendavad
erinevaid vaateid. Leidub MAC poliitikat kasutada suutvaid
andmebaasisüsteeme, igaüks natuke erinev.
• MAC kasutavaid
operatsioonisüsteeme kutsutakse usaldatavateks (trusted) — Trusted
IRIX, Trusted Solaris, ...
SELinux (Security
Enhanced Linux ) - nt Fedora, CentOS - näide sellest, kuidas Linuxile
on ehitatud lisaks mandatoorsed pääsupoliitikad - “tahan sellist
muudatust teha, kas pääsupoliitika lubab?”, vajalike
turvamärgistega mängimine on keeruline, tuleb ära õppida.Ubuntu kasutab
AppArmorit.Sisseehitatud
programmide usaldustase on kõrgem kui isekirjutatud või alla laetud
programmidel, mistõttu salastatud sisuga faili avamine õnnestub
ainult sisseehitatud programmiga, aga mitte teistega.MAC head ja vead• Trooja hobuste
probleem on likvideeritud
• Kasutajate
kokkumängust tingitud salakanalid nende vahel on alles
•
Konfidentsiaalsuse tagamine on olemas, "pime kirjutamine"
võib terviklusele probleemiks saada -
sisu ei näe, aga juurde
kirjutada on võimalik• Väga jäik ja
staatiline — kasutajad ja protsessid ise ei saa objektide
turvatasemeid muuta - vajab
keskset haldamist• Jäikuse tõttu
enamasti sobimatu kommertsmaailma
• Ei saa
automaatselt rakendada võimalikku kollektiivpääsu -
nt kui on
vaja fail teha 10-le kättesaadavaks, siis ei ole võimalik seda teha
grupina, tuleb teha sobiv turvatüüp, määrata see failile ja siis
määratleda see kõigile neile kasutajatele.Rollipõhised
pääsupoliitikad• Lühend RBAC
(
Role -
Based Access Control)
• Reaalsesse
maailma ja ärimudelitesse sobivamad kui DAC ja MAC
• Kasutajate pääsu
reguleeritakse vastavalt nende tööalasele funktsioonile
• Roll väljendab
tööülesandeid ("raamatupidaja")
• Ühes rollis
võib olla mitu kasutajat (
mitu raamatupidajat), üks kasutaja
võib olla erinevatel aegadel erinevates rollides
• Rollide
ülesanded ja
privileegid kattuvad osaliselt -> tekib
rollihierarhia koos päritavate õigustega
• Võib
kombineerida nii DAC kui MAC poliitikatega, RBAC ise on
"poliitiliselt neutraalne" — vahend etteantud poliitika
realiseerimiseks
Rollihierarhia
näideNooled
iseloomustavad pärimise suunda üldisemalt üksikule
Rollipõhise
poliitika põhiprintsiibid• Staatiline
kohustuste
lahusus — määratakse üksteist välistavad rollid -
audiitor ei tohi olla sama kui auditeeritav• Rollikandjate
arvu piiramine — iga rolli saab kanda teatud etteantud arv
kasutajaid -
mitut administraatorit on vaja? 0 - halb; 1 -
käideldavusprobleem, võib haigeks jääda, töölt lahkuda vms; 2 - kukuvad sama lennukiga alla, jäävad samasse haigusesse, üks puhkab
ja teine haige; 10 - suhtlusprobleemid, dubleeritakse tööd; võiks
olla varuadministraatorid, kelle jaoks on olemas dokumenteeritud olemasolevad protsessid ja lahendused, et vajadusel töö üle võtta• Dünaamiline
kohustuste lahusus — vahel peab inimene olema mitmes üksteist
välistavas rollis, aga igal ajahetkel siiski ühes korraga -
ühel
päeval see, kes liinil töötab, teisel päeval kvaliteedikontrollis•
Protseduuriline kohustuste lahusus — piiratakse ühe ja sama isiku juurdepääsu
mingi
kriitilise funktsiooni järjestikustele faasidele -
kolmes erinevas rollis olemine: teises rollis ei tohi kokku puutuda eelmise
rolli tööga - nt arve vastuvõtja edastab maksmise heakskiidu
saamiseks teisele, teine kiidab heaks ja saadab makse teostamiseks
kolmandale.5. Unixi turvamudel
Loengu algus (1.
slaid) tasuks üle kuulata• Subjektideks on
kasutajad. Kasutajate poolt käivitatud programmidel on täpselt
samad õigused, mis kasutajal endal
• Igal kasutajal
on oma numbriline ID (UID)
• Ühele
kasutajale (juurkasutaja, root) on kõik lubatud; tema UID on 0
• Kaitstavaid
objekte on mitmesuguseid: eeskätt failid ja kataloogid, aga ka
soklid, välisseadmed jms
• Objektide
identifitseerimine: objektid on paigutatud ühte suurde virtuaalsesse
puukujulisse failisüsteemi -
kõik kettaseadmed, kõik heliseadmed jne oma grupina; UNIXi mantra : “Everything is a file”• Iga objektiga on
seotud omanik ning loabitid, mis
kirjeldavad erinevate subjektide
juurdepääsuõigusi -
allolev failisüsteem peab säilitama...• Kõrvalteed
objektideni on blokeeritud -
kaitstud op.-süsteem, ainult API
kaudu saab ligiUnix: kasutajad
ja grupid• Administraator
saab kasutajatest gruppe moodustada -
teised kasutajad gruppe teha
ei saa• Gruppe
identifitseeritakse numbrilise ID järgi (GID -
Group ID)
• Iga kasutajaga
on seotud tema primaarne grupp -
kasutaja loob mingi faili, see
seotakse mingi kasutaja ja mingi grupiga• Lisaks võib
kasutaja kuuluda ka teistesse gruppidesse
• Kasutaja UID,
GID ja lisa-GID’id seotakse tema protsessidega süsteemi sisse
logimisel ning need päranduvad kõigile alamprotsessidele
• Kasutaja ise ei
saa reeglina oma grupikuuluvusi muuta -
küll aga saab valida,
milline gruppidest on primaarne• Grupid on
kasutajale vajalikud ligipääsuõiguste realiseerimiseks -
iga
failiga on seotud mingi grupp, kellele õigused on antud• Primaarset
gruppi kasutatakse lisaks ka loodavate failide juurdepääsuõiguste
määramisel
Unix: loabitid• Iga objektiga on
seotud kolm õiguste komplekti:
– Omanik — see,
kes faili lõi või kellele administraator faili andis
– Grupp —
omaniku poolt määratud grupp, kellele ta saab määrata
ülejäänutest erinevaid õigusi. Vaikimisi saab loodava faili
grupiks omaniku primaarne grupp, kuid omanik saab seda muuta.
– Ülejäänud —
kõik peale omaniku ning antud grupi
rwx r -
x - - -omanik grupp muud
• Loabitid
kehtivad ainult konkreetse objekti kohta ega pärandu failipuus
allapoole -
õiguseid ei pärita kataloogi küljest• Igas
grupis on
kolm bitti:
r —
lugemine 4 (
22)
w —
kirjutamine 2 (
21)
x —
täitmine 1 (
20)
•
r w x r - x -
- - = 0750 (kaheksandsüsteem!!!)
Unix:
juurkasutaja•
Traditsioonilises Unixis on juurkasutaja (root) kõikvõimas, talle
ei kehti mingid juurdepääsupiirangud
• Tohib kasutajaid
lisada, muuta,
kustutada • Tohib failide
omanikke muuta -
tavakasutaja seda teha ei saa• Tohib
grupikuuluvusi meelevaldselt muuta
• Tohib jooksva
protsessiga seotud kasutajainfot (UID, GID) muuta (login!) -
võib
muuta rooti protsessi kasutaja omaks• Tohib
failisüsteeme monteerida, võrku konfigureerida, ...
• =>
Juurkasutaja peab olema usaldatav
Unix: õiguste
delegeerimine• Probleem:
kasutajate õigused ainult vähenevad ülalt alla, mõne operatsiooni
jaoks on vaja
ajutiselt õigusi lisada
– Näide:
paroolivahetus
– Kasutajate info
(nimi, UID, GID, autentimisinfo, ...) on kirjas mingis
failis – See fail ei saa
olla kõigile kirjutatav
– => sinna
kirjutamiseks on vaja ajutiselt (range kontrolli all!) juurkasutaja
õigusi
• Lahendus:
setuid-programmid — töötavad programmifaili omaniku õigustes -
muidu töötavad programmifaili käivitaja õigustes• Sarnaselt on
olemas ka setgid-programmid — töötavad programmifaili grupi poolt
määratud GID’iga -
Unix: set*id
programmid• Kuna sisuliselt
on tegemist lüüsidega kõrgemale turvatasemele, on tegu
turvakriitiliste programmidega
• Kõigist set*id
programmidest me ei pääse, aga üleliigsete süsteemis hoidmine on
pahanduse kohale kutsumine
• Neis
programmides on sageli vaja ka tegeliku käivitaja infot, seega ei
saa me käivitaja UID’d lihtsalt programmi omaniku UID-ga
asendada -
nt passwd-faili avamine, muidu näeks kõigi paroole• Lahenduseks on
tegelikult kaks UID-d (päris UID ja efektiivne UID), sama GID’i
puhul
Unix: efektiivne
UID•
Setuid-programmil muudetakse efektiivne UID (setgid-programmil
efektiivne GID)
• Tegelikult
mõjutab objektidele juurdepääsu efektiivne UID — EUID
• Analoogselt on
olemas efektiivne GID — EGID
• Setuid-root
(s.t. EUID = 0) programm saab edasi juba UID, EUID, GID, EGID muuta
Unix: veel
loabitte00001
maailmale täitmine
00002
maailmale kirjutamine
00004
maailmale lugemine
00010
grupile täitmine
00020
grupile kirjutamine
00040
grupile lugemine
00100
omanikule täitmine
00200
omanikule kirjutamine
00400
omanikule lugemine
01000
"kleepbitt" -
sticky bit, kui käivitataval lehel oli sticky bit küljes, siis seda ei
saalitud välja; tänapäeval kataloogide juures kasutusel - saab
kataloogit, kuhu on õigused, faile kustutada või ümber nimetada,
kuigi failile ei pruugi õiguseid olla; sticky bitiga märgitakse, et
sellest kataloogist ei tohi kustutada kellegi faile peale enda omade02000
setgid -
omab erinevat
tähendust failidele ja kataloogidele04000
setuid -
omab tähendust
käivitatavatele failidele...
Kataloogidele
vaja execute-õigust, et näha kataloogi sisuKas
käivitatavatele programmidele on vaja read-õigust? Programmi puhul
ei ole vaja (binaarfailidel on vaja execute-õiguseid), skripti puhul
on vaja ( shell on kasutaja õiguses käima minev).Unix: umask• umask —
bitimask nendest õigustest, mida
uutel failidel kindlasti olla
ei
tohi• umask pärandub
alamprotsessidele
• Näide:
– Olgu protsessil
umask 027
– Protsess teeb
open ("file.txt", O_RDWR,
0666)
– umask 0 puhul
tekiks fail õigustega
rw-rw-rw-– Nüüd aga tekib
fail õigustega 640:
rw-r-----Unix: tänapäevLoengust vaadata,
alates 50. minutist• Esimene suund:
tuua sisse pääsuloendid (ACL), et süsteemi paindlikumaks teha
• Olemas
enam-vähem
standardne liides (setfacl, getfacl), realiseeritud
esialgu
kommerts -Unixites,
praeguseks levinud ka
vabadele Unixitele
• Näide:
setfacl
-m user:varmo:rw-,mask:rw- file.txt
-m = modify mask =
• Teine suund:
elimineerida kõikvõimas juurkasutaja ja asendada ta rea vähemate
õigustega kasutajatega, kellest mõni suudab kasutajaid
administreerida, mõni tarkvara paigaldada jne.
• Enamasti
kasutatakse selleks voliloendeid
• Sellest on välja
kasvanud rida Trusted-* nimelisi süsteeme
PAM (Pluggable
Authentication Modules)• Meetod
autentimisega tegelevate alamprogrammide ühte kohta koondamiseks
• Seni vajasime
igale paroole kontrollivale programmile setuid-lippu, see pole
mõistlik
• Koondame
autentimise spetsiaalse teegi sisse, mis kasutab vajadusel välist
setuid-programmi
• Tegelikult
saavutame rohkem —
tsentraalse koha kasutajate autentimiseks ja
ülesüsteemseteks piiranguteks
• Iga autentimist
vajava teenuse jaoks saame valida mingi hulga
moodulite vahel
PAM moodulid• Nelja liiki
mooduleid:
– auth —
autentimismeetodi valik
– account —
kasutajakonto piirangud
– session —
konkreetse sessiooni autentimine ja piirangud -
remote
IP- aadressid , logimise kellaajad – password —
paroolipoliitika pealesurumiseks
• Iga
moodul tagastab ühe järgmistest väärtustest:
–
success ,
failure,
ignore • Mooduli
atribuudid : üks järgmistest
–
required ,
requisite,
optional , sufficient, binding
PAM
konfiguratsiooni näideauth required pam_unix.so nullok_secure
auth required pam_nologin.so
account
required pam_unix.so
session
required pam_unix.so
session
required pam_limits.so
session
optional pam_motd.so
password
required pam_unix.so nullok
obscure min=4 max=8
password
required pam_cracklib.so retry=3 minlen=6 difok=3
Windows NT
turvamudel• Subjekte
(kasutajaid ja gruppe) identifitseeritakse süsteemisiseselt
turvaidentifikaatori (SID — Security ID) järgi
• SAM (Security
Account Manager) — peab kasutajate andmebaasi ja autendib
kasutajaid
• Sisse logimisel
jäetakse kasutaja kohta meelde tema SID ning kõigi gruppide SID’id,
kuhu see kasutaja kuulub
• Objekte on palju
erinevaid: failid, kataloogid, seadmed, registrivõtmed, protsessid,
protsessidevahelised torud,
aknad, ...
• Kõigile
objektidele lisatakse ACL (nimekiri kasutajate, õiguste ja
lubatavuse kolmikutest)
• Lisaks on olemas
kasutajate õigused — süsteemi poolt defineeritud õigused, mille
väljendamiseks pole konkreetset objekti (võrgust sisse logimise
õigus, kella seadmine,
õigus teenusena sisse logida, ...).
Windows NT:
volitatud serverid• Kasutaja poolt
käivitatud protsessid töötavad kasutaja turvakontekstis (kasutaja
õigustes)
• Kaitstud
serverid töötavad operatsioonisüsteemi sees ning suhtlevad
kasutajaprotsessidega (näide: Win32 alamsüsteem,
Win64
alamsüsteem, POSIX alamsüsteem)
• Kaitstud server
võib vajada kliendi turvakonteksti, et teha operatsioone kasutaja
eest
• Selleks võib
serverprotsess (täpsemalt serverprotsessi lõim) ajutiselt kliendina
esineda (impersonation)
Windows NT: ACL• Iga objektiga
seotakse turvainfo: omaniku SID, grupi SID, ACL ja süsteemne ACL
(auditeerimiseks)
• ACL’i saab
muuta omanik, süsteemset ACL’i administraator
• Eristatakse
harilikke (failid) ja konteinerobjekte (kataloogid)
• Konteineritesse
loodavad objektid pärivad oma ACL’i vaikimisi konteinerilt
• ACL koosneb
järjestatud juurdepääsukirjetest (ACE — Access Control
Entry )
• Tühi ACL
tähendab igasuguste juurdepääsuõiguste puudumist
•
Puuduv ACL lubab
igasuguse juurdepääsu
• ACL’
idega määratavad õigused sõltuvad kaitstava objekti tüübist —
failil omad, printeril omad
Windows Vista :
terviklustasemed• Alates Windows
Vistast on olemas MAC
alged : protsesside usaldustase
(kõrge/keskmine/madal) ning turvatavate objektide terviklustase
• Turvatavad
objektid: failid, registrivõtmed, kasutajaliidese objektid (aknad
aknateadete saatmiseks)
• Põhiline
kasutus sama kasutaja erinevate protsesside isoleerimiseks
• Esimeseks
suuremaks kasutuseks Internet Exploreri kaitstud mood — suurem osa
IE-st
jookseb madalal turvatasemel ja ei saa muule süsteemile ligi
• Terviklustaseme
infot säilitatakse turvatavate objektide süsteemses ACL-is, info
puudumisel arvestatakse keskmist terviklustaset
Windows NT: ACL
läbivaatus• Olgu meil
kasutajaprogrammi päring, mis soovib saada mingite etteantud
õigustega juurdepääsu
• ACL läbitakse
kirjehaaval, kuni saadakse teada lõppvastus
• Kui avastatakse
mõnda soovitud õigust
keelav kirje, siis on tulemus negatiivne
• Lubavad kirjed
erinevatele õigustele täiendavad üksteist ("liituvad")
• Kui kõik
soovitud õigused leitakse, on tulemus positiivne
• Kui jõutakse
niisama ACL lõpuni, on tulemus negatiivne
• Lisaks on
spetsiaalsete lippudega ACE-d päritavate õiguste kohta
Windows NT: ACL
näitedPäring: kasutaja
Mati grupist Müüjad soovib õigusi RW
Mobiilseadmed• Seadme kaitsmine
volitamata kasutajate eest
• Salvestatud
andmete kaitse (näiteks krüpteerimisega)
• Võrgusuhtluse
turve
• Rakenduste
liideste turve
– Üks
rakendus ei
saa reeglina teist rakendust usaldada
Android • Avatud kuid
Google kontrolli all olev
platvorm • Linuxi tuum,
Androidi teegid, UI ja VM
• Igale
rakendusele oma
liivakast • Igal rakendusel
oma UID ja GID (installil valitakse)
• Dalvik VM ei
paku turvapiiranguid
• Rakenduses
kirjeldatakse vajatavad õigused, neid kontrollib OS
raamistik • Rakenduste
vahelised sidevõimalused OS API kaudu
• Igal rakendusel
oma failid, juurdepääsu reguleeritakse Unixi õigustega
• Signeeritud
rakendused • Rakenduste poes
on
automaatne turvakontroll
Apple iOS• Apple kontrolli
all olev kinnine platvorm
• Rakendustel
liivakastid
• Rakendused
suhtlevad omavahel ainult OS API kaudu
• Koodi
genereerimine ja interpreteerimine keelatud
• Signeeritud
rakendused, ainult poest paigaldatavad
• Rakenduste poes
on käsitsi üle kontrollitud rakendused
6. Ohud võrgus
• Ohtude liigid
• Internet
• Info lekkimine
• Aktiivne
sekkumine
• Turvaaugud
programmides
• Teenusetõkestus
• Hüppelauad
• Maine
kahjustamine
Mis ohud meid
võrgus varitsevad?• Info lekkimine
arvutivõrgu kaudu
• Aktiivne
volitamata sekkumine -
pahavara, lunavara (ransomware)• Teenusetõkestus
-
jõudluse mõjutamine• Arvuti
kasutamine hüppelauana edasi tungimiseks -
nt kui on teada,
millist viirusetõrjet kasutatakse, kasutatakse ära vastava
viirusetõrje nõrkusi; süsteeme kaitstakse väljast tulijate eest,
aga mitte seesolijate eest.• Maine
rikkumine -
veebilehe näotustamineVõrk == Internet• Miks Internet
pole turvaline?
Protokollid ei tohiks olla vahelt võetavad
(peavad olema otsast otsani turvatud, sisule ei tohi paljastamatult
ligi saada), pealtkuulamine peaks olema välistatud.– Disainitud ilma
turvalisuseta
– Turvalisust on
juurde lapitud tükikaupa -
erinevad tegijad (sageli laborid),
erinevad lähenemised; raskuspunkt on liikunud otspunktide
ründamisele, kuna krüpto töötab juba päris hästi– Kasutajad ei
hooli -
kasutajad tahavad funktsionaalsust, turvalisus on segav asi.• Miks Internet
muudab tihti ka mitte otseselt võrguga seotud tarkvara
ebaturvaliseks?
– Programmidele
tulevad andmefailid mitteusaldatud allikast (teisest
turvakontekstist) ning senised lihtsad programmivead saavad
turvaaukudeks -
nt on meil kohalikus arvutis töötav rakendus,
milles on andmed. Programmis olev vigane kood võib jooksutada
taustal mingeid andmeid (sageli resultaat crashimine) - ilma võrguta
jooksutab ainult meie andmeid, riske vähe. Võrgust saadud dokumendi
jooksutamisel võib taustal käivituda kellegi teise kood, mis on
dokumendi koodi sisse uputatud.– Näide: Windowsi
.HLP-failid -
võisid käivitada mingeid kohalikke rakendusiInfo lekkimine• Konfigureerimise
ja administreerimise vead
– Liigsed teenused
-
out-of-the-box lahendusena oli 1990-ndate lõpus arvutites
– Failisüsteemi
jagamine liiga laiale ringile (SMB, NFS, HTTP):
- Kui mingi alamkataloog on välja jagatud, võib klient ka ülemkataloogile ligi pääseda (../); Windows 95-s oli SMB faili jagamise protokoll , seal oli sama probleem (kasutati Windowsi paroolide varastamiseks) - nt printeri jagamiseks kasutati võrgushae’i print $ (Windows vaikimisi ei näita $-ga), printeri installimisel installiti driverid sageli kontrollimata lähteandmetest; võidaksegi jagada ketast liiga laiale ringile (konf tehtud rumalalt);
- NFS-is jagatud kaustad - olnud kunagi selline probleem, et kuigi kaustad olid lubatud ainult teatud masinatele , siis tarkvara ei saanud üle 256-pikkuste aadresside parsimisega hakkama ja ei kehtestanud piiranguid;
- HTTP nähtav, HTTPS on krüpteeritud
– Aktiivsisu liiga
automaatne käivitamine
– ...
• Vead teenuseid
pakkuvates programmides
• Võrguliikluse
pealtkuulamine
–
Ethernet -
arvutid kõik ühel siinil, info saatmisel saadetakse koos
MAC- aadressiga , kõik kuulevad, sobiva MAC-iga võtab vastu.– Switch — kas
lahendus? -
switch edastab igale arvutile ainult sellele arvutile
mõeldud pakette, samas ei aita eriti palju rohkem. Switch peab
meeles, millise seadme pordilt liiklust tuleb. Kui switchil vastav
andmebaas täis saab, siis suunatakse ikkagi kõigile. Ründaja
ujutab MAC-tabeli üle ja siis saab andmeid edastada kõigile.
Lahendusena a) peab MAC-aadressid sisse konfigureerima, dünaamiline
haldus võetakse maha, või b) ehitatakse sisse mingi heuristika – Muud võrgud
(modemside, DSL, kaabelvõrgud, raadiovõrgud, ...) :
- wifi võrk võib olla nõrga signaaliga, aga ründaja võib kasutada tugevamat suundantenni ja saab isegi pika maa tagant võrgule ligi. Lahendusena nt varjestus (Faraday puur ) ei ole hea lahendus - mobiilid ei tööta, aknad on ruumil ikkagi, sobib ainult eriotstarbeks.
- Raadiovõrgud on sageli militaarotstarbel, nende mastide vahelist infot püütakse kinni;
- DSL on vasktraadi peal, kiirus kuni 30-40Mbps, hakatud asendama fiibriga; kaabelvõrgud on need, millega teenusepakkujad edastavad telekanaleid ja muud seonduvat;
- Modemi, DSL ja kaabelvõrgu pealtkuulamine on veidi kõrgem pilotaaž (eeldab rohkem teadmisi, oskuseid, vahendeid), aga siiski tehtav;
- Kaugemad võrgud - ründaja võib ruutimisinfo abil suunata andmed oma seadmete kaudu (loob näiteks andmetest koopia); ruuteris saab 5min konfiga suunata sisse tuleva esmalt välja teisele ruuterile ja sealt tagasi tuleva info suunata edasi õigele saajale.
– Turvasüsteemi
disainimisel tasub eeldada, et pidevalt võidakse kusagil liiklust
pealt kuulata -
ei ole mõtet disainida uusi avatekstiga
protokolle, kui on juba olemas korraliku krüptoga protokolle; Telnet -ühendus on avalik ja krüpteerimata (mööda Telneti liiguvad
käsud kujul: telnet hostname usrename:password), selle asemel tasub
kasutada SSH.Aktiivne
sekkumineArvuti identiteedi
võltsimine (ründav arvuti imiteerib rünnatava poolt usaldatud
arvutit)
• IP aadressi
vahetus -
ainult kohtvõrgu piires• MAC aadressi
vahetus -
kui wifi-võrku turvatakse, siis vanasti kasutati
MAC-aadresside white-listi; võrku pääsemiseks klooniti mõne teada
oleva white listi arvuti võrgukaardi MAC enda aadressile • IP aadressi
võltsimine (IP
spoofing ) -
välja saab saata võltsitud
lähteaadressiga pakette, vastuseid kätte ei saa, aga saab teeselda,
et oled vastuse kätte saanud.• MAC aadressi
võltsimine -
• ARP võltsimine
-
Address Resolution Protocol: hei, kellel on selline aadress?
vastab ainult üks. Kui ründaja jõuab kiiremini vastata, saab
alustada suhtluse. Nt Google’i aadressi küsimisel võib
ARP-võltsimise kaudu suunata liikluse Google’i asemel oma
serverile• DNS
kirjete võltsimine, valed pöördteisendused -
pöördteisendused on
administraatori kontrolli all• Source ruuting -
internetipakettide IP option, mis määrab, millist teed mööda liiklus kulgema peab; saab suunata liikluse oma seadme kaudu• Marsruutimisinfo
võltsimine -
PGP- ruutimine (nt Pakistan ja Youtube)• Ühenduste
kaaperdamine (hijacking) -
madalama taseme võrgurünne; ründaja
kuulab pealt kaht suhtlevat osapoolt; peab teadma TCP- pakettide järjekorranumbreid; ühele teatab, et reset (ühendus on kinni) ja
teisele saadab oma andmeid - st A arvab, et suhtleb B ja B A-ga, aga
tegelikult A suhtleb C-ga ja B suhtleb C-ga ja C suhtleb A ja B-ga.Turvaaugud
programmides• Auklikud on nii
server- kui kliendiprogrammid (brauserid kui palju võrgust tulevat
infot töötlevad programmid!)
•
Regulaarne turvaparanduste rakendamine on kohustuslik
• Disaini vead
(
JavaScript , ActiveX, ...) -
veebilehtedega saab kaasa panna
JavaScriptis kirjutatud skripte, alguses oli turvadisain olematu, see
lisandus hiljem jupikaupa; Java appletid ise alguses turvalised, aga
neile antakse õiguseid käivitada muid applete ja õigus otsustada
antakse kasutajale ja nii kaob ka turvalisus; ActiveX sertifikaadid -
tänapäeval pigem minevik •
Implementatsiooni vead, näiteks:
– Puhvri
ületäitumised -
mälus lubatakse 1KB, ründaja saadab 2KB,
soditakse üle järgmise jupi andmeid (enda väärtustega või
lihtsalt toimivuse häirimiseks)– Failisüsteemi
ja juurdepääsu
semantika -
kui on määratud, et aadressid on
tõstutundikud ja läbivalt väikeste tähtedega, siis Windowsis on
aadressid tõstutundetud.– Probleemid
erinevate turvatsoonide segamisel -
kasutatakse veebist leitavaid
JavaScript-koode ja viidatakse otse võrgus olevatele failidele;
sellisel juhul tuleb usaldada ka neid välijastpoolt saadavaid
koodijuppe.•
Konfiguratsioonivead
Ettevaatust Kõik võrgust
tulevad andmed on ebausaldusväärsed!!!
Denial of Service
— teenusetõkestus• Ülekoormus -
Apache veebiserveriga seotud Apache Benchmark - oli võimalik
tekitada nii palju päringuid, et enamus veebiservereid ei saanud
nendega hakkama;• Ressursside
ammendamine
– Kettaruum
(näiteks aetakse logisid täis)
– Mälu,
protsessitabel -
mälukasutus - iga protsessi jaoks oma
alamprotsess, paljude samaagsete protsesside tõttu saab mälu otsa;
– Protsessoriaeg
(näiteks tehakse "tühja" krüpteerimist) -
protsessorikoormuse kasvatamine dummy HTTPS handshake’ide kaudu
(1 tuumaga klient suudab tekitada rohkem päringuid kui 40 tuumaga
server);– Võrguriba
(ujutatakse pakettidega üle) -
• Vead süsteemi
ja protokollide disainis ja realisatsioonis -
saadame paketi ,
mille peale server crashib: Windows 95 - saadetakse pakett , mis ei
anna lugemis- ega kirjutamiskäsku, aga on märgitud Urgent, sellisel
juhul OS jääb tsüklisse, kuna kirjutamist ja lugemist toimunud
pole, seega arvab, et midagi on tegemata ja alustab kontrolli uuesti.• Hajus
teenusetõkestus (Distributed DoS) -
veebilehe link pannakse mõne
muu populaarse lehe avalehele; planeeritud grupiviisiline rünnak;
tuvastamiseks analüüsida päringute intervallide regulaarsust ning
päringute tüüpi (botil ja inimesel on erinev kasutusmuster)• Üldiselt on
seda tüüpi rünnetega väga raske võidelda -
raske tagada
käideldavustHüppelauadRündaja ei vaja
saavutatud juurdepääsu tihti otseselt, vaid mingi järgmise
eesmärgi saavutamiseks
• Kasutajatunnuse
hõivamine superkasutaja või teiste kasutajate ründamiseks
• Lüüsarvuti
hõivamine sisevõrku juurdepääsu saamiseks
• Strateegiliselt
olulises punktis asuva arvuti hõivamine liikluse pealtkuulamiseks
• Arvuti hõivamine
teistele arvutitele teenusetõkestusrünnete tegemiseks -
botneti
loomine• Arvuti hõivamine
jälitamise raskendamiseks -
ründaja hüppab jälgede segamiseks
mitme arvuti kaudu, igaüks paikneb erinevas riigis - nii on
keerulisem ründajat tuvastada; Euroopas teenusepakkujad logivad
seansse (IP-d, kasutatud pordid, andmesidemahud jms)• Vahendusmasin
rämpsposti laiali saatmiseks -
oht, et väljaminev IP satub
blacklisti ning takistatakse väljapoole suunatud liiklus;OpSec seisukohalt
tuleks tagada, et haldussüsteemide ligipääs on ka sisevõrgus
piisavalt turvatud.Maine
kahjustamine• Veebilehtede
näotustamine
• (Piisavalt)
avalikud rünnakud kellegi kolmanda vastu vallutatud arvutist
• Rämpsposti
saatmine Kui keegi on teie
veebiserverile pahavara paigaldanud, siis esmalt blokeerida selle
liiklus ja edasine mõju, siis uurida selle päritolu - tasub ära
vahetada kõikvõimalikud paroolid (kasutajatel, kellel on piisavad õigused muudatusi teha); tuvastada, kust pahavara on ligi saanud ja
see ligipääs turvaliseks muuta, muidu tuleb kohe uuesti tagasi.Vältige
konfidentsiaalseid teemasid avalikes kohtades.7. Avaliku võtme
infrastruktuurid (kommenteerimata)
• Avalikud ja
salajased võtmed
• Sertifikaat
•
Sertifitseerimiskeskused
• X.509
• HTTPS
• PGP
• SPKI, SDSI
• Autentimine vs
allkiri
• Notariseerimine
ja ajatembeldamine
• Blockchain
Avalikud ja
salajased võtmed• Igal kasutajal
on oma võtmepaar: salajane ja avalik võti
• Salajane võti
hoitakse enda teada
• Avalik võti on
kõigile teada
• Oma salajase
võtmega krüpteerimine on
signeerimine , signatuuri saab kontrollida
signeerija avaliku võtme abil
• Kellegi avaliku
võtmega krüpteeritu saab lahti ainult vastava salajase võtme
omanik
• Näiteks RSA,
DSA, Diffie-Hellman, ElGamal, ECDSA -
enamus algoritme põhinevad
matemaatikal, ellipskõverad on veel omaette teema//siit alates
tasub äkki loengut üle kuulata, kippusin magama jäämaSertifikaat• Oleks vaja
siduda inimesed vastavate avalike võtmetega
•
Avalikest võtmetest saab teha avaliku kataloogi
• Kust tuleb
usaldus selle seostamise vastu? -
selleks kasutame usaldatud
isikut• Usaldatud isik
võib teiste avalikke võtmeid signeerida
• Isikusertifikaat
— signeeritud kinnitus avaliku võtme ja nime sidumiseks -
“selle
võtme omanikule on antud õigus süsteemi konfigureerida” jms.•
Atribuutsertifikaat — signeeritud kinnitus nime ja õiguste
sidumiseks
• Kes on usaldatud
isik (isikud)?
• Kui kaua
sertifikaat kehtib?
Sertifitseerimiskeskus• Võtame
usaldatud kolmanda
osapoole tsentraalselt sertifikaate
jagama -
selle
osapoole puhul ei pruugi keegi teada, kui antud kolmas osapool midagi
pahatahtlikku teeb• CA
(Ceritification Authority) — sertifitseerimiskeskus
• CA tuvastab
isiku ja annab välja sertifikaadi isiku poolt näidatud avaliku
võtmega
Sertifitseerimishierarhia• Kes kinnitab CA
võtme kehtivust? Teine CA
• Teoreetiliselt
tekib üks suur
hierarhia • Praktikas tekib
palju kohalikke hierarhiaid (puu asemel mets) -
klient peab usaldama metsa kõiki tippe .CA-dele on omad
nõuded ning peab nendele vastama.X.509• X.509 on ISO/OSI
standardformaat sertifikaatide jaoks
• X.500 —
hierarhiline eraldusnimede süsteem (DN — Distinguished Name)
• Sertifikaadi
omaniku nimi esitatakse X.500 eraldusnimena, näiteks
/C=EE/L=Tartu/O=Cybernetica
/OU=Tartu
labor /CN=Meelis Roos
/tavaliselt
piirdutakse vaikimisi antud väärtustega, omi asju eraldi ei
genereerita, kuna klienti arvuti ei pruugi suuta kõike tõlkida.• Algselt
offline-rakenduste jaoks, alates versioonist 3 toetab ka online
tegevusi, praegu on viimane versioon 5
• Sertifikaadid
publitseeritakse kataloogiteenuse kaudu (DAP, LDAP) -
kataloogiteenus
ei ole vältimatult vajalik• OCSP – Online
Certificate Status Protocol -
online-teenustest olulisim, küsib
CA käest, kas CA poolt välja antud sertifikaat on endiselt kehtiv,X.509 sertifikaatversion
serialNumber
issuer
subject
validity
signature
key
extensions
versioon
järjekorranumber
väljaandja DN
omaniku DN
kehtivusaeg
signatuurialgoritm
omaniku avalik võti
laiendused
sig_alg
signature
signatuuri algoritm
signatuuri väärtus
X.509 praktikas
(näide: HTTPS)• Tahame autentida
veebiservereid ja veebiteenuste kasutajaid -
tahame kontrollida,
kas on päris veebipood ;• Kõigil
serveritel ja kasutajatel on oma salajane võti ja X.509 sertifikaat
-
võti võib olla nt ID-kaardi peal• Serverite
sertifikaadid annab välja firma oma CA - lihtsam järgida nõudeid.
• Firma CA serdi
annab välja rahvusvaheline CA
• Rahvusvaheliste
CA-de serdid tulevad brauseritega kaasa
• Oma kohalike
tipmiste CA-de serdid laaditakse kah brauserisse
• Klientidel on
samasugused serdid (ahelaga mingi CA-ni, mida server usaldab)
• Kliendi ja
serveri vaheliseks autentimiseks kasutatakse TLS protokolli, mis
laseb kummalgi osapoolel teist autentida;
Firma oma CA on
mõistlik siis, kui neid serte on väga palju. Üksikute jaoks on
liiga kallis ja tülikas hallata.PGP• PGP (
Pretty Good
Privacy ) — teistsuguse lähenemisega süsteem
• Usaldusvõrk —
iga kasutaja sertifitseerib oma tuttavaid
• Tekib hajus võrk
ilma tsentraalse keskuseta
• Sertifikaadid on
avalikud ja kõigile kättesaadavad
• Isikutuvastus on
reeglina nõrgem kui CA-del
•
Kompensatsiooniks on kahe inimese vahelise usalduse kontrolliks
võimalik paljusid teid kasutada (läviskeem)
• Kontrollija
määrab ise,
kuipalju ta mingit inimest usaldab
• Sarnasem
reaalsele elule kui hierarhia
• Ei skaleeru
eriti hästi
• Töötab hästi
tihedalt seotud kasutajagruppide sees
SDSI, SPKI• SDSI (Simple
Distributed Security Infrastructure) — sertifikaadi ID seob võtme
ja nime ainult sertifikaadi väljaandja jaoks
– Usaldusseosed
esitatakse võtmetel
–
Sulandunud SPKI
uude versiooni
• SPKI — Simple
Public Key Infrastructure
– Originaalses
SPKI-s oligi avalik võti kasutaja identifikaatoriks
– Volitatakse
võtmeid, mitte inimesi
– SPKI-st on
olemas läviskeem — autentimine õnnestub, kui n isikust vähemalt
k-l leiduvad autentimisteed autenditava objektini
Autentimine vs
allkirjad• Oma salajaste
võtmetega
tehtavaid operatsioone võime
laias laastus kaheks jagada:
– Autentimine
– Signeerimine
(
digitaalallkiri )
• Mõlemal juhul
on meil vaja teada sertifikaadi täpset kehtivusinfot
• Autentimise
puhul on seda kontrollida vaja vaid autentimise hetkel
• Signatuuri puhul
on oluline, et seda saaks kontrollida suvalisel hilisemal ajahetkel —
ka siis, kui sertifikaat ise enam ei kehti
Notariseerimine• Notar reaalelus
— keegi autoriteet, kes kontrollib osapoolte isikut, volitusi ja
vaba tahet
• Notariseerimine
digitaalallkirjade puhul — kontrollib osapoolte sertifikaatide
kehtivust mingil ajahetkel
• Signatuurile
lisatakse tõend sertifikaadi kehtivuse kohta
• Selle tõendi
abil saab hiljem kontrollida, et tõendi väljastamise ajal kasutaja
tuvastus kehtis
• Näide:
usaldatav kolmas osapool, kes vaatab hetke kehtivusinfot ning
signeerib vastuse
• Usaldatav —
see, kes saab käkki keerata nii, et teised hiljem tõestada ei saa,
et see tema oli
• Me ei taha
lisada usaldatavat osapoolt, kui see pole möödapääsmatu
Ajatemplid• Mis toimus enne,
kas võlakirja allkirjastamine või selle allkirja tegemiseks
kasutatud võtme avalikustumine?
• Missugune
digitaalse testamendi versioon on hilisem?
• Dokumendi sisse
kirjutatud aeg on meelevaldselt valitav
• Ajatembelduse
idee:
loome krüptograafilised meetodid dokumentide ajalise
järjestuse kontrolliks
• Notariseerimist
saab teha ajatembelduse abil: ajatembeldame kõik dokumendid ning
kõik sertifikaatide kehtivuse muutused
• Ajatembelduse
näide: räsifunktsiooni abil võltsimatu ahela ehitamine
AjatempliahelBlockchain•
Ajatembeldusahela seisu tuleb
aegajalt kuhugi tagasivõetamatult
publitseerida
• Blockchain —
tagasivõetamatu publitseerimine käib avalikult replitseeritava
ajaloo abil
• Osalejate enamus
otsustab, missugune ajalugu on õige
• Ükski osaleja
ei tohi saada liiga suurt
osakaalu (muidu muutub tõenäosus, et tema
saab ajalugu võltsida, järjest suuremaks)
• Osalejaid peab
kuidagi motiveerima
•
Bitcoin ,
Ethereum, ...
8. Krüpto
rakendamine võrguturbes
• Ülevaade
• TLS
• SSH
• DTLS
• DNSSEC,
DANE • Meili
signeerimine ja krüpteerimine
–
MIME krüptoraamistik
– PGP
• Virtuaalsed
privaatvõrgud
– IPSec
Krüpteerimine —
konfidentsiaalsuse tagamiseksAutentimine aitab
kaasa terviklusele, takistab vahendusründeid. Ainult krüpteerimisest
ei piisa. Pakitus failis plokk näeb suvaline välja, võimalik
asendada, lahtipakkimisel ei saa kontrollida, kas andmed on
terviklikud. Tahaks garanteerida värskust - et andmetükk on pärit
jooksvast seansist. Tahame krüptos kanaliterviklust.Tahame teha
krüptokanalit konfidentsiaalsuse tagamiseks, aga tahame ka
turvalisust.Tahame TCP-voogu
kapseldada krüptotoru sisse.• TLS — de
facto standard -
krüpteerivad kanali mingisuguse loogilise tee kaudu• SSH —
konkurent TLS-le (oma nišis) -
krüpteerivad kanali mingisuguse
loogilise tee kaudu• IPSec —
standard IP
tasemele -
krüpteerib kolmandas kihis iga paketi
eraldi sõltumata sellest, mis toimub kõrgemal tasemel• PGP (
Pretty
Good Protection ) — (meili) krüpteerimine ja signeerimine -
kõrgema taseme objektide krüpteerimiseks• S/MIME
(
Secure/Multipurpose Internet Mail Extensions) — MIME
lisandused krüpteerimiseks ja signeerimiseks -
muude protokollide
sisse haakimiseks, nt manuste krüpteerimiseks; kasutatakse
piiratumalt ka http puhul• Kerberos -
Windowsi domeenindus• Secure RPC -
Unixis kasutusel, aga pole just levinud• ...
Leidub ka
rakendusespetsiifilisi, varem oli ka SSH rakendusespetsiifiline.
Chati jaoks on omad lahendused. Skype kasutas kunagi P2P-protokolle,
tänapäeval on kolinud servieripõhisele.Lisaks on ka
kohalikes masinates kasutatavat lokaalset krüptot, mida praegu ei
käsitle.TLSMuutub ajas,
kindlasti ei tasuks loota ainult TLS-ile (“Meil on TLS, pole
krüptot vaja!”).• SSL — Secure
Sockets
Layer (algne standard, tänapäeval vananenud) -
algne
standard, töötati välja Netscape ’is, mh https-i jaoks• TLS (Transport
Layer Security) — SSLv3-st edasi arenenud IETF (
Internet
Engineering Task Force) standard -
praegu v1.2, alla TLS 1.2 toega ei tasu uusi asju teha• Kiht TCP ja
rakenduste vahel, loob TCP laadse "toru"
• Toru sees saab
rääkida muid protokolle (HTTP, LDAP,
IMAP ,
POP3 , telnet, ...) -
IMAP oluliselt paindlikum, POP3 siiski pole veel päris kadunud• Toru kumbagi
otsa saab autentida sertifikaadi abil -
kummalgi osapoolel on
salajane võti, teine osapool kontrollib, kas sertifikaat
(sertifikaat ise on avalik) vastab nimele ja on piisava
usaldusahelaga.• Torus liikuvad
andmed krüpteeritakse (+tervikluse kaitse) -
seansivõtme abil
krüpteeritakse andmed, seansivõtmed genereeritakse teatud
intervallidega uuesti master võtme põhjal - ühe võtmega suurt
hulka andmeid krüpteerides hakkab see juba võtme enda kohta midagi
reetma.• Torus liikuvad
andmed võib ka pakkida (RLE, zlib)
TLS protokollist• Kumbki saadab
oma versiooninumbri ja toetatud šifrite nimekirja
• Server saadab
oma serdi (ja küsib kliendi serti, kui soovib)
• Klient autendib
serverit sertifikaadi järgi (veebi puhul kontrollib ka serdi seest
domeeninime)
• Klient arvutab
peamise võtme senise info järgi
• Klient saadab
serverile selle võtme (krüpteerituna serveri avaliku võtmega)
• Kliendi
autentimise puhul saadab klient ka oma serdi ja ühe tüki
signeeritud andmeid ja server kontrollib neid
• Peamisest
võtmest genereeritakse vahetatavad sessioonivõtmed
• Kumbki osapool
kinnitab teisele, et hakkab genereeritud võtmete abil andmeid
vahetama;
andmevahetus võib alata -
samm on vajalik
vahendusrünnete välistamiseks.Https annab
kanali autentimise, shttp annab igale objektile signatuuri (parem
tõestusväärtus); kasutusele jäi https.SSH• SSH — Secure
SHell -
soomlaste leiutatud, versioon 1 oli kehvake• Samuti TCP ja
rakenduse vahel
• Osapoolte vahel
on krüpteeritud ja võibolla ka pakitud sisuga toru
• Serverit
autenditakse
serveri avaliku võtme järgi -
klient jätab
serveri avalikud võtmed meelde ja kasutab neid järgmisel korral
võrdlemiseks; vahendusrünnete vältimiseks ei tohiks räsisid
pimesi aktsepteerida vaid tuleks verifitseerida• Klienti võib
autentida kliendi võtme abil, kliendimasina võtme abil või parooli
abil (interaktiivselt) -
kliendimasina võtmeid tänapäeval enam
eriti ei kasutata; parooli abil autentimine on endiselt levinud• SSH ühenduse
sisse tekitatakse mitu virtuaalset
loogilist kanalit (näiteks
teine toru X jaoks) -
klient saab ise häälestada, kuidas kanalid
on ühendatud• On olemas
mähkurid mitmete varasemate käskude turvaliseks asendamiseks
SSH abil saab liikuda välisvõrgust tulemüüriarvuti kaudu sisevõrgu arvutiteni
võttes SSH-ühenduse tulemüüriarvutisse, kust võetakse uus
SSH-ühendus sisevõrgu arvutisse.Datagram TLS
(DTLS)• TLS töötab TCP
baiditoru otsas, vahel on vaja kaitsta ka üksikute pakettide
vahetust
• DTLS —
TLS-
laadne küptoprotokoll paketigranulaarsusega side jaoks -
enamasti UDP jaoks• UDP, SCTP, DCCP,
SRTP protokollide baasil
• Võtmevahetus ja
autentimine nagu vastaval TLS versioonil, edasise side jaoks ei
emuleerita baidivoogu
DNSSEC• DNS (Domain Name
System) — Interneti nimeteenus
• Tavalised DNS
päringute vastused on ründaja poolt võltsitavad -
kes suudab
pealt kuulata, suudab ka võltsida• DNSSEC toob
juurde
vastuste signeerimine ning iga domeenitaseme kohta
signeerimisvõtme -
lisab DNS-ile krüpto• Tehniline
sertifitseerimishierarhia DNS
puus • DANE (
DNS-based
Authentication of Named Entities) — DNSSEC abil turvatud DNS-i
kaudu muude võtmete levitamise initsiatiiv (HTTPS, IPSec võtmed
näiteks)
Meili
signeerimine ja krüpteerimine — MIME• S/MIME —
Secure/Multipurpose Internet Mail Extensions
• MIME tüüpide
ja reeglite komplekt signeerimise ja krüpteerimise lisamiseks
• MIME jaoks on
defineeritud üldine signeerimise ja krüpteerimise raamistik (tüübid
multipart/signed ja
multipart/encrypted)
• S/MIME
defineerib rakenduse sellele raamistikule:
application /pkcs7-signature
formaat signatuuride jaoks ja application/pkcs7-mime
muude vajaduste jaoks
• Need tüübid
sisaldavad CMS (Cryptographic Message Syntax) objekte (seotud X.509
infrastruktuuriga)
Meili
signeerimine ja krüpteerimine — PGPPikema ajalooga
kui S/MIME. Kuni PGP v2.6 oli open source. Tänapäeval levinuim
versioon on GNUPG (GNU Privacy Guard).• PGP jaoks on
seni kasutatud 3 formaati:
– PGP oma päised
kirja tekstikehas
– MIME tüübiga
application/pgp
komponent kirja kehaks — halvasti käideldav
– MIME
krüptoraamistikus formaadid
application/pgp-signature,
application/pgp-encrypted,
application/pgp-keys
VPN —
virtuaalsed privaatvõrgudVPN idee: teeme üle
Interneti krüpteeritud
tunnelid oma kahe või enama võrgu vahel
• Tihti odavam kui
eraldi ühendus osakondade vahel
• Internet on
tänapäeval niikuinii olemas
• Võrreldes
eriliiniga puudub siin reeglina garanteeritud ribalaius
• Tihti
summaarselt lihtsam kui iga vajalikku teenust eraldi turvata
Mitu taset:
• Paljude
kohtvõrkude kokku ühendamine
• Üksikud
(
mobiilsed ) kaugtöökohad väljaspool firma võrke
• Extranet —
turvalised kanalid partneritega
VPN loogiline
skeemVPN
tehnoloogiline külg• Üldine idee:
krüpteeritakse
paketid ära ja kapseldatakse saadud andmekogum
mingisse (enamasti alumise kihi) paketti
IP1, IP2 on
sisevõrgu IP-dIP3, IP4 on
avaliku võrgu IP-d• Näiteks
IP-paketi
kapseldamine teise IP-paketi või UDP paketi sisse
• Alguses oli igal
tegijal oma protokollistik -
tänapäeval IPSecVPN: IPSec• IPSec —
algselt
IPv6 lisavõimalus, kuid jõudis juurutamisse ka
IPv4 ajal
• Praeguse aja de
facto formaat erinevate süsteemide vahel IP pakettide
krüpteerimiseks
• IPSec lubab
suvalisel hostide või ruuterite paaril omavahel krüpteeritult (ESP
-
Encapsulating Security Payload) ja/või autenditult (AH -
Authentication Headers) andmeid vahetada
• 1999. a.
kinnitati ka ametlik võtmevahetuse protokoll IKE (Internet Key
Exchange ) — selle abil saavad kaks masinat, mis teineteisest varem
midagi ei teadnud, standardsel meetodil sessioonivõtmed kokku
lepitud ja IPSec+IKE laiema leviku järel peaksid seega suvalised
masinad olema võimelised omavahel krüpteeritult
suhtlema . -
masinate kõrgema taseme protokolliga autentimine, Phase 1 -
autentimine: Phase 2 - konkreetse tunneli kokku leppimine . Pigem
kasutatakse kahe erineva ettevõtte vahel erinevate masinate
suhtlemiseks.Linux on
out-of-the-box valmis IPSec VPNi jaoks, aga vajab konffimist.Windowsil ja
Macil on sisseehitatud IPSec olemas, aga pole täielikult rakendatav .VPN: muud
lahendused•
SKIP (Simple Key
management for Internet Protocols) -
hääbus IPSec levikuga• PPP üle TCP
ühenduse (SSH, TLS, ...) -
Point-to-Point Protocol; kapseldame
juba turvatud ja krüpteeritud toru sisse IP-pakette; suure
paketikadu või aeglase ühenduse kiirusega muutub aeglaseks, kuna
rakendused kasutavad TCP-d, siis nende TCP on omakorda TCP sees ning
paketikadu lahenduseks on uuestisaatmine, mis koormab ja muudab
ühendust aeglasemaks.•
PPTP (
Point-to-Point Tunneling Protocol), L2TP (
Layer 2
Tunneling Protocol), SSTP (
Secure Socket Tunneling Protocol)
• L2TP + IPSec
•
OpenVPN —
TLS + oma tunneliprotokoll -
väga lihtne lisatarkvara, lihtne
kasutusele võtta masinas, kus VPN-tarkvara muidu puudub; serveri
poolel on probleeme, skaleerumisprobleemid• MPLS
(
Multiprotocol Label Switching) — krüpto pole kohustuslik
(aga saab kasutada), põhiline idee on teenusepakkuja võrgu piires
virtuaalsed torud
• ...
9. Tulemüürid
(kommenteerimata)
• Tulemüüri
mõiste
• Tulemüüride
liigitus
• Paketifiltrid
• Võrguaadresside
tõlkimine (NAT)
• Rakenduskihi
tulemüürid
•
Kombineeritud tulemüürid
•
Demilitariseeritud tsoon
• Üksiku arvuti
kaitsmine
• Personaalsed
tulemüürid
• Mida lubada ja
mida keelata
Tulemüürid• Tulemüür on
seade, mis realiseerib sisevõrgu ja Interneti vahelist
pääsupoliitikat
• Tulemüür
kaitseb Internetist
tulevate teatud liiki rünnete eest
– Volitamata
pöörduste eest
– IP pinudes
olevate vigade eest
– (Mõnede)
rakendustes olevate vigade eest
• Organiseerib
liiklust kohtvõrgust Internetti
– Võimaldab
jagada teenused soovituteks ja soovimatuteks
– Seda nii
väljuval kui siseneval suunal
Tulemüüride
liigitus• Võrgukihi
tasemel töötavad tulemüürid
– Töötavad
TCP/IP tasemel
– (Staatilised)
paketifiltrid
– Dünaamilised
paketifiltrid
• Rakenduskihi
tasemel töötavad tulemüürid
– Vahendajad
(proxy’d)
• Kombineeritud
tulemüürid
Lihtne tulemüür
— paketifilter• Lihtsaim
lahendus tulemüüri realiseerimiseks
– Realiseeritav
enamuse ruuterite baasil
• Töötavad IP
paketi tasemel: paketid lastakse läbi või "
visatakse minema"
• Kriteeriumid
filtreerimiseks:
– Paketi lähte-
ja sihtaadress
– Protokoll
– Kõrgema taseme
protokolli (TCP, UDP) pordinumber
– Lipud ja seansi
algatamise tunnused
• Tehtav lisaks ka
2. kihis — tark sild ekraneerib (screening)
Paketifilter• Paketifiltrite
probleemid
– UDP kui
ühenduseta protokolli on raske
filtreerida – TCP puhul on
võimalikud poolavatud ühendused
– Kas
fragmendid läbivad alati filtri?
– Mõned
protokollid ei filtreeru
– Hea paketifiltri
kokkuseadmine on keeruline
• Dünaamilised
paketifiltrid
– Muudavad oma
filtreid vastavalt läbivatele pakettidele
– Ühenduste
jälgimine (
connection tracking )
Võrguaadresside
tõlkimine — NAT• IPv4
aadressidega on
kitsas käes, vaja on aadresside kasutamist
optimeerida
• Tahame sisevõrgu
struktuuri teiste eest ära
peita • Tahame, et
sisevõrgu masinad ei oleks väljast otse nähtavad
• Lahendus(?):
kasutame sisevõrgus privaataadresse, mis Internetis ei esine
• Vahel on siiski
vaja pakette sise- ja välisvõrgu vahet liigutada
• Lahenduseks on
aadresside tõlkimine ruuteris. Tõlkimist on kolme moodi:
– Staatiline: n –
n — tõlgitakse terve aadressiplokk
– Dünaamiline: n
– m, m
– Tõlkimine porte
kasutades: n – 1 — kõik siseaadressid 1 välisaadressiks,
varieeritakse lähtepordi numbrit
NAT tehnoloogia • Standarditega on
paika pandud aadressivahemikud, mida võib vabalt oma sisevõrkudes
kasutada:
– 10.*.*.*
– 172.16.*.* –
172.31.*.*
– 192.168.*.*
• Neid aadresse
Internetis ei ruudita
• Aadresse tõlkiv
ruuter modifitseerib ühe osapoole IP-aadressi (tõlgib ühe suuna
andmed ning tõlgib tagasi vastused)
• Lähteaadressi
maskeerimise abil saame varjata klientarvutit (algatajat) -> SNAT
• Sihtaadressi
maskeerimise abil saame varjata serverarvutit -> DNAT
SNAT näideDNAT näideSiin ei pea
meeles pidama iga ühenduse kohta kirjet. Ühte kirjet peetakse
meeles kõigi ühenduste jaoks. Toimub connection tracking. Tulemüür
saaks ühendusi jälgimata väiksema ressursiga hakkama.NAT probleemid• Teeb katki
TCP/IP mudeli, kus ainult ühenduse otspunktid teavad detaile
• Sunnib peale
mingi osaliselt fikseeritud marsruudi otspunktide vahel
• Toob sisse ühe
katkimineku punkti
• Toob sisse
ühildumatuse paljude protokollidega
• Ei lahenda IPv4
aadresside kitsikust
AGA:
• Leevendab IPv4
aadresside kitsikust
• Aitab lihtsalt
ja praktiliselt võrku turvalisemaks teha
IPv6, tulemüürid
ja NAT• IPv6 reserveerib
iga kohtvõrgu jaoks 264 IPv6 aadressi
•
Niimoodi on
mugav teha automaatset IP-aadresside jagamist — iga arvuti saab
genereerida oma IP-aadressi võrgu prefiksist ja oma MAC aadressist
• Kohtvõrgu
arvutite skaneerimine on liiklusmahu tõttu võimatu
• Globaalne suur
aadressivaru, NAT pole IPv6 jaoks kasutusel — lihtsalt lubame või
keelame sisenevad ühendused, sisevõrgu struktuuri niikuinii teada
ei saa eriti
• Uus probleem:
privaatsus — sama MAC aadressiga arvuti on ära tuntav erinevate
võrkude vahel liikudes, kuna IP-aadressi automaatselt genereeritud
osa on sama
• Lahendus: IPv6
privaatsuslaiendused (juhuslik arv MAC aadressi asemel), oma
piirangutega
Rakenduskihi
tulemüürid• Kasutavad
rakendusespetsiifiliste vahendajate tehnoloogiat
– Läbipaistvad
vahendajad (transparent proxy)
• Head küljed
– Palju
lisavõimalusi (antiviirused, WWW sisu analüüs, rämpsposti
filtrid, ...)
– Hästi
hallatavad ja konfigureeritavad
– Puudub IP
tasemel ühendus
– Liikluse
optimeerimine (nii valikuline lubamine kui
puhverdamine )
• Vead
– Iga protokoll
vajab oma vahendajat
–
Rakendusprogrammid tuleb konfigureerida vahendajat kasutama
Tulemüürid eri
kihtidesÜhenduste sisu
uurivad tulemüürid•
Deep Packet
Inspection, Next Generation Firewall
• Käituvad
paketifiltrina, aga
vaatavad pakettide sisse kuni 7. kihini
• Panevad enda
jaoks pakettidest kokku iga ühenduse andmevoo ja analüüsivad seda
• Dekodeerivad
võimalusel ka rakenduskihi protokollid
– Ei vaja selleks
vahendaja konfimist või klientmasina teadmist vahendamise kohta
– Võimalusel
vaatavad ka krüpteeritud ühenduste sisse (oma CA vahendusrünnete
tegemiseks, mida kliendid usaldavad)
Kombineeritud
tulemüürid•
Lihtsate protokollide jaoks käituvad kui dünaamilised paketifiltrid (NAT)
•
Keeruliste protokollide jaoks kasutatakse rakendustaseme vahendajaid
• Enamasti on
võimalus mõningaid rakendustaseme vahendajaid kasutada
läbipaistvana
• Enamus
tänapäevaseid tulemüüre on kombineeritud tulemüürid
Mida väljastpoolt
vaja on• Vahel on siiski
vaja väljastpoolt üht-teist kätte saada:
– Meilide
transport
– Avalikud WWW,
FTP serverid
– Kaugtöötamine
(näiteks juurdepääs kodust)
• Suuremate
võrkude korral pannakse väljapoole tulemüüri eraldi serverid
• Väikese võrgu
puhul pannakse teenused tihti tulemüüri peale
• Samuti on
võimalik panna tulemüüri peale vahendaja, mis
vahendab päringuid
sisevõrgu serveri(te)le — rakendustaseme vahendaja või DNAT
• Enne väljast
sisse suunduva lüüsi tegemist tuleb hoolikalt järele mõelda, kas
seda on vaja ning kas sisevõrgus vastav programm on piisavalt
turvaline
DMZ —
demilitariseeritud tsoon• Sisevõrgust
eraldi asuv võrgupiirkond, mis on väljastpoolt kättesaadav
• Ei ole sisevõrk,
ei ole ka väline Internet, on vahepealne ("demilitariseeritud")
• Avalike
serverite hoidmiseks
• Sisevõrgust
DMZ-i pääseb
• DMZ seest
sisevõrku pääs puudub
• Kaks võimalust
realiseerimiseks:
– Tulemüüri ja
välise filtreeriva
ruuteri vahel
– Eraldi
segmendina tulemüüri küljes
DMZ tulemüüri
ja välise ruuteri vahelDMZ tulemüüri
eraldi segmendinaÜksiku arvuti
kaitsmine•
Juurdepääsufiltrid teenuses endas
•
Veebiserveri domeenikaupa juurdepääsukontroll
• tcp_wrappers
• PAM moodulid
• Tänapäeval on
lõppmasinas kasutatavad ka paketifiltrid
Personaalsed
tulemüürid• Traditsiooniline
tulemüür on reeglina eraldi seade võrgu ees
• Personaalseteks
tulemüürideks nimetatakse konkreetset personaalarvutit kaitsvat
programmi
• Tavaliselt
tegutsevad paketifiltrite tasemel
•
Sisuline lisavõimalus: autentimine rakenduse kaupa
– Kas rakendus
tohib väljuvaid ühendusi luua?
– Kas rakendus
tohib väljast ühendusi vastu võtta?
• Vaikimisi on
tihti mitmeid "auke" sees mugavuse säilitamiseks
Mida lubada ja
mida keelata• Väljuval suunal
enamus asju lahti (välja pääseb)
– Trooja hobused?
Tunneldamine läbi HTTP?
• Väljava suuna
ühenduste jälgimine (tagasi sisse lubatakse ainult vastusepakette)
• Sisse:
–
SMTP meilide
jaoks (kui on oma meiliserver)
– WWW, kui omal on
server
– Vajadusel ka
sisenev login-teenus (ainult krüpteeritult — SSH, TLS baasil
asjad, ...)
– Vajadusel ka
postkastile juurdepääsu teenused (IMAP, POP3 — jällegi
soovitavalt ainult krüptitud kujul)
–
Peer -to-peer
võrgud???
– Muud läheb väga
harva vaja
10. Pahavara
(kommenteerimata)
• Viirused —
teisi programme nakatavad programmid
• Ussid —
iseseisvalt edasi
tungivad programmid
• Trooja hobused —
reeglina ei levi ise, aga teevad kurja või avavad tagaukse
hilisemaks juurdepääsuks ründajale
• Loogikapommid —
legaalsetes programmides olevad dokumenteerimata võimalused, mis
turvaauke tekitavad
• Pipetid —
trooja hobuste, viiruste jms levitamiseks kasutatavad
peibutusprogrammid
• Pettus (hoax) —
inimesi nakatav "viirus"
Viiruste liigitus• Failiviirused —
nakatavad käivitatavaid programme
– Mitteresidentsed
– Residentsed
•
Kaasfailiviirused
• Alglaadesektori
viirused
• Hübriidviirused
• Peit- (stealth)
ja soomusviirused (armoured)
• Polümorfsed
viirused
•
Vaktsiinihävitusviirused
• Võrguviirused
• Makroviirused!
•
Pseudoviirused Makroviirused• Tänapäeval
valdavad
• Kasutavad ära
võimalust, et mõnedesse andmefailidesse saab lisada programme
• Word & .doc
—
Concept 1994
• Iga makrokeelt
sisaldav dokumendiformaat on potentsiaalne ohuallikas
•
Algkäivitusmakrodest hoidumine pole piisav
• Automaatselt
käivitatavatest makrodest hoidumine on kohati piisav
• Mitmeid trikke
makrokaitsest mööda hiilimiseks
Viiruste vastu• Mitte käivitada
mitteusaldusväärsest allikast pärit aktiivsisu!
• Koolitada
kasutajaid potentsiaalset aktiivsisu ära tundma
•
Seadistada tarkvara aktiivsisu mitte automaatselt käivitama
• Käivitamise
vajadusel kontrollida antiviirusega
• Antiviirust
rakendada perimeetri kõigis punktides (meilisüsteem,
veebivahendaja, sissetoodud flopid, ...)
• Võimalusel
mitte kasutada makrosid sisaldavaid formaate
• Kaitsta
käivitatavad failid kasutajatepoolse muutmise eest
• Kontrollida
regulaarselt failide autentsust (kontrollsummad jms)
Ussid• Levivad
iseseisvalt võrku mööda
• Nakatavad
arvuteid (ühekomponendilised) või võrke (mitmekomponendilised)
• Robert Morrise
Internet Worm 1988
• "Jänesed"
— korraga üks eksemplar liigub ringi
• Nakatavad
kindlat platvormi (platvorme)
• Kasutavad ära
teenuste turvaauke nakatatavates arvutites
• Kasutavad ära
meiliprogramme ja veebibrausereid (nii turvaauke kui kasutajate
rumalust)
Usside levimine• Suudavad levida
väga kiiresti
– Iseseisvalt
teenuse aukude kaudu levides mõne päeva kuni mõne tunniga kogu
Internet, teoreetiliselt veerand tunniga
– Meili teel
levivad aeglasemalt (vajalik kasutaja sekkumine igal sammul)
Trooja hobused• Ründajal tuleb
trooja hobune kõigepealt rünnatavasse masinasse sokutada (pipetid!)
-
kasutaja meelitamine mingi programmiga, turvaaugu ärakasutamine,
kasutaja ära petmine ; trooja hobune ise ei levi, avab ainult
tagaukse või tegutseb iseseisvalt. Tänapäeval on keeruline, kuna
arvutid on NATis või tulemüüri taga. Tänapäeval on lahenduseks
see, et rünnatav arvuti pannakse ühenduma kuskile välja.• Levinud on
ründajale juhtimiskanalit pakkuvad
troojalased (varem eriti IRC
võrgu kaudu, tänapäeval oma kanalid) -
IRC = Internet Relay Chat = jututoad; botide jaoks oma varjatud kanal , botid ootasid käske
- nt liituge kanaliga #kanal (nt esimesed 10000 said, teised mitte),
seejärel kärk, et tehke DDoS rünnak mingile teenusele. Tänapäeval
registreeritakse piisava regulaarsusega uus domeen, millelt ründeid
sooritatakse; ei ole võimalik ennustada, milliselt domeenilt
järgmised ründed tulla võivad.• RAT — Remote
Access
Tool -
meetodid kaugelt masinast juurdepääsuks; kasutusel
90-ndate lõpust• Nn. rootkitid on
samuti trooja hobused -
võimaldab ründajal saada admin -õigustega
masinasse tagasi. ~2010. a. saadik on rootkitid kolinud protsessori
tuuma sisse, rakenduste abil sellist üles ei leia.
Võimalik ka
virtualiseerimise hüperviisori tasemel nakatada rootkitiga.Lisaks ka System
Management Mode’is rootkitiga vahelt võtmine.Võimalik nt
kõvaketta firmware’i rootkit ära peita, nii et tühjale kettale
opsüsteemi offline installi järel ilmuvad troojalased ja tagauksed.• Tihti
kasutatakse trooja hobuseid vallutatud arvutitest edasiste rünnakute
tegemiseks (näiteks DDoS, rämpsposti saatmine)
• Lunavara
(ransomware) -
vahel saab makstes andmed tagasi, alati mitte; on
olnud ka olukordi , kus lunavara kood on olnud vigane, mistõttu pole
olnud võimalik andmeid tagasi saadagi.• Kaugekõnede
võtjad -
dial-up suunati mõne tasulise numbri kauduPipetid• Pipettideks on
igasugused peibutised
– Igasugu
(interaktiived) animatsioonid ("viruta
Bill Gatesile tordiga!")
-
taustal istutati masinasse troojalane– Väidetavalt
uued versioonid levinud programmidest (antiviirused!)
–
Microsofti/
Adobe /Oracle/... turvaparandused -
st
võltsturvaparandused– Hirmvara
(scareware) -
“Sinu arvutist on leitud pahavara! Lae siit
programm skännimiseks!” - petuskänni järel näidatakse hulka
libapahavara, lahendamiseks tuleb alla laadida kallis tarkvara– Eesti mäng.exe
-
sisaldas keyloggerit– Lahe
mobiilimäng, mis nõuab kõikvõimalikke õigusi -
rakendused
tavaliselt käivitatakse sandboxis, mistõttu risk ei ole nii suur,
aga garantiid pole. Alates Android 6.x lahendati sellega, et
rakendusele näidatakse dummy-andmeid (tühi kontaktide loend, tühi kaustapuu jne); lastele orienteeritud rakendused võivad
üksikasjalikult juhendada kasutajat seadeid muutma , et rakendus
vajalikke ligipääsuõiguseid saaks• Põhiline, et
kasutaja nad käima paneks -
social engineeringLoogikapommid• Autori poolt
meelega lisatud võimalused, mis teevad kasutaja arvutis midagi, mida
kasutaja tegelikult ei taha - nt
tarkvara arendajale ligipääs
kasutaja arvutisse• Tagauksed -
lähtekoodi arendamisel kasutada suuremat turvalisust, nt U2F
( Universal 2nd Factor Authentication)• Krüptosüsteemide
nõrgendamine (salakanalid võtmete jaoks jne) -
juhuarvude kehv
genereerimine, entroopiat ainult natukene; genereeritud juhuarvude edastamine samaaegselt veel mujalegi jne; vt nt Juniper Networks hack • Andmete
kogumine, nuhkvara (spyware) -
opsüsteemid koguvad andmeid,
kasuta Windows Enterprise Editionit, kus saab seda välja lülitada.• Avatud lähtekood
aitab siin
Tõrjumine• Esiteks,
KOOLITAGE KASUTAJAID!• Jäävad
turvaauke kasutavad ründeprogrammid
– Aktiivsisu
filtreerimine • Antiviirustest
on kasu, aga neile loota ei tasu
– Nad on alati
ajast maas -
kuni viiruse tuvastamise ning andmebaasi lisamiseni
on viirusel vabad käed– Nad võitlevad
tagajärgede, mitte põhjustega, ja sedagi tagantjärgi pärast ohu
levimist • Antiviirustele
on enamasti ka levinumad ussid ja trooja hobused selgeks tehtud
• Hakatakse aru
saama, et ka nuhkvara, reklaami näitajad jms kuuluvad samasse patta
• Seni on nende
eemaldamiseks siiski eraldi programmid
11. Kuidas
sissetungijaid avastada?
• Süsteemi
kahtlane käitumine -
protsessori kahtlane koormus, võrguliiklus
(kas on kooskõlas aktuaalsete toimingutega), tundmatud protsessid,
tundmatud kasutajad, kettale “ise” tekkivad kaustad ja failid,
kahtlased dialoogiaknad,
• Logimine ja
logide jälgimine
• Muutused
süsteemis (failid, konfiguratsioon)
• Kahtlane
võrguliiklus
• ...
• IDS (Intrusion
Detection Systems) — sissetungi avastamise süsteemid
– Masinasisesed
– Tervet võrku
valvavad
– Loomult
ebatäpsed
– Vajavad
toimimiseks reageerijat
• IPS (Intrusion
Prevention Systems) — IDS + blokeerimisloogika
Logimine• Logid ärgu olgu
maailmale kirjutatavad
• Logid ärgu olgu
maailmale loetavad
• Et logist kasu
oleks, peab seda ka lugema
• Milleks lugeda
logisid, kui keegi parajasti ei ründa?
•
Automaatsed logide analüsaatorid
• Logi "lõhki
ajamine " on ka rünnak
• Mõistlik
säilitamisaeg on
varieeruv , enamasti 1-10 nädalat
• Kohalikud logid
on sissetungijale
potentsiaalselt kirjutatavad (võltsitavad)
• Lugeda tuleb
enne võltsimist, pärast on raske
Turvalised logid• Mille vastu me
logisid kaitsta tahame?
– Modifitseerimise
– Hävitamise
• Üksteist
dubleerivad logid, mittetraditsioonilised logid
• Paberkoopia
• Teise arvutisse
logimine (konfidentsiaalsus?)
• Logikirjete
omavaheline sidumine krüptograafiliste meetoditega (räsiahelad) =>
ajatemplid
• Üle võrgu
logimine koos auditeeritava krüptograafilise sidumisega
IDS (intrusion
detection system) masina tasemel• Failide õiguste,
kontrollsummade, muutmise aegade kontroll
– Probleem
andmebaasi uuendamisega ja hoidmisega
• Logide jälgimine
– Mustrite
sobitamine
– Toimingud
(
teavitamine , blokeeringud, ...)
–
Tehisintellekt ja heuristikad
• Antiviirus
• Levinumate
rootkittide avastamine
• Peidetud
protsesside avastamine
• Käivitatavate
programmide signeerimine ja signatuuride kontroll
• Näiteid:
Tripwire, LIDS, AIDE
IDS võrgu
tasemel• Võrgus on
seade, mis kuulab teistega toimuvat
• Arhiveerib,
analüüsib, saadab mujale edasi
• Edasi saatmisel
on konfidentsiaalsus oluline
• Uute aktiivsete
seadmete avastamine
• Etherneti
pealtkuulamine
– hub
– riistvaraline
harund (tap)
– spetsiaalne
switchi port (port
mirror )
IDS võrgu
tasemel• IDS süsteemid
tunnevad paljusid konkreetseid rünnakuid ja rünnakute tüüpe
• Näide: snort
• Meepott
(honeypot) — spetsiaalne masin ründaja eemale meelitamiseks ja
tema meetodite uurimiseks
• Meevõrk
(honeynet) — terve (
virtuaalne ) võrk ründaja püüdmiseks
• IDS sarnased on
ka turvaskännerid — (oma) võrgust automaatselt aukude otsijad
Snifferite
avastamine• Teoreetiliselt
pole 100% ulatuses võimalik
• Vale MAC
aadressiga IP tasemel pingimine
• Muud vastuse
välja meelitamised vale MAC aadressiga (ICMP vead jms)
• Sama asi IP
broadcastiga (255.255.255.255 või suunatud broadcast 192.168.0.255)
• ARP päringute
saatmine mitte-broadcast MAC aadressile
• DNS
pöördteisenduste jälgimine
Snifferite
avastamine• Source routing’u
kasutamine (saata pakett mitteruutiva masina kaudu)
• Nimelt valede
paroolide avatekstina saatmine ja reaktsiooni
ootamine • Masina
võrguliidese promiscuous režiimis olek
• Suur
võrgukoormus (edasisaatva snifferi puhul)
• SNMP abil
võrguseadmete info jälgimine (siseneva info maht, promiscuous
režiim)
Kuidas
sissetungijat avastada — näiteid• Lisandunud on
tundmatuid võrguteenuseid -
mingi pordi peal on teenus kuulama hakanud netstatiga kuulavaid ühendusi, TCP/IP kuulamine,
portskännerit võib kasutada oma võrgu hindamiseks• Lisandunud on
tundmatuid protsesse (ka maskeeruvaid!) -
protsessid, mille kohta
te ei tea, mis need on; protsess esineb teise nimega, et varjata tegelikku protsessi;
• Lisandunud on
tundmatuid kasutajaid
• Failid on
muutunud -
sõltub kontekstist; viimase muutmise kellaajad, uued
ajutised failid, lisandunud peidetud failid• Juurde on tulnud
peidetud või setuid/setgid faile -
peidetud kaustasid tasub
jälgida• Logis on
kahtlasi kirjeid või "auke" -
augud tingitud logide
kustutamisest• Mõni kasutaja
teeb midagi ebatüüpilist -
murrab paroole vms• Sisselogimiste
ajad või kohad on kahtlased
• Võrguliides on
promiscuous režiimis -
keegi võib peidetud programmiga võrku
pealt kuulata• Pilt süsteemist
pole kooskõlaline (pooleldi eksisteerivad protsessid, ...) -
ühe
tööriistaga paistab üks ja teisega teistsugune seis (nt Linuxis
ps, pstree, top jms programmid; Windowsis sobib varjatud protsesside
uurimiseks sysinternals)Mida teha augu
leidmisel• Don’t
panic ! —
alati ei tarvitsegi
auku olla
• Eralda süsteem
võrgust -
teinekord tasub jälgida, äkki saab teada, kes ja mida
teeb; võib juhtuda, et kurjategija saab teada, et teda jälgitakse
ning üritab jälgede kustutamise nimel kustutada kogu süsteemipuud• Võimalusel tee
uurimiseks madalal tasemel koopia -
ketta image-tasemel
RAW-koopia, nii jääb ka kustutatud failide info alles• Enne igasugust
muutmist mõtle asjad hästi läbi
• Vajadusel
teavita politseid või muid organeid (
CERT , ...) -
CERT (Computer Emergency Response Team ) ei tule appi, küll aga võivad anda
vihjeid, mida veel otsida/kontrollida ning koguvad infot• Tee pädevaid
märkmeid, mis kõlbaksid kasvõi kohtus
• Turvaprobleemide
PR:
– Ära salga, ära
vassi
– Tunnista, et auk
oli ja et parandati
– Jaga tunnustust
oma tootest augu leidjale
– Kui
renomee on
väga kallis ja raha piisavalt palju, maksa kinni kõik asjast
teadlikud tegelased :)
Osadel firmadel
on Bounty -programmid, mille raames turvaaukude leidjatele rahalist
preemiat makstakseAjalooliselt:Tootjale võisid august teatada, tootjal puudus huvi midagi ette võtta - turvalisuse illusioon
Bugide ja turvaaukude meililistid, mille käigus said teatud osapooled info
Foorumid, kuhu postitati turvaaukude leidmisel ka proof -of-concept ja näited ründe võimalikest teostustest - tootja sai samal ajal teada, kui avalikkus
Responsible disclosure - enne teavitatakse tootjat, antakse paar nädalat aega reageerida, paar kuud aega augud parandada, lõpuks avalik teavitus
Turvaaukude leidjate mainimine ja kiitmine - au ja kuulsus, rahalist preemiat mitte
Rahaline preemia turvaaugu leidjale
12. Isikuandmete
kaitse seadus
• Isikuandmed on
andmed tuvastatud või tuvastatava füüsilise isiku kohta, mis
väljendavad selle isiku füüsilisi, psüühilisi, füsioloogilisi,
majanduslikke, kultuurilisi või sotsiaalseid omadusi, suhteid ja
kuuluvust - nt isikukood ; meditsiinilised andmed haruldase haiguse
kohta koos sünniaja, rahvuse vms kohta; ei tohi olla võimalik ka
kaudne tuvastamine
• Isikuandmete
töötlemine on lubatud üksnes andmesubjekti nõusolekul, kui seadus
ei sätesta teisiti
• Eraelulised
isikuandmed:
– perekonnaelu
üksikasju kirjeldavad andmed;
– sotsiaalabi või
sotsiaalteenuste osutamise taotlemist kirjeldavad andmed;
– isiku vaimseid
või füüsilisi kannatusi kirjeldavad andmed;
– isiku kohta
maksustamisega kogutud teave, välja arvatud teave maksuvõlgnevuste
kohta
Isikuandmete
kaitse seadus
• Delikaatsed
isikuandmed
– poliitilisi
vaateid, usulisi ja maailmavaatelisi veendumusi kirjeldavad andmed,
välja arvatud andmed seadusega ettenähtud korras registreeritud
eraõiguslike juriidiliste isikute liikmeks olemise kohta;
– etnilist
päritolu ja rassilist kuuluvust kirjeldavad andmed;
– andmed
terviseseisundi või puude kohta;
– andmed
pärilikkuse informatsiooni kohta;
– andmed
seksuaalelu kohta;
– andmed
ametiühingu liikmelisuse kohta;
–
kriminaalmenetluses või muus õiguserikkumise väljaselgitamise
menetluses kogutav teave enne avalikku kohtuistungit või otsuse
langetamist õigusrikkumise asjas või juhul, kui see on vajalik
kõlbluse või inimeste perekonna- ja eraelu kaitseks või kui seda
nõuavad alaealise, kannatanu, tunnistaja või õigusemõistmise
huvid.
Isikuandmete
kaitse seadus
• Füüsilise
isiku kohta kogutud statistilised andmed ei ole isikuandmed, kui
puudub võimalus isikut, kelle kohta need andmed on kogutud, üheselt
tuvastada.
• Isikuandmete
töötlemine on isikuandmete kogumine, salvestamine , korrastamine,
säilitamine, muutmine, päringute teostamine , väljavõtete
tegemine, kasutamine, üleandmine, ühendamine, sulgemine ,
kustutamine või hävitamine või mitu eeltoodud toimingut, sõltumata
toimingute teostamise viisist või kasutatavatest vahenditest.
• Delikaatsete
isikuandmete töötlemine on ilma andmesubjekti nõusolekuta lubatud:
– seaduse või
välislepinguga ettenähtud ülesande täitmiseks
– andmesubjekti
või muu isiku elu, tervise ja vabaduse kaitseks
Isikuandmete
kaitse seadus
• Andmesubjektil on õigus saada isikuandmete töötlejalt enda kohta käivaid
isikuandmeid, muidu võib AKI sunniraha nõuda. Isikuandmed
väljastatakse võimaluse korral andmesubjekti soovitud viisil.
• Andmete
väljastamise eest paberkandjal võib isikuandmete töötleja nõuda
fikseeritud tasu, kui maht on üle 20 lk.
Karistusseadustik
• Arvutiandmetesse
sekkumine
– Arvutisüsteemis
olevate andmete ebaseadusliku muutmise, kustutamise, rikkumise või
sulustamise, samuti arvutisüsteemi andmete või programmi
ebaseadusliku sisestamise eest — karistatakse rahalise karistuse
või kuni kolmeaastase vangistusega. - nt trooja hobuste
sisestamine süsteemi
– Sama teo eest,
kui see on toime pandud paljudes arvutisüsteemides olevate andmete
vastu ründepropgrammi abil, või on toime pandud grupi poolt,
elutähtsa valdkonna arvutisüsteemi vastu või kui sellega on
tekitatud oluline kahju, — karistatakse rahalise karistuse või
kuni viieaastase vangistusega.
– Juriidilisele
isikule rahatrahv (siin ja edaspidi)
Karistusseadustik
• Terminalseadme
identifitseerimisvahendi ebaseaduslik kõrvaldamine ja muutmine
– Elektroonilise
side võrgus kasutatavas terminalseadmes identifitseerimisvahendi
ebaseadusliku kõrvaldamise või muutmise eest ärilisel eesmärgil —
karistatakse rahalise karistuse või kuni kolmeaastase vangistusega.
- jutt nt telefoni IMEI-koodist, mille vahetamine nt rahalise kasu
eesmärgil on keelatud.
Karistusseadustik
• Arvutisüsteemi
toimimise takistamine
– Arvutisüsteemi
toimimise ebaseadusliku häirimise või takistamise eest andmete
sisestamise, edastamise , kustutamise, rikkumise, muutmise või
sulustamise teel -– karistatakse rahalise karistuse või kuni
kolmeaastase vangistusega. - botnetid
– Sama teo eest,
kui see on toime pandud paljudes arvutisüsteemides olevate andmete
vastu ründepropgrammi abil, või on toime pandiud grupi poolt,
elutähtsa valdkonna arvutisüsteemi vastu või kui sellega on
tekitatud oluline kahju, — karistatakse rahalise karistuse või
kuni viieaastase vangistusega.
Karistusseadustik
• Arvutikelmus
– Teisele isikule varalise kahju tekitamise eest arvutiprogrammide või andmete
ebaseadusliku sisestamise, muutmise, kustutamise, rikkumise,
sulustamise või muul viisil andmetöötlusprotsessi ebaseadusliku
sekkumise teel varalise kasu saamise eesmärgil — karistatakse
rahalise karistuse või kuni viieaastase vangistusega. -
raamatupidamisandmebaasis andmete muutmine, maksekorralduse
andmete võltsimine,
– Pluss
karmistavad tingimused, kuni viieaastase vangistusega.
Karistusseadustik
• Arvutikuriteo
ettevalmistamine
– Seadme või
arvutiprogrammi, mis on loodud või kohandatud kuritegude
toimepanemiseks, või kaitsevahendi, mille abil on võimalik hankida
juurdepääs arvutisüsteemile, hankimise, valmistamise, valdamise,
levitamise või muul viisil kättesaadavaks tegemise eest, et panna
ise või võimaldada kolmandal isikul panna toime kuritegu , —
karistatakse rahalise karistuse või kuni kaheaastase vangistusega. -
raske hinnata, kas programm ise on kuritegu - võib kasutada nt
ründamiseks või oma võrgu skännimiseks.
– Kohus võib kohaldada käesolevas paragrahvis sätestatud süüteo toimepanemise
vahetuks objektiks olnud eseme konfiskeerimist.
Karistusseadustik
• Arvutisüsteemile
ebaseaduslikult juurdepääsu hankimine
– Arvutisüsteemile
ebaseaduslikult juurdepääsu hankimise eest kaitsevahendi
kõrvaldamise või vältimise teel — karistatakse rahalise
karistuse või kuni kolmeaastase vangistusega.
– Sama teo eest,
kui sellega on tekitatud oluline kahju või kui juurdepääs on
hangitud riigisaladust, salastatud välisteavet või ainult
ametialaseks kasutamiseks ettenähtud andmeid sisaldavale
arvutisüsteemile või kui juurdepääs on hangitud elutähtsa
valdkonna arvutisüsteemile, — karistatakse rahalise karistuse või
kuni viieaastase vangistusega.
Karistusseadustik
• Ebaseaduslikult
kõrvaldatud ja muudetud identifitseerimisvahendiga terminalseadme
kasutamine
– Ebaseaduslikult
kõrvaldatud või muudetud identifitseerimisvahendiga terminalseadme
kasutamise eest elektroonilise side võrgus isiku poolt, kes oli
teadlik, et identifitseerimiskood on ebaseaduslikult kõrvaldatud või
seda on ebaseaduslikult muudetud, — karistatakse rahalise karistuse
või kuni kolmeaastase vangistusega. - IMEI-koodi vahetaja ja
selle teenuse ostja on mõlemad süüdi
– Kohus võib
kohaldada käesolevas paragrahvis sätestatud süüteo toimepanemise
vahetuks objektiks olnud eseme konfiskeerimist.
Karistusseadustik
• Intellektuaalse
omandi vastased süüteod
– Autorsuse
rikkumine
– Piraatkaubandus
– Autoriõiguse
rikkumine arvutisüsteemis
– Teose ja
autoriõigusega kaasnevate õiguste objekti ebaseaduslik üldsusele
suunamine
– Autoriõiguse
rikkumine
– Tehnilise
kaitsemeetme ja teabe kõrvaldamine
– Infoühiskonna
teenuse ja meediateenuse ebaseaduslik vastuvõtmine -
piraatkaartidega SAT-TV vaatamine
– Tööstusomandi
õiguse rikkumine
– Võltskaubandus
Karistusseadustik
— veel
• Sõnumisaladuse
rikkumine
• Delikaatsete
isikuandmete ebaseaduslik avaldamine
• Teise isiku
identiteedi ebaseaduslik kasutamine
• Valimise ja
rahvahääletuse takistamine, valimis- ja hääletamisvabaduse
rikkumine, valimiste võltsimine, hääle ostmine, valimispettus,
hääletamissaladuse rikkumine, valimisagitatsiooni takistamine,
ebaseaduslik agitatsioon
Autoriõiguse
seadus
• Kaitstakse
teoseid (palju liike); teosteks pole näiteks ideed, päevauudised,
faktid ja andmed
• Autori varalised õigused on võõrandatavad, isiklikud mitte
• Autor otsustab,
kellel ja mis tingimustel ta oma teoseid kasutada lubab
• Autoriõigus
tekib teose loomisega (vajalik tajutav väljendus) automaatselt
• Copyright ,
patent, leping
• Teoste edasi
levitamine, välja rentimine , avalik esitus jms on enamasti autori
või levitaja poolt lepinguga piiratud
• Isiklikuks
tarbeks (mitteäriliselt) tohib kopeerida (ka võrgust "tõmmata")
ja sõpradega koos vaadata - HTTP-kaudu endale võib - ei levita
edasi; BitTorrenti kaudu ei või, kuna siis levitad edasi
Arvutiprogrammide
erinõuded
• Ei tohi enda
tarbeks kopeerida
• Tohib teha
varukoopia
• Tohib kopeerida,
tõlkida, kohandada jms programmi tööle saamiseks ja vigade
parandamiseks
• Õiguspärane
kasutaja tohib arvutiprogramme pöördkodeerida ühilduvuse
saavutamiseks, kui vajalikku infot muidu ei saa ja pöördkodeeritakse
ainult vajalikke osi
•
Pöördkodeerimisel saadud infot ei tohi kasutada muuks otstarbeks
kui sõltumatult loodud programmi ühilduvuse tagamiseks, üle anda
teistele isikutele (v.a. ühilduvuse tagamiseks) ega kasutada
konkureeriva programmi tegemiseks
Hädaolukorra
seadus
• Elutähtsa
teenuse osutajad (seadus loetleb valdkonnad)
– Elekter, gaas ,
vedelkütus
– Lennundus ,
põhimaanteed, raudteetransport , laevandus
– Telefoniside ,
andmeside, mobiilside , ringhääling, kaabellevi, eriside, post
– Pääste,
hädaabi, arstiabi
– Sularaha kättesaadavus, maksete tomimine
– ...
• Riskianalüüsi,
tegutsemisplaani ja õppuste nõue
• Miks programmid
ei ole turvalised?
• Üldprintsiipe
• Avatud lähtekood
ja turvalisus
• Sisendi kontroll
• Väljund,
ründekindlus
• Enimohustatud
programmiliigid
• Sisendi valideerimine
• Võidujooksud
• Puhvri
ületäitumine
• Süstimisründed
• Muu
Miks programmid
ei ole turvalised?
• Programmeerijaid
ei õpetata piisavalt
• Ei mõelda
mitmekasutajasüsteemidele
• Programmeerijad on laisad
• Programmeerijad
on kehvad programmeerijad
• Programmeerijad
pole turvaspetsialistid
• Turvalisuse
tagamine võtab aega ja raha
• C/C++ on
ebaturvalised keeled
• Kasutajad ei
hooli
• Turvamudelid on
kehvad
• Ei kasutata
formaalset verifitseerimist
• Palju vana
katkist tarkvara on kasutusel
Üldprintsiipe
• Turvalisus tuleb
algusest peale sisse disainida, mitte hiljem paigata
• Turvalisust saab
kontrollida mingil konkreetsel ajahetkel kehtiva seisundi kohta
• Ei saa teha
nimekirja keelatud tegevustest
• Paranoia on
programmeerimisel vooruseks
• Keerukus on
vaenlane
Avatud lähtekood
ja turvalisus
• Kas avatud
lähtekood annab turvalisust juurde?
• Rohkem
ülevaatajaid -> rohkem vigade leidjaid
• Võimalus
veenduda koodi kvaliteedis
• Avatud kood
iseenesest ei garanteeri kvaliteeti
• Ründajal on
rohkem infot
• Ründajal on
vähem eeliseid kaitsja ees
• Trooja hobused —
kust tulevad?
• Parandamise
võimalus
• Kokkuvõtteks:
avatud lähtekoodil on parem potentsiaal saada turvaliseks
Sisendi kontroll
• Programm peab
edukalt toime tulema igasuguse sisendiga, mida talle võidakse anda,
ka vigasega
• Aktsepteeritav
sisend peab vastama soovitud mustrile
• Aktsepteeritav
sisend peab vastama soovitud mahupiirangutele
• Sisendiks pole
ainult sisseloetavad andmed — ka süsteemist saadu
• Kontrollida
protsessoriaja, mälu, I/O, võrgu kasutust (DoS oht!)
• Testida ka
valede läbilaskmiste ja valede filtreerimiste vastu (mitte ainult
oodatud tulemuste kohta!)
• Sisendit
kontrollida iga mooduli liidese juures, mitte ainult kasutajaliideses
• Lubatud mustrid
vs keelatud mustrid?
Sisendi
valideerimine
• Programmi
argumendid (käsurida)
•
Keskkonnamuutujad
• Failipidemed
• Failide sisu
• Veebis: URLi
kodeering (+UNICODE!!!)
• Veebis: küpsised
(cookies)
• Veebi puhul ei
piisa kliendipoolsest andmete valideerimisest (JavaScript, ...)
• Signaalid
• umask
• Jooksev kataloog
• ...
Väljund,
ründekindlus
•
Konfidentsiaalset infot mitte väljastada
• Ootamatu
väljund, veateated!
– Näide:
veateated veebis
• Ründekindlus:
et ühe kaitse läbimine ei annaks veel võitu
• Kas keskkond on
õige?
• Kas andmed on
kooskõlalised?
• Kas programmi
ennast on modifitseeritud ?
Võidujooksud
• Võidujooks —
programmi töö korrektsus sõltub ajast (võistlusest välise
teguriga)
• Tekib jagatud
ressursside sünkroniseerimata kasutamisel
• Võidujookse
võib tekkida nii usaldatavate kui mitteusaldatavate protsessidega
• Näide: ajutise
faili varastamine
• Näide:
nimeviidete kaudu muude failide üle kirjutamine
• Lahenduseks on
atomaarsete operatsioonide kasutamine
• Juhuslikud
failinimed — kas ikka juhuslikud?
• Lukustamine —
vahend sünkroniseerimiseks, enamasti sõbralike osapoolte vahel
Puhvri
ületäitumine
• Puhvri
ületäitumine (buffer overflow) — üks levinumaid turvaprobleeme
programmides
• Juba Morrise
Interneti-uss kasutas sellist auku aastal 1988
• Von Neumanni
arhitektuur: programm ja andmed on samamoodi samasuguses mälus
• Lohakas programmeerija ei kontrolli, kas andmed reaalselt puhvrisse mahuvad
• Kirjutatakse üle
mälu puhvri järelt
• Pinus asuvate
puhvrite puhul soditakse ära pinu ja muudetakse
tagasipöördumisaadress
• Ka 1-baidist
puhvri ületäitumist on turvaauguna ära kasutatud!
SQL süstimine
• SQL —
andmebaasipäringute keel, tihti kasutusel ka veebirakendustes
• Oma metamärgid,
mis tuleb välja filtreerida
• SQL
manipuleerimise näide:
" SELECT password FROM people
WHERE
name=’"+$name+"’"
Mis saab, kui
$name="a’;
DROP TABLE people; --" ?
• "SELECT
FROM people where ID="+$ID
$ID="3
OR 1=1"
• Ohtlikke märke:
’ " / n * # % & () , : ; |
... ja mitte ainult
– lubage ainult tähti ja numbreid , kui võimalik
Muud
süstimisründed
• SQL oli
manipuleeritav, kuna struktuurne tekstipäring pandi valideerimata
juppidest kokku
• Analoogselt on
rünnatavad muud tekstipõhiste päringustringidega keeled
• Näiteks
– XPath/XQuery
/orders/ client [@id=”]
| /* |
/foo[bar=”]/ order /item[ price >= 10]
– LDAP otsifiltrid
– Opsüsteemi
käsuread
Veel
• Kontrollige
kõigi funktsioonide poolt tagastatavat tulemust vigade suhtes
• Kasutage
väliseid komponente ainult programmeerijale mõeldud liideste kaudu
• Ärge kasutage
varieeruva tähendusega ega ilmselt ebaturvalisi teegifunktsioone
• Käsitlege
erilise ettevaatusega mitteusaldatavatest allikatest pärit edasisi
viiteid ("Web Bugs ")
• Peitke salajast
informatsiooni (paroole logis, võtmeid mälus, andmeid URLis)
• Ärge asjata
tehke setuid/setgid programme; kui teete, siis pisikesi
CWE haavatavuste
top 25
• SQL süstimine
• OS käsu
süstimine
• Puhvri
ületäitumine
• Cross -site
scripting (XSS)
• Puuduv
autentimine kriitilises kohas
• Puuduv
pääsukontroll
•
Sisseprogrammeeritud juurdepääsuinfo
• Ohtlikku tüüpi
failide piiramata üleslaadimine
• Ebausaldusväärse
sisendi põhjal turvaotsuste tegemine
• Liigsete
privileegidega programmi käitamine
• Cross-Site
Request Forgery (CSRF)
• Path Traversal
• Koodi allalaadimine ilma tervikluse kontrollita
• Vigane
pääsukontroll
• Funktsionalasuse
laadimine usaldamata osapoolelt
• Lõdvad
juurdepääsuõigused
• Potentsiaalselt
ohtliku funktsiooni kasutamine
• Murtud või kahtlase krüptoalgoritmi kasutamine
• Vigane puhvri
suuruse arvutamine
• Vigase
autentimise puhul kordade arvu piiramata jätmine
• URL ümber
suunamine mitteusaldatud saiti
• Ründaja
etteantav formaadistring
• Täisarvude
ületäitumine
• Räsifunktsiooni
kasutamine ilma soolata
14. Anonüümsus ja
privaatsus (kommenteerimata)
• Privaatsus —
võimalus omaette olla
• Anonüümsus —
võimalus oma identiteeti varjata
• Interneti leviku
tõttu on personaalne info hakanud laialdasemalt ja kiiremini levima
• 1994: "In
Internet, nobody knows you are a dog"
• 2010: jah,
kollane krants viltuse katusega kuudist
• Kelle huvides on
jälgimine ja identifitseerimine?
• Isikuandmete äri
on tulus
Kuidas enda
privaatsust parandada?
• Ära jaga oma
personaalset informatsiooni
• Mitu
meiliaadressi — üks päris ja muud vahetuvad
• Ära usalda
vastseid tuttavaid liiga palju
• Hoia oma privaatne info oma arvutis
• Kaitse oma isiklikku arvutit
• Ettevaatust
saitide eest, mis pakuvad personaalse info eest auhindu jms
• Ära vasta
spämmeritele
• Ole kursis
veebiturbega (http vs https, mixed content, 3rd party cookies jne)
• Uuri
privaatsuspoliitikaid enne info andmist (P3P, ...)
• Kasuta krüptot
ja vajadusel anonümiseerijaid
Privaatsuse
parandamine: Snowdeni soovitused
• Vältige suuri
populaarseid online teenuseid nagu Google, Facebook , Dropbox
• Krüpteerige oma
kõvaketas
• Vältige
brauserites jälitust (do-not- track või lisapluginatega)
• Kasutage
krüpteeritud kiirsuhtlust ja meili
• Kasutage
brausimiseks Tori
Meili
anonümiseerijad
• Pseudo -anonümiseerijad
– Edasi-tagasi
kanal
– Serveri haldaja
teab, kes on kes
– Julf Helsingius
ja anon .penet.fi
• Päris
anonümiseerijad
– Ühesuunaline
kanal
– Terve võrk
vahendajaid, kiri läbib neist mitut
– Mitu kihti
krüpteerimist (onion routing — sibul)
– Serverite
administraatorid ei tea, kellega tegu
– Kahte sorti:
Cypherpunks ja Mixmaster
– Cypherpunks: PGP
baasil
– Mixmaster: oma
võtmed (RSA+3DES), fikseeritud suurus, ümber järjestamine
Varia
• Krüptopoliitika:
valitsuse huvid, USA, Prantsusmaa, Venemaa, Wassenaar; ringiga samas
tagasi (EU)
• Steganograafia
ja selle matemaatilisus
• Tarkvara patendid , pöördprojekteerimine, fair use
•
Kopeerimiskaitsed, DMCA (Corley, Johansen/DeCSS, Sklyarov), DRM,
CPRM, SDMI (Felten)
• Massiline
pealtkuulamine (Echelon, PRSIM, XKeyscore, krüpto nõrgestamine,
...)
• Tempest
Kõik kommentaarid