Cursul #10
Securitatea Sistemului
1
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
2
Suport de curs
3
Hit List
4
systems.cs.pub.ro/bachelor/uso_hitlist
Materiale curs open source
5
https://github.com/systems-cs-pub-ro/carte-uso
https://github.com/systems-cs-pub-ro/uso-lab-book
Atacuri din 2020
6
Problematica securității
7
Ce urmărește un atacator?
8
Fundamentele securității
9
Obiectivele securității
10
Definiții
11
Principii de securitate
• principiul separării privilegiilor (privilege
separation)
• security through obscurity vs. security by design
• cea mai slabă verigă
• simplitate (feature creep)
• Bruce Schneier: Complexity is the worst enemy of security.
• defense in depth
• securitate vs. utilizabilitate
12
Modelul subiect-obiect
• subiect sau agent efectuează acțiunea
• obiect sau resursă este ținta acțiunii
• permisiuni specifice dictează accesul
subiectului la obiect
• o entitate specializată (reference monitor)
verifică permisiunile
13
Autentificare
• acesta poate crea procese
• pe baza unui identificator și token de
autentificare (de exemplu parolă)
14
Autorizare
• adăugarea unei noi permisiuni înseamnă
autorizarea unui subiect la un obiect
• chmod, chown
15
Controlul accesului
• verificarea permisiunilor în baza de date de
autorizare
• făcut de reference monitor la accesul unui
obiect de un subiect
• la comenzi precum ls, cat, vim
16
Securitatea datelor
17
Atacuri pe date
• furtul datelor
• modificarea datelor pentru a le face
neutilizabile
• criptarea datelor pentru a fi răscumpărate
(ransomware)
18
Protejarea datelor
• autentificare (pentru a limita accesul)
• criptare (pentru confidențialitate)
• algoritmi de message digest / message
authentication (pentru integritate)
19
Permisiuni pe date
• asociate cu autorizare
• în general read și write
• întâlnite în sistemul de fișiere
20
Criptarea datelor
• confidențialitate
• mesaj de intrare (MI)
• cheie de criptare (K)
• algoritm de criptare (A)
• mesaj de ieșire (MO)
• MO = A(K, MI)
21
Chei simetrice și asimetrice
• chei simetrice
• chei asimetrice
22
Integritatea datelor
• modificarea datelor este detectată
• algoritmi de hashing / message digest
23
Securitatea accesului
24
Forme de autentificare
• parole (cea mai răspândită)
• biometric: retină, amprentă
• token hardware (one type password)
• cheie publică
• alt canal (SMS)
25
Multi-factor authentication
• mai multe forme de autentificare
• uzual altă formă este un dispozitiv pe care îl
are utilizatorul în posesie
• 2FA, 3FA
26
Recomandări de gestiune a parolelor
• cel puțin 10-12 caractere
• să nu fie parole comune
• passphrase: parolă din cuvinte
• caractere speciale
• folosirea unui password manager
• schimbarea periodică a parolelor
• https://howsecureismypassword.net
27
Gestiunea parolelor în Linux
SHA)
28
Securitatea transferului
29
Securitatea transferului
30
Man in the Middle
• un atacator poate investiga și modifica
pachetele de rețea
• un atacator poate impersona celălalt capăt
al conversației
31
Firewall
• protejarea sistemului local de anumite
pachete din rețea
• pot fi selectate pe bază de adresă IP, port,
conținut, proces
• util pentru protejarea la atacuri de tip DoS
(denial of service)
32
SSH pentru autentificare
• traficul este criptat
• se deschide la distanță uzual un shell
autentificat
• SSH este un protocol
altor tipuri de trafic
33
Autentificare cu chei publice
• se generează pe client o pereche cheie
privată - cheie publică
• cheia publică este adăugată pe server
• cheia privată semnează un mesaj
• mesajul poate fi verificat cu cheia publică
• dacă este prezentă cheia publică, atunci
clientul este autentificat: are acces în sistem
• recomandat pentru SSH, simultan cu
dezactivarea autentificării pe bază de parole
34
Securitatea protocoalelor
• conexiunile HTTP, IMAP, POP3, FTP, LDAP
sunt implicit nesigure
• există variante sigure HTTPS, IMAPS, POP3S,
FTPS, LDAPS
• se folosesc de TLS (Transport Layer
Security)
35
Certificate digitale
• folosite de TLS
• un certificat este:
• semnătura este realizată de cheia privată a unei
autorități recunoscute (CA: Certification
Authority)
• clientul are cheia publică a CA-ului
• poate verifica semnătura din certificatul
serverului și valida, astfel, identitatea
36
Concluzie
37
Obiective atacator
• steal
• cripple
• control
38
Principii de securitate
• principiul celui mai mic privilegiu (leastprivilege)
• principiul separării privilegiilor (privilege
separation)
• security through obscurity vs. security by design
• cea mai slabă verigă
• simplitate (feature creep)
security.
• defense in depth
• securitate vs. utilizabilitate
39
Componente în securitatea sistemului
• securitatea datelor
• securitatea accesului
• securitatea transferului
40
RSA
41
AES
42
Security Engineering
43
Bruce Schneier
44
BitDefender
45
Resurse pentru securitate aplicată
46
Resurse utile
47
Cuvinte cheie
• vulnerabilitate
• exploatare
• vector de atac
• suprafață de atac
• confidențialitate
• integritate
• disponibilitate
• privacy
• subiect-obiect
• autentificare
• autorizare
• controlul accesului
• criptare
• chei simetrice
48
• funcții hash
• AES
• RSA
• multi-factor
• parole
• password manager
• /etc/shadow
• SSH
• man in the middle
• firewall
• SSH
• TLS/SSL
• certificat digital