Sunteți pe pagina 1din 43

Cursul 8

8
Principii de securitate
8 decembrie 2008

Motto

The only truly secure system is one that is powered off, cast in a block of concrete and sealed in a lead-lined room with armed guards - and even then I have my doubts." Eugene H. Spafford

08.12.2008

Problematica securitii
Protecia informaiilor preioase (companii, instituii) Ce este un sistem sigur?
resursele sale sunt utilizate i accesate n orice mprejurare aa cum se dorete

Se poate obine un sistem sigur?


Da. Complet izolat de lumea exterioar.

Are sens?
Nu. Nu este util i flexibil.

Ce nseamn securizarea unui sistem de calcul?


folosirea de metode de protecie _suficient_ de mare un potenial atacator va fi _descurajat_ compromiterea sistemului este _greu_ de realizat

Securitatea este un proces nu o finalitate Veriga cea mai slab indic securitatea sistemului
08.12.2008 3

Niveluri de securitate
La nivel de persoan
utilizatorii sunt alei cu grij reducerea probabilitii ca un utilizator s permit accesului unei persoane neautorizate

La nivel fizic
protecia ncperilor ce conin sistemele de calcul

La nivelul sistemului de operare


securizarea accesului (parole) protecia resursele SO (memorie, fiiere)

La nivelul reelei
securizarea accesul de la distan filtrarea pachetelor de compromitere a reelei
08.12.2008 4

Securitatea sistemului de operare


Sistem de operare sigur
resursele acestuia sunt accesate n mod valid
zone de memorie, dispozitive de I/E, fiiere, procesor

Cine asigur securitatea sistemului de operare?


nucleul SO
nivel intermediar ntre utilizator i hardware

Suport hardware
procesoarele ofer cel puin dou niveluri de privilegiu
unul pentru operaii obinuite (user mode) altul pentru acces la instruciuni privilegiate (supevisor mode) rings n x86

doar nucleul ruleaz n modul supervizor (kernel mode)


08.12.2008 5

Securitatea sistemului de fiiere


Aspecte importante
directorul HOME al fiecrui utilizator
drepturi depline utilizatorul poate sau nu permite accesul altor utilizatori

Doar utilizatorul privilegiat are acces la anumite intrri


fiiere de configurare, programe executabile

Cum se realizeaz securitatea fiierelor?


drepturi de acces (sau liste de acces) opiuni
pentru fiecare fiier se precizeaz drepturile pentru fiecare utilizator (liste de acces) utilizatorul deine privilegii pentru acces la anumite fiiere (capabiliti)

08.12.2008

Securitatea fiierelor n Unix


Directorul HOME (drepturi depline)
De obicei acesta este /home/username

Utilizatorii care acceseaz fiierul pot face parte din 3 entiti


User (utilizatorul care deine fiierul) Group (grupul care deine fiierul) Others (ceilali)

Fiecare dintre cele 3 entiti poate avea 3 drepturi


Citire (read - r) Scriere (write - w) Execuie (execute x)

Care este avantajul/dezavantajul acestei scheme?


puin spaiu ocupat (avantaj) flexibilitate limitat (dezavantaj)
08.12.2008 7

Drepturi pe fiiere n Unix

Drept de citire (read)


Fiiere
se poate citi coninutul fiierului fiierul poate fi copiat n alt parte

Directoare
se poate afia coninutul unui director DAR, fr drept de execuie, NU se poate ajunge n director

Exemplu:
razvan@anaconda:~/junkcode$ ls -ld sing/ drwxr-xr-x 5 razvan razvan 4096 Aug 23 17:57 sing/ razvan@anaconda:~/junkcode$ ls sing/ cvs-project.zip lza module papers.zip

08.12.2008

Drepturi pe fiiere n Unix (cont.)


Drept de scriere (write)
Fiiere
fiierul poate fi editat fiierul poate fi ters

Directoare
se poate crea un nou fiier se poate terge un fiier directorul poate fi ters

Observaie
n Linux, tergerea unui fiier este condiionat de prezena dreptului de write pe directorul printe Nu este nevoie de de drept de write pe fiier
Soluie: activarea sticky bit

Exemplu de eliminare a dreptului de write


razvan@anaconda:~/junk/uso7$ ls razvan@anaconda:~/junk/uso7$ touch uso7_test.txt razvan@anaconda:~/junk/uso7$ chmod 555 . razvan@anaconda:~/junk/uso7$ rm uso7_test.txt rm: cannot remove `uso7_test.txt': Permission denied razvan@anaconda:~/junk/uso7$ ls -l uso7_test.txt -rw-r--r-- 1 razvan razvan 0 Nov 10 17:16 uso7_test.txt razvan@anaconda:~/junk/uso7$ ls -ld . dr-xr-xr-x 2 razvan razvan 4096 Nov 10 17:16
08.12.2008 9

Drepturi pe fiiere n Unix (cont.)


Drept de execuie (execute) Fiiere
un fiier poate fi executat

Directoare
se poate descende ntr-un director fr drept de execuie, un director nu poate fi inclus n nici o cale

Exemplu:
razvan@anaconda:~/junk$ mkdir -p uso7_dir/uso7_subdir razvan@anaconda:~/junk$ touch uso7_dir/uso7_subdir/uso7_test.txt razvan@anaconda:~/junk$ ls uso7_dir/uso7_subdir/ uso7_test.txt razvan@anaconda:~/junk$ ls -ld uso7_dir/ drwxr-xr-x 3 razvan razvan 4096 Nov 10 17:17 uso7_dir/ razvan@anaconda:~/junk$ chmod 644 uso7_dir razvan@anaconda:~/junk$ ls -ld uso7_dir/ drw-r--r-- 3 razvan razvan 4096 Nov 10 17:17 uso7_dir/ razvan@anaconda:~/junk$ ls uso7_dir/uso7_subdir/ ls: uso7_dir/uso7_subdir/: Permission denied
08.12.2008 10

Schimbarea drepturilor
chmod Exemple
razvan@anaconda:~/junk$ ls -l hello.c -rw-r--r-- 1 razvan razvan 81 Oct 6 21:35 hello.c razvan@anaconda:~/junk$ chmod o+x hello.c razvan@anaconda:~/junk$ ls -l hello.c -rw-r--r-x 1 razvan razvan 81 Oct 6 21:35 hello.c razvan@anaconda:~/junk$ chmod u=rx hello.c razvan@anaconda:~/junk$ ls -l hello.c -r-xr--r-x 1 razvan razvan 81 Oct 6 21:35 hello.c

Forma n octal a drepturilor


se asociaz un bit fiecrui drept (r, w, x) al fiecrei entiti Exemplu:
rw- = 110 = 6 -w- = 010 = 4 r-x = 101 = 5

mai puin intutiv, mai rapid


08.12.2008 11

umask
Restricia drepturilor de creare a intrrilor n sistemul de fiiere Valori tipice pentru umask: 022, 027, 077 Drepturi de creare implicite
666 pentru fiier 777 pentru director I logic ntre permisiunile implicite i masca inversat

Drepturi de creare efective Exemplu


Director: implicit 777 umask: 022 755 (rwx r-x r-x)
razvan@anaconda:~/junk$ umask 0027 razvan@anaconda:~/junk$ mkdir uso7_dir1 razvan@anaconda:~/junk$ ls -ld uso7_dir1 drwxr-x--2 razvan razvan 4096 Nov 10 17:29 uso7_dir1 razvan@anaconda:~/junk$ umask 077 razvan@anaconda:~/junk$ mkdir uso7_dir2 razvan@anaconda:~/junk$ ls -ld uso7_dir2 drwx-----2 razvan razvan 4096 Nov 10 17:29 uso7_dir2 razvan@anaconda:~/junk$

08.12.2008

12

umask (cont.)

Fiier: implicit 666 Umask: 027 640 (rwx r-- ---)


razvan@anaconda:~/junk$ umask 0022 razvan@anaconda:~/junk$ touch razvan@anaconda:~/junk$ ls -l -rw-r--r-- 1 razvan razvan 0 razvan@anaconda:~/junk$ umask razvan@anaconda:~/junk$ touch razvan@anaconda:~/junk$ ls -l -rw-r----- 1 razvan razvan 0 uso7_test1 uso7_test1 Nov 10 17:28 uso7_test1 027 uso7_test2 uso7_test2 Nov 10 17:28 uso7_test2

08.12.2008

13

suid, sgid
Aplicaiile care necesit resurse speciale pot fi rulate doar de superuser
ping, traceroute, passwd orice utilizator trebuie s le poat rula utilizarea unui bit special denumit suid (switch user id) permite execuia unui program cu drepturile celui care l deine (de obicei root)

Soluie

razvan@anaconda:~/junk$ ls -l /bin/ping -rwsr-xr-x 1 root root 30764 Dec 23 2003 /bin/ping

Stabilirea bitului de suid/sgid: o valoare n octal suplimentar la chmod


razvan@anaconda:~/junk$ ls -l a.out -rwxr-xr-x 1 razvan razvan 13564 Jul 9 20:49 a.out razvan@anaconda:~/junk$ chmod 2755 a.out razvan@anaconda:~/junk$ ls -l a.out -rwxr-sr-x 1 razvan razvan 13564 Jul 9 20:49 a.out razvan@anaconda:~/junk$ chmod 4755 a.out razvan@anaconda:~/junk$ ls -l a.out -rwsr-xr-x 1 razvan razvan 13564 Jul 9 20:49 a.out

Potenial risc de securitate


un utilizator poate obine drepturi privilegiate
08.12.2008 14

Securitatea utilizatorilor

Se permite _numai_ accesul utilizatorilor autorizai Autentificare


permiterea accesului utilizatorilor privilegiai

Cnd este un utilizator autentic?


posed o unitate de identificare (cheie, card) posed un nume de utilizator i o parola posed un atribut de utilizator (amprent, retin, semntur)

08.12.2008

15

Parole
Form de autentificare (username/password)
se compar parola introdus cu cea stocat de sistem dac cele dou coincid se permite accesul

Modul echo off sau cu stelue


mpiedicarea shoulder surfing

Neajunsurile folosirii parolelor


pstrarea secret a parolei
sticky-note care este lipit pe monitor stocat n telefonul mobil

ghicirea parolei transferul parolei de la un utilizator autorizat la unul neautorizat


08.12.2008 16

Ghicirea unei parole


Metode
ncercri automatizate (brute force) se ncearc ghicirea parolei pe baza
numelui utilizatorului unor nume/cuvinte cu legtur
nume de animale preferate, numele copiilor, zile de natere

Ar trebui s m ngrijorez?
n 1997, n urma unui sondaj efectuat in Londra, 82% din parole puteau fi ghicite uor pe baza unei analize sumare a vieii subiectelor. utilizarea forei brute o parola cu 4 cifre are 10000 de posibiliti dac s-ar ncerca o parol la fiecare milisecund, n 10 secunde s-ar putea ghici parola

John the Ripper http://openwall.com/john/


08.12.2008 17

Protecie la ghicirea parolelor


Alegerea de parole bune
Minim 7 caractere, att lower case ct i upper case Cel puin un caracter special sau numeric Nu trebuie s fie nume de persoane sau cuvinte din dicionar Usor de reinut Exemple:
I check my e-mail every 3 hours Icme-me3h My rusty car is 7 years old Mrci7yo

Utilizarea parolelor generate aleator de sistem (pot fi greu de retinut)


Exemplu program generat parole bune (pwgen)
razvan@anaconda:~/junk$ pwgen -n -c 5 1 ohN0e

Verificarea periodic a parolelor utilizatorilor Password aging: forarea schimbrii parolei dup o anumit perioad Criptarea parolelor
08.12.2008 18

Parole n Unix

La nceput parolele se pstrau criptat n /etc/passwd Fisierul /etc/passwd conine i alte informaii
numele utilizatorilor directorul home shell-ul folosit

Multe programe au nevoie de informaiile de mai sus


fiierul /etc/passwd este citibil de toi utilizatorii
razvan@anaconda:~/junk$ ls -l /etc/passwd -rw-r--r-- 1 root root 2147 Nov 4 15:35 /etc/passwd

Parola criptat este vizibil


potenial risc de spargere prin ncercri

08.12.2008

19

Parole n Unix (cont.)


Fiierul /etc/shadow
accesibil numai de root intrare n /etc/passwd
razvan@anaconda:~/junk$ cat /etc/passwd | grep guest guest:x:1001:1001:Guest,EF 303,,,Test:/home/guest:/bin/bash

intrare n /etc/shadow
razvan@anaconda:~/junk$ cat /etc/shadow | grep guest cat: /etc/shadow: Permission denied anaconda:/home/razvan/junk# cat /etc/shadow | grep guest guest:$1$jv4hP2au$BSrUDS0J7LhJv8PrCFltU/:13124:0:99999:7:::

Parola ar putea fi spart prin ncercri de login repetate


timeout ntre ncercrile de autentificare
08.12.2008 20

Contul de root/Administrator
Controlul absolut al sistemului
obinerea contului de superuser nseamn spargerea sistemului

Trebuie folosit _numai_ atunci cnd este nevoie


pentru operaii obinuite, folosii contul _neprivilegiat_ o bun parte din atacurile pe Windows se bazeaz pe faptul c utilizatorii folosesc numai contul de Administrator

sudo
permite unui utilizator obinuit (dar de ncredere) rularea unui set restrns de comenzi cu privilegii de root NU trebuie folosit pentru a permite accesul la lucrul cu shell
obinerea unui shell de root nseamn accesul absolut la sistem
08.12.2008 21

Evitarea accesului la contul de root


Principiul least privilege
folosete numai att ct este nevoie (fr privilegii suplimentare)

Linux
folosirea sudo pentru rularea unui set restrns de comenzi
fiierul de configurare /etc/sudoers

folosirea de capabiliti
unele programe pot avea acces numai la o parte din privilegiile root

Windows
folosirea Power Users
utilizatori de sistem care au acces la cteva din privilegiile Administrator

08.12.2008

22

Securitatea reelelor Dou tipuri de ameninri ntr-o reea


vulnerabiliti
la nivelul aplicaiilor sistemului (exploit) la nivelul protocolului de comunicare folosit (SYN flood) la nivelul dispozitivelor de reea (ARP poisoning)

configurri necorespunztoare

n general exist 3 faze ale unui atac


recunoaterea obinerea accesului folosirea sistemului pentru generarea unui nou atac mpotriva unui alte reele
08.12.2008 23

Recunoaterea

Recunoaterea activ
host, whois ping sweep aplicaii de scanare a porturilor
Nmap

Recunoaterea pasiv
interceptarea traficului din reea
tcpdump Wireshark kismet
08.12.2008 24

inta atacurilor Pn n 2000 atacurile erau lansate pentru obinerea accesului pe o main int
se urmresc servicii incorect configurate sau vulnerabiliti ale sistemelor

Din 2000 au aprut atacurile DoS (Denial of Service)


atacul se bazeaz pe generarea unui numr foarte mare de cereri

Din 2003 virui de tip blaster


atac indirect, prin generarea unui trafic foarte mare n reeaua local
08.12.2008 25

Obinerea accesului
Prin analiza traficului
obinerea parolei alterarea traficului pentru schimbarea comportamentului unui serviciu

man-in-the-middle attack
un atacator este capabil s citeasc, insereze i modifice mesajele transmise ntre dou entiti fr ca aceste dou entiti s realizeze c legtura ntre ele a fost compromis

Social engineering Ascunderea identitii atacatorului spoofing


08.12.2008 26

Man in the Middle


Eavesdropping
interceptarea mesajului ntre dou entiti e-mail sau instant messaging: mesajele sunt transmise n clar (plain-text) criptarea traficului

Replay attack
transmisia de date ntre entiti este ntrziat sau repetat fraudulos dou staii A i B doresc s comunice
A dorete sa se autentifice A transmite (eventual criptat) o parol o staie C (MITM) captureaz parola C se va conecta la B folosind parola lui A Cva cpta acces la sistem

session-tokens
B transmite lui A un jeton (token) care e folosit de A pentru criptare B face acelai calcul la primirea parolei i verific dac valorile coincid

DoS (Denial of Service)


pot fi iniiate de un atacator ce ascult comunicaia i i poate ascunde identitatea (spoofing)
08.12.2008 27

Phishing
Form cunoscut de social engineering Folosit pentru a obine parole, detalii ale crii de credit, etc. Atacatorul invoc a fi o persoana de ncredere n comunicaia electronic De obicei se realizeaz prin e-mail, messaging sau telefonie Se poate pierde accesul la csua de e-mail sau la sume de bani importante n SUA, n 2004-2005 s-au nregistrat pierderi de 929 milioane $ din cauza phishing Anti-phishing
user training browser-ele actuale sunt capabile de a identifica forme de phishing de pe diverse site-uri spam-filters reduc mesajele spam care pot fi folosite pentru phishing
08.12.2008 28

DoS Attacks
Denial of Service mpiedicarea accesului utilizatorilor la o resurs Poate nsemna consumul resurselor unui sistem
exemplu: deschiderea unui numr mare de procese

Congestionarea traficului n reele


devine dificil comunicaia ntre staiile din reea

Exemple:

08.12.2008

SYN floods ICMP floods UDP floods Teardrop attack Application level floods Nukes DDoS
29

Spam
Unsolicited mail Open mail relay
server de e-mail ce permite retransmiterea (relaying) mesajelor de pot de electronic sosite din Internet

majoritatea ISP-urilor folosesc DNSBL (DNS based Blocking Lists))


http://www.cnn.com/2006/WORLD/europe/11/27/uk.spa m.reut/index.html -> 9 din 10 mesaje sunt spam
08.12.2008 30

Prevenirea atacurilor Stabilirea unor politici clare de securitate


separarea ariilor cu nivel de securitate diferit definirea clar a drepturilor ficrui utilizator definirea serviciilor ce trebuie oferite de fiecare component a reelei

Configurarea politicilor de filtrare a pachetelor Configurarea criptrii traficului important Configurarea programelor antivirus
08.12.2008 31

Detectarea atacurilor stabilirea unui nivel de referin pentru performaa reelei monitorizarea traficului din reea
automat
configurarea unui NIDS (Network Intrusion Detection System)

manual
prin stabilirea unor limite de ncrcare la nivelul dispozitivelor de reea

jurnalele
politic de colectare, pstrare i prelucrare a jurnalelor pentru serverele importante din reea
08.12.2008 32

Firewall Firewall software


aplicaie ce implementeaz o list de acces protecia reelelor locale cu cerine medii de securitate protecia sistemelor individuale

Firewall hardware sau dedicat


implementarea deliste de acces criptarea traficului cost ridicat reele cu cerine ridicate de securitate PIX, CheckPoint
08.12.2008 33

Firewall software
Firewall integrat pe ruter
numr mai redus de conexiuni fa de un firewall dedicat poate gestiona topologii mai complexe Cisco ACL

Firewall de server
pachet software peste un sistem de operare n general ruleaz n spaiul kernel iptables (netfilter), shorewall, Microsoft ISA Server, Novell Border Manager

Firewall personal
n general ruleaz n spaiul utilizator performane reduse pentru trafic ridicat Symantec, McAfee, ZoneAlarm
08.12.2008 34

Criptografia Studiul ascunderii mesajelor Criptarea este procesul de transformare a unui text clar ntr-un text cifrat Decriptarea este procesul invers Criptarea/decriptarea necesit
Un algoritm, o cheie i date

Dou tipuri
Cu cheie simetric i asimetric (public)
08.12.2008 35

Criptarea cu chei simetrice


O cheie secret partajat ntre dou entiti Rapid
Numita i criptografie de mas (bulk cryptography)

Exemple de algoritmi de criptare simetric


DES 3DES RC4 AES

Hi, Dan!
08.12.2008

*&^1 )-h@

Hi, Dan
36

Criptarea cu chei publice


O pereche de chei key pair
cheie public cheie privat n relaie matematic numere foarte, foarte, foarte mari nefezabil s se determine una din cealalt

Cheia public este ... public Mai lent


nepotrivit pentru criptarea de mas

Exemple de algoritmi:
RSA Diffie-Hellman curbe eliptice
08.12.2008 37

Criptarea cu chei publice (cont.)

Un mesaj autentificabil de la Ana

cheia privata a Anei

cheia
publica

a Anei

Hello, Mom!

c&16 (^%1

Hello, Mom!

08.12.2008

38

Certificate Asociere ntre o identitate (subiect) i o cheie public Certificatele conin


cheia public a subiectului detalii despre subiect detalii despre emitorul certificatului data de expirare o semnatur digital peste coninutului certificatului

Certificatul este semnat de o AC emitent Folosite pentru a certifica identitatea subiectului


08.12.2008 39

Virui, viermi, troieni


Un program, o secven de cod care se ataeaz altor fiiere executabile fr cunotina utilizatorului de sistem Un virus adevrat realizeaz cel puin dou lucruri
se execut se replic

Clasificare dup rezultate i modul de replicare



08.12.2008

boot sector virus e-mail virus logic bomb macro virus cross-site scripting virus sentinels trojan horse worm
40

Cuvinte cheie
problematica securitii drepturi de acces chmod umask suid, sgid parole John the Ripper /etc/passwd /etc/shadow pwgen sudo

Cuvinte cheie

man in the middle phishing DoS spam NIDS firewall criptare chei simetrice/asimetrice certificat virui, viermi, troieni

08.12.2008

41

41

Resurse utile

Link-uri utile

http://en.wikipedia.org/wiki/Computer_security http://www.unixtools.com/security.html http://en.wikipedia.org/wiki/Ring_(computer_security) http://en.wikipedia.org/wiki/Network_security http://insecure.org/ http://www.linuxsecurity.com/ http://www.openbsd.org/

08.12.2008

42

42

The End

08.12.2008

43