05.06.2013 Views

Operacinių sistemų sauga. - Kauno technologijos universitetas

Operacinių sistemų sauga. - Kauno technologijos universitetas

Operacinių sistemų sauga. - Kauno technologijos universitetas

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!