Î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.
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.
- 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
- 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`).
- 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.
chmod 700 /home/user/ # Restricționează accesul la director
sudo aa-enforce /etc/apparmor.d/usr.bin.firefox
sudo auditctl -a always,exit -F arch=b64 -S execve
sudo fail2ban-client status sshd