Operacinių sistemų sauga. - Kauno technologijos universitetas
Operacinių sistemų sauga. - Kauno technologijos universitetas
Operacinių sistemų sauga. - Kauno technologijos universitetas
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Kompiuterių ir OS <strong>sauga</strong><br />
OS saugos funkcijos<br />
Autentifikavimas<br />
Autorizavimas (prieigos teisių valdymas)<br />
Auditas<br />
Programų <strong>sauga</strong><br />
Failų <strong>sistemų</strong> <strong>sauga</strong><br />
Saugos protokolai
2<br />
Rizikos [1]<br />
■ Neprieinamumas (sistemos neveikimas)<br />
Dingo elektra<br />
Sugedo maitinimo šaltinis, diskas, procesorius<br />
Potvynis<br />
■ Duomenų praradimas<br />
Sugedo diskas<br />
Netyčia ištrynė vartotojas<br />
Pavogė nešiojamąjį kompiuterį<br />
■ Konfidencialių duomenų sukompromitavimas<br />
Tyčinis pavogimas, raktų atskleidimas<br />
Netyčia pasiuntė el. paštu<br />
■ Neautorizuotas kompiuterio resursų<br />
naudojimas<br />
Programos, tinklo, spausdintuvo, disko<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
2013 balandis
3<br />
Atakų pobūdžio kitimas<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
2013 balandis
4<br />
Dėl atakų respondentų patirti nuostoliai [1]<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
2013 balandis
5<br />
Ką saugoti kompiuteryje?<br />
■ Atmintis<br />
Vienas vartotojas (programa) nemato/negali keisti kitos<br />
programos<br />
Negali tyčia ar netyčia sugadinti kitos programos kodo ir<br />
duomenų atmintyje<br />
■ Periferiniai įrenginiai<br />
Diskai, failai juose<br />
Nesankcionuotas skaitymas/rašymas<br />
Sugadinimas po trikių ar specialiai<br />
Spausdintuvai, skaneriai – konfidencialumas, autorizuotas<br />
naudojimas<br />
■ Tinklai ir komunikacijos priemonės<br />
■ Programos<br />
Kad nebūtų sugadintos, pažeistas vientisumas, pakeistos,<br />
nebūtų neteisėtai naudojamos<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
2013 balandis
6<br />
OS funkcijos<br />
■ Pagrindinės OS funkcijos:<br />
Kompiuterio išteklių valdymas<br />
• diskai, tinklas, procesorius, atmintis<br />
Programų (procesų) valdymas<br />
• tuo pačiu ir vartotojų<br />
Programų sąsaja (API)<br />
• Vartotojo sąsaja, gali būti GUI, gali visai nebūti<br />
■ AAA (angl. Triple A)<br />
Vartotojo autentifikavimas (angl. Authentification)<br />
Prieigos teisių valdymas<br />
(angl. Authorization arba Access control)<br />
Auditas (angl. Accounting arba Auditing)<br />
■ Išteklių vientisumo ir konfidencialumo<br />
užtikrinimas<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
2013 balandis
7<br />
Vartotojų autentifikavimas<br />
■ Autentifikuoti galima pagal:<br />
Tai ką vartotojas žino<br />
• Slaptažodį, PIN kodą<br />
Tai ką vartotojas turi<br />
• Išmaniąją kortelę, RSA token, slaptažodžių kortelę<br />
Tai kas vartotojas yra<br />
• Piršto antspaudas, akies rainelė, balsas<br />
■ Daugiafaktorinis autentifikavimas<br />
Bankomate, banko žiniatinklio sistemoje<br />
■ Šiuolaikinės OS leidžia autentifikuoti pagal tai<br />
ką vartotojas žino<br />
■ Galima sukonfigūruoti taip, kad būtų<br />
autentifikuojama pagal kelis faktorius<br />
UNIX PAM sistema<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
2013 balandis
8<br />
Vartotojų autentifikavimas<br />
■ Vietinės OS slaptažodžių saugyklos<br />
: <br />
Niekada negalima saugoti slaptažodžių atviru tekstu<br />
UNIX slaptažodis saugomas kaip maišos rezultatas papildant salt<br />
reikšme<br />
Reikia naudoti „stiprius“ slaptažodžius, dažnai juos keisti,<br />
nenaudoti tų pačių<br />
• OS leidžia „priversti“ vartotojus tai padaryti<br />
• Negalima „perlenkti lazdos“ griežtinant reikalavimus<br />
■ Problemos naudojant ne vieną resursą<br />
Tinklas su daugeliu bendro naudojimo resursų<br />
• Darbo stotys, spausdintuvai, tinkliniai diskai, skaneriai, ...<br />
• Įvairi programinė įranga: apskaitos programa, DB, paštas, ...<br />
■ Problemos naudojant nutolusį prisijungimą<br />
Iš dalies sprendžia <strong>sauga</strong>us transporto naudojimas (SSL/TLS)<br />
Vietiniuose tinkluose dažnai nenaudojama, nes neefektyvu<br />
greitaveikos prasme<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
2013 balandis
9<br />
UNIX vartotojai<br />
■ /etc/passwd<br />
Vartotojas root<br />
UID=0<br />
Gali „viską“<br />
Gali būti ir ne root<br />
Gali būti ir keli<br />
■ /etc/shadow<br />
$ tail /etc/passwd<br />
oliaud:x:1081:100::/home/oliaud:/bin/bash<br />
ragalm:x:1084:100::/home/ragalm:/bin/bash<br />
romluk:x:1085:100::/home/romluk:/bin/bash<br />
stasil:x:1086:100::/home/stasil:/bin/bash<br />
sutpov:x:1087:100::/home/sutpov:/bin/bash<br />
sioeri:x:1088:100:Erika S.:/home/sioeri:/bin/bash<br />
ukiaur:x:1089:100::/home/ukiaur:/bin/bash<br />
prisijungimo vardas;<br />
x – vartotojas normalus, * – vartotojas neaktyvus<br />
UID, GID, Vardas, Namų direktorija, Shell'as<br />
$ sudo tail /etc/shadow<br />
oliaud:$2y$10$sP560s5gUJQMdJ9Qc0a.DgVojMqB0SPdRCYHgI8.:15385:0:99999:7:::<br />
ragalm:$2y$10$zrbSRk6RoquA.Ga9PZFNUi.zG8hYn2JdR55NtJdO:15412:0:99999:7:::<br />
romluk:$2y$10$qm7wKLPQ1JAAD5jxHfVKU/VkkH8P0NxqQVeNqvJ6:15385:0:99999:7:::<br />
stasil:$2y$10$2yNzRscDYx0lkg4egSzeBoatBBiAgDuQhdCbXdq2:15412:0:99999:7:::<br />
sutpov:$2y$10$anoWtRe3z4.c97A1XQQ84i33nvPm1SjrCXqELZ4S:15413:0:99999:7:::<br />
sioeri:$2y$10$XrVz4aLul3Ph3ezfeFcGbewbvWwqTzXj95Gj1EtC:15384:0:99999:7:::<br />
ukiaur:$2y$10$iazxx4aGBhVNpDCypBJGxYwgZPBIU...TE1hPXHe:15412:0:99999:7:::<br />
$2y$ – blowfish, 2 10 – raundų kiekis, 22 simb. – salt, 31 simb. – slapt.<br />
Kada keistas (nuo 1970.01.01), nuo kada gali keisti, nuo kada turi keisti,<br />
7 – prieš kiek dienų informuoti vartotoją, kad reikia keisti<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
2013 balandis
10<br />
Vartotojų grupės<br />
■ /etc/group<br />
$ tail /etc/group<br />
sshd:!:65:<br />
sys:x:3:<br />
video:$1$kPVl2FD9$zj6QaQTxjFg6oS.ycAHT3/:33:nerijus,apuart,palpau,pocirm<br />
www:$1$57P5NFtw$NV5.8bdKUmjFmvt.LRYhu1:8:<br />
nx:!:1000:<br />
users:x:100:<br />
Grupės slaptažodis, GID, vartotojų sąrašas<br />
$1$ – MD5, $57P5NFtw$ – salt reikšmė<br />
$ passwd<br />
$ gppasswd - keicia grupės slaptažodį<br />
$ newgrp -l www - laikinai padaro www grupės nariu (jei žino slapt.)<br />
$ groups sioeri<br />
sioeri : users dialout video<br />
$ id sioeri<br />
uid=1088(sioeri) gid=100(users) groups=16(dialout),33(video),100(users)<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
2013 balandis
11<br />
Autorizavimas, prieigos teisės<br />
■ OS traktuoja visus kompiuterio išteklius kaip<br />
objektus<br />
Įrenginiai, diskai, spausdintuvai, tinklas, atmintis,<br />
programos, failai, periferiniai įrenginiai, ...<br />
■ Šiems objektams galima nustatyti naudojimo<br />
teises, kurias suteikti (arba ne) tam tikriems OS<br />
vartotojams (procesams) ar jų grupėms<br />
■ Ką gali (ir ko negali) kiekvienas vartotojas<br />
daryti su objektu nusako jo prieigos teisės<br />
(angl. access control)<br />
Turime trimatę matricą: vartotojai (ar jų grupės), objektai<br />
(ištekliai), prieigos teisių sąrašas<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
2013 balandis
12<br />
Prieigos teisių valdymas (DAC)<br />
■ Discretionally Access Control – DAC (išvertus –<br />
savo nuožiūra valdomas) modelis<br />
Jis remiasi prieigos teisių sąrašo (angl. Access Control List –<br />
ACL) naudojimu<br />
■ Kiekvienam resursui sukuriama ir palaikoma<br />
prieigos teisių lentelė<br />
Kiekvieno resurso savininkas gali su resursu daryti ką nori<br />
(bet kam leisti naudoti, skaityti, rašyti, keisti, ...)<br />
Aktyvios kiekvieno vartotojo teisės nustatomos sumuojant<br />
vartotojo ir visų grupių, kurioms jis priklauso, teises<br />
Pats lanksčiausias, naudojamas UNIX, Windows, Novell OS<br />
Vartotojas gali jam patikėta resursą suteikti bet kam, kas<br />
jam atrodo patikimas<br />
Sunkiausia centralizuotai valdyti, taip įgyvendinant įmonės<br />
saugos politiką<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
2013 balandis
13<br />
Prieigos teisių valdymas (2)<br />
■ Role-based Access Control (RBAC)<br />
Naudojamos rolės, kurios apibrėžia tam tikrų veiksmų su<br />
resursu aibę<br />
Roles kuria ir valdo ne patys vartotojai<br />
Vartotojai ir jų grupės tas roles gauna<br />
Naudojamas JavaEE<br />
• Dalinai galima realizuoti per grupes, bet tai nėra tas pats<br />
■ Mandatory (privalomas) Access Control (MAC)<br />
Resursams ir vartotojams suteikiami saugos lygiai, žymės<br />
(visiškai slaptai, slaptai, konfidencialu, neklasifikuota)<br />
Pats vartotojas negali nieko keisti<br />
Bell-LaPadula modelis:<br />
• žemesniojo lygio vartotojas negali skaityti aukštesniojo<br />
lygio resurso (gali tik rašyti)<br />
• aukštesniojo lygio vartotojas negali rašyti į žemesniojo<br />
lygio resursą (gali tik skaityti)<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
Rolės susiję su resursu:<br />
Finans-DBVS-Vart<br />
Grupės – vartotojų<br />
bendras atributas:<br />
KTU-CR-Darb<br />
2013 balandis
14<br />
DAC prieigos teisių valdymas (windows)<br />
Principals Resursai<br />
Programa.exe Kyocera<br />
FS-1024<br />
Jei Jonas yra grupės LocalUsers narys tai jis gali<br />
spausdinti<br />
Jei Petras yra Admins ir LocalUsers grupių narys, jis gali<br />
valdyti serverį 1<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
Serveris 1 Dok.txt<br />
Jonas Vykdyti Matyti Matyti Matyti<br />
Petras Rašyti, Vykdyti - - Rašyti,<br />
Skaityti<br />
LocalUsers Matyti Spausdinti - -<br />
Principal – vaidmens<br />
atlikėjas, vykdytojas<br />
Admins Viską Viską Valdyti Matyti<br />
Back-SRV Skaityti - Skaityti<br />
2013 balandis
15<br />
NTFS failų ir direktorijų teisės (DAC)<br />
NTFS<br />
File<br />
Veiksmai NTFS<br />
Folder<br />
Read Matyti failo turinį, jo<br />
atributus ir teises<br />
Write Keisti failo turinį,<br />
atributus. Matyti jo teises<br />
Read &<br />
Execute<br />
Read + gali vykdyti<br />
programą<br />
Modify Read & Execute + Write +<br />
keisti failo turinį arba trinti<br />
failą<br />
Full<br />
Control<br />
Visi buvę + keisti failo<br />
teises, tapti savininku<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
Veiksmai<br />
Read Matyti failų ar direktorijų sąrašą.<br />
Matyti direktorijos atributus ir teises<br />
Write Kurti direktorijoje naujus failus ir<br />
direktorijas. Matyti direktorijos<br />
teises. Keisti direktorijos atributus<br />
List Folder<br />
Contents<br />
Read &<br />
Execute<br />
Matyti direktorijos failų ir<br />
subdirektorijų sąrašą<br />
Matyti failų sąrašą, eiti į<br />
subdirektorijas<br />
Modify Visi buvę + trinti direktoriją<br />
Full<br />
Control<br />
Visi buvę + keisti direktorijos teises,<br />
tapti savininku<br />
Windows OS kiekvienas objekto tipas turi savo galimų<br />
teisių sąrašą (individualų)<br />
2013 balandis
16<br />
Prieigos teisės (POSIX standartas)<br />
■ POSIX (Portable Operating System Interface)<br />
standartas (nuo 1988 m.) numatė<br />
„standartines“ OS savybes. Tame tarpe ir FS<br />
prieigos valdymą<br />
Dabar naudoja visos UNIX šeimos OS<br />
Kiekvienas failas turi savo savininką ir grupę<br />
Galimos tik trys prieigos teisės:<br />
Teises galima suteikti:<br />
• savininkui<br />
• grupei<br />
• visiems<br />
$ ls -la<br />
total 17<br />
drwxr-xr-x 3 nana writers 80 2005-09-20 21:37 dir<br />
-rw-r----- 1 nana writers 8187 2005-09-19 13:35 file<br />
-rwxr-xr-x 1 nana writers 10348 2005-07-17 20:31 otherfile<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
Teisė Prasmė<br />
r<br />
w<br />
x<br />
-<br />
skaityti (read)<br />
rašyti (write)<br />
vykdyti (execute)<br />
jokių teisių<br />
2013 balandis
17<br />
Prieigos teisių nustatymas<br />
$ chmod a=r testfile --> -r--r--r--<br />
$ chmod g+x testfile --> -r--r-xr--<br />
$ chmod u+wx testfile --> -rwxr-xr--<br />
$ chmod ug-x testfile --> -rw-r—r--<br />
$ chmod -R o=- studentams-gpg-dir +<br />
-<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
Kodas Prasmė<br />
u<br />
g<br />
o<br />
a<br />
Kodas Prasmė<br />
=<br />
Savininkas (user/owner)<br />
Grupė (group)<br />
Kiti (other)<br />
Visi (all)<br />
Tipas Failas Direktorija<br />
Read<br />
Write<br />
Execute<br />
Galima skaityti failo turinį<br />
Galima rašyti į failą, keisti jo<br />
turinį<br />
Vykdyti failą<br />
Pridėti teisę<br />
Atšaukti teisė<br />
Galima pamatyti direktorijos failų<br />
sąrašą<br />
nustatyti tiksliai tokią teisę<br />
Keisti direktorijos turinį: kurti, trinti,<br />
pervadinti failus (ir direktorijas)<br />
Galima “įeiti” į direktoriją, padaryti ją<br />
einamąja direktorija<br />
2013 balandis
18<br />
Failo grupė ir savininkas<br />
$ chown username somefile<br />
$ chown username:usergroup somefile<br />
$ chown -R username somedir<br />
$ chgrp usergroup somefile<br />
$ chgrp -R usergroup somedir<br />
Papildomos failo teisės,<br />
OS procesų teisės:<br />
Kodas Prasmė<br />
Paleistas vykdyti failas (procesas) įgaus ne jį<br />
SUID paleidusio vartotojo teises, bet to failo<br />
savininkio teises (pvz. root)<br />
Procesas įgauna failo grupės teises. Jei tai<br />
direktorija, tai joje kuriami failai įgauna<br />
SGID<br />
direktorijos grupę vietoj kuriančio vartotojo<br />
grupės<br />
Failą tokioje direktorijoje gali keisti tik jį<br />
STICKY<br />
sukūręs vartotojas, naudojama /tmp<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
■ Sukūrus naują failą (dir),<br />
jis gauna vartotojo<br />
pagrindinę grupę<br />
newgrp keičia pagrindinę<br />
grupę<br />
■ Savininką gali pakeisti<br />
tik root<br />
■ Grupę galima pakeisti tik<br />
į tokią, kuriai priklauso<br />
pats vartotojas<br />
Arba žino naujos grupės<br />
slaptažodį<br />
newgrp, po to chgrp<br />
2013 balandis
19<br />
UNIX resursų modelis<br />
■ UNIX šeimos OS naudoja labai<br />
paprastą visų kompiuterio resursų<br />
modelį<br />
Visi resursai yra failai<br />
Jiems galima nustatyti teises įprastu būdu<br />
$ ls -l /dev/*mem<br />
crw-r----- 1 root kmem 1, 2 2012-03-05 19:33 /dev/kmem<br />
crw-r----- 1 root kmem 1, 1 2012-03-05 19:33 /dev/mem<br />
crw-rw---- 1 root root 1, 12 2012-03-05 19:33 /dev/oldmem<br />
$ ls -l /dev/sd*<br />
brw-rw---- 1 root disk 8, 0 2012-03-05 19:33 /dev/sda<br />
brw-rw---- 1 root disk 8, 1 2012-03-05 19:33 /dev/sda1<br />
brw-rw---- 1 root disk 8, 2 2012-03-05 17:33 /dev/sda2<br />
$ ls -l /usr/bin/passwd<br />
-rwsr-xr-x 1 root shadow 80268 2011-07-29 21:36 /usr/bin/passwd<br />
$ ls -l /usr/bin/write<br />
-rwxr-sr-x 1 root tty 9892 2011-08-13 00:54 /usr/bin/write<br />
$ ls -l / | grep tmp<br />
drwxrwxrwt 82 root root 1589248 2012-03-21 15:00 tmp<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
Windows OS: LPT1, COM1 ?<br />
Kodas Objektas<br />
-<br />
d<br />
l<br />
c<br />
b<br />
p<br />
s<br />
Failas<br />
Direktorija<br />
Simbolinė nuoroda<br />
Simbolinis įrenginys<br />
Blokinis įrenginys<br />
FIFO vamzdis<br />
Soketas<br />
2013 balandis
20<br />
Failų ACL<br />
■ Paprasto POSIX tipo prieigos valdymo gali<br />
nepakakti lanksčiai valdyti failų teises<br />
■ Šiuolaikinės UNIX FS (ext3, ext4, JFS, ReiserFS)<br />
palaiko papildomą prieigos teisių sąrašą failams<br />
$ setfacl -m g:www:rwx 1.txt<br />
$ setfacl -m u:jjonas:rwx 1.txt<br />
$ ls -l 1.txt<br />
-rw-rwx---+ 1 nerijus users 143 2012-03-21 1.txt<br />
$ getfacl 1.txt $ getfacl 1.txt<br />
# file: 1.txt<br />
# owner: nerijus<br />
# group: users<br />
mask apriboja ACL teises, jei mask<br />
teisės mažesnės, tai ir efektyvios teisės<br />
mažesnės nei nurodyta kitose eilutėse<br />
Neturi įtakos 3 „tikroms“ POSIX teisėms<br />
user::rwgroup::r-group:www:rwx<br />
mask::rwx<br />
other::---<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
setfacl --remove-all filename<br />
setfacl -m g:groupname:rw- filename<br />
setfacl -m u:userid:rw- filename<br />
getfacl filename<br />
$ getfacl 1.txt<br />
# file: 1.txt<br />
# owner: nerijus<br />
# group: users<br />
user::rwuser:jjonas:rwxgroup::r-group:www:rwx<br />
mask::rwx<br />
other::---<br />
2013 balandis
21<br />
OS ACL modelių palyginimas<br />
■ Windows naudoja specialias teises, pritaikytas<br />
kiekvienam resurso tipui individualiai<br />
Patogu administruoti, saugu<br />
Iš karto numatytos dažniausios situacijos<br />
Neįmanoma numatyti visų situacijų<br />
Nepakankamas lankstumas (kitų sukurtos programos)<br />
■ POSIX<br />
Labai paprastas modelis<br />
Lankstus, suteikia daug galimybių administratoriui<br />
Administratorius pats „sugalvoja“ kaip realizuoti reikiamą<br />
prieigos teisę<br />
Reikalinga aukšta kvalifikacija, nes galima pridaryti „saugumo<br />
skylių“ sistemoje<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
2013 balandis
22<br />
Saugos modelių palyginimas<br />
■ Reikia suteikti galimybę OpenVPN naudotis<br />
neprivilegijuotam vartotojui<br />
Keičia sisteminę maršrutizavimo lentelę<br />
■ POSIX<br />
SUID atributas vykdomajam failui, teisės rwxr-x---<br />
• Failo grupė – vpnusers<br />
• Tam tikrus vartotojus įtraukiame į šią naują grupę<br />
Kitas sprendimas – programa sudo turinti SUID atributą,<br />
panaudojant sudoers konfigūracinį failą<br />
• Galima apriboti openvpn ir naudojamus parametrus<br />
(konfigūracinį failą)<br />
■ Windows<br />
Nėra <strong>sauga</strong>us sprendimo (pagal oficialų OpenVPN puslapį)<br />
• Visi sprendimai remiasi administratoriaus slaptažodžio<br />
išsaugojimu<br />
• Paprastas vartotojas įgauna teisę tapti administratoriumi ir<br />
kitais atvejais (jei turi pakankamai žinių)<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
vmware,<br />
promiscuous režimas vmnet1<br />
/dev/vmnet1 failo ACL<br />
2013 balandis
23<br />
OS auditas<br />
■ OS turi galimybę registruoti įvairius sistemoje<br />
vykstančius įvykius į žurnalus (angl. Log files)<br />
■ Analizuojant žurnalus, galima nustatyti, kada ir<br />
kodėl įvyko vienas ar kitas įvykis<br />
Kas įsilaužė, iš kokios vietos, koki būdu, ką jis padarė<br />
■ Auditas gali būti:<br />
Pasyvusis<br />
• Registruoja įvykius, niekaip į juos nereaguoja, nesiima<br />
jokių aktyvių veiksmų atakai nutraukti<br />
• Siekiama surinkti kuo daugiau informacijos incidento<br />
tyrimui, informuoti atsakingus asmenis apie incidentą<br />
Aktyvusis<br />
• Stebi sistemos darbą, veda žurnalą<br />
• Pastebėjęs įtartiną veiklą imasi atsakomųjų veiksmų<br />
• IDS, vartotojo blokavimas, paslaugos išjungimas, ...<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
2013 balandis
24<br />
Ką reikia rašyti į žurnalus?<br />
■ Prisijungimus (atsijungimus) prie sistemos<br />
Tiek sėkmingus tiek ne<br />
Jokiu būdu negalima saugoti slaptažodžių, net ir neteisingų<br />
■ Prisijungimus prie nutolusių <strong>sistemų</strong><br />
■ Operacijas su failais (atidarymas, uždarymas,<br />
pervardijimas, ištrynimas), failų teisių keitimas<br />
Dažnai dėl greitaveikos atsisakoma dalies įrašų<br />
Pvz., registruojami tik Apache paliesti failai<br />
■ Į žurnalą įtraukiama:<br />
Laikas<br />
Vartotojas<br />
Įvykio tipas<br />
Rezultatas (sėkmingas ar ne, pavyko ar ne)<br />
Įvykio šaltinis (IP adresas, terminalo nr.)<br />
Naudotų objektų vardai (pvz., failų vardai)<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
2013 balandis
25<br />
Žurnalų naudojimas<br />
■ Ką reikia registruoti nusako įmonės saugos<br />
politika. Šią politiką įgyvendina administratorius,<br />
konfigūruodamas OS<br />
■ Žurnalai leidžia stebėti ar įmonės darbuotojai<br />
nepažeidžia saugos politikos<br />
Jei pažeidžia, tai juos galima panaudoti kaip įrodymus<br />
iškilus ginčams („Ne, tikrai šito niekada nedariau!“)<br />
Veikia kaip gera profilaktinė priemonė<br />
■ Įvykus incidentui žurnalai nagrinėjami siekiant<br />
rekonstruoti įvykių seką, suprati kodėl incidentas<br />
tapo galimas<br />
■ Keisti įmonės saugos politiką<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
2013 balandis
26<br />
Windows auditas<br />
■ Audito žurnalus gali vesti tiek OS, tiek pati<br />
programa (Apache, DBVS ir pan.)<br />
Programa gali naudoti OS auditavimo funkcijas (syslogd)<br />
arba kurti savo nepriklausomą žurnalą<br />
■ Windows naudoja paslaugą EventLog<br />
Kokius įvykius registruoti nustatoma LocalSecurityPolicy<br />
Failų naudojimo registravimo reikalavimai valdomi<br />
WindowsExplorer<br />
Žurnalus peržiūrėti galima naudojant EventViewer<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
2013 balandis
27<br />
UNIX auditas<br />
■ Naudoja standartinę OS paslaugą syslogd<br />
Paslauga visus įvykius saugo tekstiniuose failuose<br />
■ Į syslogd galima siųsti duomenis ir iš nutolusio<br />
kompiuterio<br />
Galima sukurti atskirą dedikuota audito serverį<br />
Kuris gali būti nepasiekiamas kitais būdais, dėl to saugus<br />
■ UNIX šeimos sistemose įprasta visus audito<br />
failus saugoti /var/log direktorijoje<br />
Net ir tuo atveju, jei failą kuria ir valdo pati programa, o<br />
ne sisteminė paslauga (syslogd)<br />
Beveik visi žurnalai – tekstiniai failai, kuriuos lengva<br />
peržiūrėti<br />
# tail -f /var/log/messages<br />
# less /var/log/messages<br />
# more -f /var/log/messages<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
2013 balandis
28<br />
Linux audito įrašų peržiūra<br />
■ Žurnalų failai laikui bėgant labai didėja, todėl<br />
naudojama paslauga logrotate<br />
■ last - parodo vartotojų prisijungimo laikus<br />
Vartotojui patogia forma pateikia failo /var/log/lastlog<br />
turinį<br />
lastlog – parodo kada visi vartotojai buvo prisijungę<br />
# last | head<br />
nerijus pts/4 Wed Mar 21 12:07 still logged in<br />
sainer pts/2 Wed Mar 21 08:02 - 08:02 (00:00)<br />
zonand pts/1 Tue Mar 20 20:22 - 22:00 (01:37)<br />
sioeri pts/1 Tue Mar 20 11:11 - 11:11 (00:00)<br />
# /var/log/message: Pagrindinis sistemos žurnalas<br />
# /var/log/lastlog: Autentifikavimo žurnalas (netekstinis)<br />
# /var/log/boot.msg : Sistemos užsikrovimo pranešimų žurnalas<br />
# /var/log/mail.* : Pašto sistemos žurnalai<br />
# /var/log/apache2/*: Apache serverio žurnalų direktorija<br />
# /var/log/mysqld.log: MySQL DBVS žurnalas<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
2013 balandis
29<br />
AAA ir kitos programos<br />
■ Kai kurios programos, ypač tos, kurios gali būti<br />
naudojamos daugelyje skirtingų OS naudoja<br />
savo nepriklausomą AAA<br />
Dėl nesuderinamumo tarp populiariausių UNIX ir<br />
Windows šeimos OS<br />
■ DBVS<br />
Oracle, MySQL, PostgreSQL naudoja savo infrastruktūrą<br />
■ JavaEE taikomųjų programų serveriai<br />
GlassFish, Tomcat<br />
Gali naudoti kelias autentifikavimo priemonės, tame<br />
tarpe ir vieno tipo OS (pvz., Solaris)<br />
■ Apache ŽS<br />
Pilnai nuosava infrastruktūra, gali naudoti kai kurias OS<br />
priemones<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
2013 balandis
30<br />
Problemos<br />
■ Vieningas prisijungimas (angl. Single Sign On)<br />
■ Vieningas prieigos teisių valdymas<br />
Tinkliniai spausdintuvai, specializuoti įrenginiai:<br />
maršrutizatoriai (juose veikiančios paslaugos, pvz., VPN),<br />
komutatoriai ir pan.<br />
■ Reikalinga vieninga įmonės tinklo resursų<br />
valdymo sistema<br />
Arba apsiribojame vienu gamintoju arba reikia kažkokių<br />
plačiai naudojamų standartų<br />
■ Kerberos<br />
■ LDAP<br />
■ RADIUS<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
2013 balandis
OS resursų <strong>sauga</strong><br />
OS saugos modeliai<br />
Programų ir procesų <strong>sauga</strong>
32<br />
OS procesų saugos modelis<br />
■ Procesai OS įgauna jų vartotojo teises (UID ir<br />
GID) ir gali daryti ta ką ir vartotojas<br />
Praktiškai vartotojas „pats“ nieko negali padaryti, jis gali<br />
tik paleisti programą kuri „jam“, „jo vardu“ kažką padaro<br />
Realiai failų sąrašą „mato“ ar „nemato“ ne pats<br />
vartotojas, o programa: ls<br />
• Kuri paleidžiama vartotojo teisėmis<br />
Jei jis turi kitą programą (php, apache, …), kuri turi teisę<br />
matyti tą resursą ir vartotojas gali ją paleisti, tai jis ir<br />
pamatys to resurso turinį<br />
■ Būtina saugoti vienus procesus nuo kitų įtakos<br />
Nes ne visi procesai veikiantys OS turi tas pačias teises<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
2013 balandis
33<br />
Vykdomų programų ap<strong>sauga</strong><br />
■ OS vykdant keletą programų vienu metu iškyla<br />
eilė saugos problemų:<br />
Procesai gali naudoti kito proceso duomenis ar kodą<br />
Naudoti duomenis atmintyje ne pagal paskirtį<br />
• „Vykdyti“ duomenų segmentą<br />
Sutrikdyti kitų programų darbą (kartais net ir OS) dėl<br />
klaidų kode<br />
• Steko perpildymas, buferio perpildymas<br />
Piktavališkos programos gali bandyti<br />
• pažeisti,<br />
• apkrauti sistemą,<br />
• išnaudoti visus resursus (užpildyti visą diską)<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
2013 balandis
34<br />
Atminties ap<strong>sauga</strong><br />
■ Šiuolaikiniai procesoriai (pvz., nuo Intel 80386)<br />
turi visą eilę aparatinių priemonių leidžiančių<br />
pagelbėti OS užtikrinti atminties saugą<br />
■ Ap<strong>sauga</strong> valdant atmintį:<br />
Atmintis suskirstoma į specialias struktūras (segmentus)<br />
kurioms suteikiami tam tikri atributai ir fizinių adresų<br />
ruožas<br />
• Atributai: vykdomas kodas, duomenys ir pan.<br />
Pats procesorius seka, kad tai nebūtų pažeista<br />
• Seka ar kreipties adresas neišeina už segmento ribų<br />
• Seka kreipties į segmentą teises (RO ar RW)<br />
• Segmento naudojimo paskirtį (vykdomasis ar duomenų)<br />
Įvykus pažeidimui, įvyksta pertraukimas, kurį apdoroja OS<br />
ir imasi atitinkamų veiksmų<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
2013 balandis
35<br />
Programų vykdymo privilegijos (Intel)<br />
■ Pats procesorius seka, ar vykdomasis procesas<br />
turi pakankamas privilegijas:<br />
Atlikti privilegijuotas komandas (segmento registrų<br />
keitimas)<br />
Atlikti įvedimo-išvedimo komandas (rašymas ar<br />
skaitymas iš portų)<br />
Kreiptis į kitų procesų atminties segmentus<br />
Iškviesti paprogrames tam tikrais adresais<br />
■ Apsaugos žiedai<br />
0 lygis. OS branduolys,<br />
atminties valdymas<br />
1 lygis. OS paslaugos<br />
2 lygis. OS pagalbinės programos,<br />
įrenginių tvarkyklės<br />
3 lygis. Vartotojų programos<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
Labiausiai<br />
privilegijuotas<br />
0<br />
1<br />
2<br />
3<br />
Mažiausiai<br />
privilegijuotas<br />
2013 balandis
36<br />
FS vientisumas<br />
■ Istoriškai daugiausia problemų diskiniuose<br />
kaupikliuose kildavo po trikių duomenų rašymo į<br />
diską metu<br />
Ypač FAT, FAT32 FS<br />
■ FS trinant failą daromi dvejų tipų rašymai į diską:<br />
1. Ištrinamas jo pavadinimas iš direktorijos failo<br />
2. Failo užimama vieta (klasteriai) pažymima kaip laisva<br />
Jei sistema sutrinka po pirmojo žingsnio, diske lieka tam<br />
tikra vieta pažymėta kaip užimta, nors joks failas iš tikrųjų<br />
jos neužima<br />
■ Norint tokias FS klaidas ištaisyti, reikia patikrinti<br />
viso disko turinį, kas labai ilgai užtrunka<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
2013 balandis
37<br />
Žurnalinės failų sistemos<br />
■ Dabar naudojamos žurnalinės failų sistemos<br />
(angl. Journalling Filesystem).<br />
Šios FS naudoja tranzakcijų mechanizmą<br />
Disko operacijos pradžioje įrašomos į žurnalą (tam tikrą<br />
specialią vietą diske)<br />
Po to daromi pakeitimai diske (keičiami failai ir<br />
direktorijos)<br />
Jei viskas sėkmingai pavyksta, ištrinamas įrašas žurnale<br />
Jei sistema sutrinka, tai persikrovus OS galimi du atvejai<br />
Įrašas į žurnalą nebuvo padarytas iki galo (CRC32 klaida)<br />
• nieko nedaroma, pašalinami žurnalo įrašai (diskas lieka<br />
toje būsenoje, kuri buvo prieš darant pakeitimus)<br />
Įrašas į žurnalą buvo padarytas, bet nebaigta rašyti į diską<br />
• pagal žurnalo įrašą pakartojamos disko rašymo<br />
operacijos<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
2013 balandis
38<br />
Žurnalinių FS tipai<br />
■ Kai kurios FS numato tik failų metaduomenų<br />
pakeitimų registravimą tranzakcijų žurnaluose<br />
■ Jų žurnalai dar vadinami loginiais žurnalais<br />
Žurnale registruojami tik failų sistemos lygio pakeitimai<br />
• Keičiant pačio failo turinį – neregistruojama<br />
NTFS, ext3, ext4, ReiserFS ir pan.<br />
Veikia daug greičiau, nei fiziniai žurnalai<br />
Kartais galima prarasti dalį duomenų pačių failų turinyje<br />
■ Jei FS registruoja žurnale visas rašymo operacijas<br />
į diską, tai turime fizinį žurnalą<br />
Palaiko ext3, ext4 (nurodoma montuojant), JFS (IBM)<br />
Veikia daug lėčiau, reikalauja daug papildomos vietos diske<br />
žurnalui saugoti<br />
Užtikrina geresnį FS vientisumą ir greitą FS montavimą po<br />
sutrikimų<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
2013 balandis
39<br />
FS <strong>sauga</strong> (kvotos)<br />
■ Disko naudojimo ribojimai<br />
Kai kurios FS (ext2, ext3, ext4, NTFS) leidžia apriboti<br />
vartotojams ar jų grupėms prieinamą vietą diske<br />
quotacheck, edquota, setquota, quotaon, quota<br />
• Blokas = 1KB<br />
• OS neleidžia pažeisti hard ribojimo<br />
• Pasibaigus atidėjimo (grace) periodui, soft tampa hard<br />
$ quota<br />
Disk quotas for user chirico (uid 500):<br />
Filesystem blocks quota limit grace files quota limit grace<br />
/dev/loop0 1 100 200 1 10 20<br />
# repquota -g /quota<br />
*** Report for group quotas on device /dev/loop0<br />
Block grace time: 7days; Inode grace time: 7days<br />
Block limits File limits<br />
Group used soft hard grace used soft hard grace<br />
---------------------------------------------------------------------root<br />
-- 1202 0 0 4 0 0<br />
quotagrp ++ 12 5 100 6days 10 6 10 6days<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
2013 balandis
40<br />
FS konfidencialumas (be OS)<br />
■ Kvotos saugo nuo FS tyčinio ar netyčinio<br />
perpildymo<br />
Tokiu atveju OS gali tapti visiškai nedarbinga<br />
■ Kvotų naudojimas labai lėtina FS darbą<br />
Dažniausiai administratoriai stengiasi kvotų nenaudoti<br />
■ ACL ir kvotų naudojimas užtikrina diske įrašytų<br />
duomenų saugą tik tol, kol veikia pati OS<br />
Jei konfidencialumo reikia ir be OS, naudojamas duomenų<br />
šifravimas<br />
Disko skirsnio (angl. partition) šifravimas<br />
Failų sistemos lygio šifravimas (visai FS vienas raktas)<br />
• Encrypting File System (EFS), Secure File System (SFS), NTFS<br />
Failo šifravimas (naudojant taikomąją programą)<br />
■ Naudojamos hibridinės arba simetrinės<br />
kriptosistemos<br />
Raktą reikia atsiminti arba naudoti HSM (pvz., kortelę)<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
2013 balandis
41<br />
Dažniausiai naudojamos programinės atakos<br />
■ Viruso<br />
(angl. Virus) tai be vartotojo žinios į kompiuterį įdiegta<br />
programa ar programos kodo dalis, kuri vykdo<br />
destrukcinius ir dauginimosi veiksmus<br />
■ Kirmino<br />
(angl. Worm) tai programa arba algoritmas, kuris<br />
dauginasi ir plinta tinklais, dažniausiai atlieka<br />
nepageidaujamą poveikį<br />
■ Trojos arklio<br />
(angl. Trojan horse) tai destruktyvi ir nesidauginanti<br />
programa, kuri dažnai yra užmaskuota kaip atliekanti<br />
naudingas funkcijas<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
2013 balandis
42<br />
Programinės įrangos ap<strong>sauga</strong><br />
■ Programų pasirašymas užtikrina jog įsidiegsime<br />
nesugadintą ir nemodifikuotą programą<br />
Norint, kad diegiama programa būtų tikrai ta, kurią<br />
manome, kad diegiame, naudojamas kodo pasirašymas<br />
Linux OS populiarūs PGP sertifikatai ir parašai<br />
Naujesnės Windows OS naudoja x.509 sertifikatus ir<br />
parašus<br />
Problema: ne visi gamintojai pasirašo ir ne visų<br />
sertifikatai būna įdiegti į OS<br />
■ Antivirusinės programos<br />
Seka, kad į sistemą nepapultų piktavališkos programos<br />
Diskai, tinklas, paštas, dokumentai, programos ...<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
2013 balandis
43<br />
OS stiprinimas (angl. OS hardening)<br />
■ 1. Atjunkite (programiškai ar fiziškai)<br />
nenaudojamus įrenginius<br />
USB portai, CD/DVD, modemą, tinklo kortą<br />
■ 2. Įdiekite OS ir sisteminės įrangos (angl.<br />
Firmware) atnaujinimus<br />
Atskiras atvejis – eksploatuojami serveriai<br />
■ 3. Išmeskite (angl. Uninstall) visus<br />
nenaudojamus tinklo protokolus<br />
■ 4. Išmeskite (išjunkite) visas nenaudojamas<br />
paslaugas<br />
■ 5. Visiems vietiniams resursams (diskams,<br />
spausd., ...) sukurkite prieigos teisių sąrašus<br />
Juos sukonfigūruokite pagal saugos politiką<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
2013 balandis
44<br />
OS stiprinimas (2)<br />
■ 6. Vartotojams suteikite mažiausias galimas<br />
teises darbo stotyje<br />
Niekada nedirbkite privilegijuotu vartotoju<br />
■ 7. Vietiniam administratoriui suteikite stiprų<br />
slaptažodį, pervadinkite jį<br />
UNIX OS uždrauskite administratoriui prisijungti per SSH<br />
■ 8. Išmeskite visas paskyras, kurios<br />
nenaudojamos, bet sukuriamos pagal<br />
nutylėjimą<br />
Guest Windows OS ir pan.<br />
■ 9. Įdiekite antivirusą<br />
Nuolat (pagal saugos politiką) jį atnaujinkite<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
2013 balandis
45<br />
Kerberos [4]<br />
■ Kerberos – tinklinis autentifikavimo protokolas,<br />
sukurtas MIT 198x. Dabar RFC1510, RFC4120.<br />
■ Skirtas užtikrinti vieningą prisijungimą ir<br />
prieigą prie skirtingų resursų įmonės tinkle<br />
■ Microsoft naudoja nuo Win2000<br />
■ Taip pavadintas, nes dalyvauja trys šalys:<br />
Klientas<br />
Paslaugos serveris<br />
Raktų paskirstymo centas (KDC)<br />
• Autentifikavimo paslauga (AS)<br />
• Bilietų išdavimo paslauga (TGS)<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
2013 balandis
Principal<br />
46<br />
Kerberos schema (supaprastinta)<br />
<br />
ST<br />
Bilietų išdavimo<br />
TGT bilietas<br />
TGT<br />
ST<br />
Pateikia bilietą<br />
<br />
<br />
Suteikia paslaugą<br />
Prisijungti<br />
Paslaugos užklausa<br />
Paslaugos bilietas<br />
Vartotojas<br />
Laiko žymė<br />
Paslauga<br />
Paslauga<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
Raktų paskirstymo centras (KDC)<br />
<br />
Patikrina bilieto<br />
galiojimą<br />
DB<br />
Autentifikavimo<br />
paslauga (AS)<br />
<br />
Katalogas<br />
Bilietų išdavimo<br />
paslauga (TGS)<br />
2013 balandis
47<br />
LDAP<br />
■ Katalogo paslaugos (angl. Directory Services)<br />
teikia vartotojų autorizavimo paslaugą įmonės<br />
tinkle<br />
Tai lyg DB kurioje galima centralizuotai užregistruoti visus<br />
objektus ir jų atributus<br />
Vartotojus, tinklo resursus<br />
■ Standartas apibrėžiantis tokią DB – x.500<br />
standartų serija sukurta 198x m.<br />
■ LDAP (angl. Lightweight Directory Access<br />
Protocol) – protokolas, kuris leidžia tinklu<br />
kreiptis ir pildyti x.500 standarto katalogą<br />
Jį naudoja Windows AD, OpenLDAP, Novell eDirectory<br />
Naudoja TCP ir UDP 389 portą<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
2013 balandis
48<br />
LDAP (2)<br />
■ Pats LDAP protokolas nesuteikia jokios saugos<br />
■ Visi pasikeitimai duomenimis vyksta atviru<br />
kanalu<br />
Reikia naudoti saugius transporto protokolus<br />
• IPsec, SSL/TLS ir pan.<br />
■ Klientų nereikalauja autentifikuotis<br />
Autentifikavimą (LDAP vadinamą susiejimą, angl. Binding,<br />
su serveriu) galima organizuoti naudojant kitas priemones<br />
Nuo 3 v. LDAP palaiko tris būdus:<br />
• Neautentifikuojant<br />
• Paprastas autentifikavimas (DN + slaptažodis)<br />
• SASL (angl. Simple Authentifications and Security<br />
Layer), kuris leidžia susitarti kaip autentifikuotis (TLS<br />
lygyje, Kerberos, vardu ir slaptažodžiu)<br />
■ Numato RO ir RW priėjimą prie DB<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
2013 balandis
49<br />
Literatūra<br />
[1] Rimantas Plėštys, et. al. Kompiuterių tinklų <strong>sauga</strong>:<br />
mokomoji knyga. <strong>Kauno</strong> <strong>technologijos</strong> <strong>universitetas</strong>. Vitae<br />
Litera, 2008, 186 p.<br />
[2] Man Young Rhee. Internet Security. John Wiley & Sons<br />
Ltd., 2003, 405 p.<br />
[3] Algimantas Venčkauskas, Jevgenijus Toldinas.<br />
Kompiuterių ir operacinių <strong>sistemų</strong> <strong>sauga</strong>: mokomoji knyga.<br />
<strong>Kauno</strong> <strong>technologijos</strong> <strong>universitetas</strong>. Vitae Litera, 2008,<br />
200<br />
p.<br />
[4] Kerberos: The Network Authentication Protocol.<br />
Prieiga per Internetą: http://web.mit.edu/kerberos/<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
2013 balandis
50<br />
Pagrindiniai klausimai<br />
■ AAA – autentifikavimo, autorizavimo ir audito<br />
užtikrinimo priemonės šiuolaikinėse OS<br />
Pagal ką galima autentifikuoti vartotoją?<br />
Daugiafaktorinis autentifikavimas<br />
UNIX slaptažodžiai, /etc/passwd ir /etc/group<br />
Prieigos teisių valdymo modeliai DAC, MAC, RBAC<br />
Prieigos teisių valdymas POSIX ir Windows<br />
Auditas Windows ir Linux OS<br />
■ OS resursų <strong>sauga</strong><br />
Atminties, procesų teisių, failų <strong>sistemų</strong> <strong>sauga</strong><br />
Žurnalinės failų sistemos, failų <strong>sistemų</strong> kvotos<br />
■ Duomenų konfidencialumas „už OS ribų“<br />
■ Kerberos protokolas<br />
■ LDAP katalogo paslaugos<br />
T120B129 Informacinių technologijų <strong>sauga</strong><br />
2013 balandis