Curs 5 - Securitatea Sistemului de Operare și Mecanisme de Protecție

În acest curs vom explora mecanismele prin care sistemele de operare protejează resursele hardware și software, precum și metode moderne de securitate pentru prevenirea atacurilor.

1. Introducere în Securitatea Sistemului de Operare

Un sistem de operare modern implementează mecanisme de securitate pentru protecția resurselor și a utilizatorilor.

- Principalele amenințări asupra OS:

- Atacuri asupra kernelului (escaladarea privilegiilor, rootkits).

- Exploatarea vulnerabilităților aplicațiilor (buffer overflow, RCE - Remote Code Execution).

- Acces neautorizat și atacuri brute-force asupra utilizatorilor.

- Principiul cel mai mic privilegiu (Least Privilege Principle - LPP):

- Fiecare utilizator și proces trebuie să aibă doar accesul minim necesar pentru a funcționa corect.

2. Controlul Accesului și Autentificarea Utilizatorilor

- Moduri de autentificare:

- Parole și hashing securizat (bcrypt, SHA-512).

- Autentificare cu chei SSH (`ssh-keygen`).

- Autentificare multifactor (MFA) cu TOTP, hardware tokens.

- Listă de control al accesului (ACL) și capacități:

- `setfacl` și `getfacl` pentru configurarea permisiunilor avansate.

- Securitatea utilizatorilor și grupurilor:

usermod -aG sudo alex  # Adaugă utilizatorul alex în grupul sudo
passwd -l user1  # Dezactivează contul user1

3. Securitatea Proceselor și Izolarea Aplicațiilor

- Sandboxing și containerizare:

firejail --noprofile firefox  # Rulează Firefox într-un sandbox securizat

- Docker și Podman pentru izolarea aplicațiilor.

- Protecția kernelului:

- SELinux, AppArmor, Grsecurity protejează procesele critice ale sistemului.

getenforce  # Verifică statusul SELinux

- Restricționarea execuției codului nesemnat (`secure boot`).

4. Securitatea Memoriei și Protecția Împotriva Exploit-urilor

- ASLR (Address Space Layout Randomization):

cat /proc/sys/kernel/randomize_va_space

- Randomizarea adreselor de memorie previne exploit-urile de tip buffer overflow.

- DEP (Data Execution Prevention) și NX bit:

- Protecția împotriva executării codului în secțiuni non-executabile ale memoriei.

5. Exemplu Practic - Implementarea Măsurilor de Securitate

a) Configurarea permisiunilor pentru utilizatori și procese

chmod 700 /home/user/  # Restricționează accesul la director

b) Implementarea politicilor de securitate cu SELinux/AppArmor

sudo aa-enforce /etc/apparmor.d/usr.bin.firefox

c) Detectarea atacurilor cu `auditd` și `fail2ban`

sudo auditctl -a always,exit -F arch=b64 -S execve
sudo fail2ban-client status sshd

Resurse suplimentare: