Skip to main content

Cyber AI România

Marți, 29 septembrie 2026

Cum folosești AppArmor pentru protecție suplimentară pe Ubuntu

Permisiunile Linux stabilesc ce poate face un utilizator asupra fișierelor. AppArmor adaugă încă un nivel: controlează ce poate face o anumită aplicație, chiar dacă procesul rulează cu un utilizator care are acces mai larg.

De exemplu, un serviciu web poate avea dreptul să citească fișierele site-ului, dar să fie blocat când încearcă să acceseze directoare sensibile, să execute programe nepermise sau să folosească anumite capabilități. AppArmor este mecanismul Mandatory Access Control activ implicit în Ubuntu și aplică reguli definite în profiluri asociate programelor.

Verifică dacă AppArmor funcționează

Pe Ubuntu, AppArmor este instalat și încărcat implicit. Verifică starea:

sudo aa-status

Ar trebui să vezi:

apparmor module is loaded

Urmat de numărul profilurilor încărcate, profilurile aflate în enforce, cele aflate în complain și procesele izolate.

Verifică și serviciul:

systemctl status apparmor

Profilurile sunt păstrate în:

/etc/apparmor.d/

Listează-le:

sudo find /etc/apparmor.d \
  -maxdepth 1 -type f -printf '%f\n' | sort

Numele profilului folosește de obicei calea executabilului cu / înlocuit prin ., de exemplu un profil pentru /usr/sbin/aplicatie poate apărea ca usr.sbin.aplicatie.

Instalează instrumentele de administrare

Pentru comenzile aa-complain, aa-enforce și aa-logprof, instalează:

sudo apt update
sudo apt install apparmor-utils

Poți instala și profilurile suplimentare:

sudo apt install apparmor-profiles

Unele profiluri suplimentare sunt experimentale și pot fi livrate în modul complain. Nu le trece direct în enforce pe un server de producție înainte să testezi toate funcțiile aplicației.

Înțelege diferența dintre complain și enforce

AppArmor folosește două moduri importante:

  • complain: permite acțiunea, dar înregistrează încălcarea în loguri;
  • enforce: blochează acțiunea nepermisă și o înregistrează.

Pentru a vedea profilurile din fiecare mod:

sudo aa-status

Înainte să modifici un profil, află calea reală a executabilului:

command -v nume-aplicatie
readlink -f "$(command -v nume-aplicatie)"

Dacă există deja un profil pentru acel executabil, îl poți trece temporar în modul de observare:

sudo aa-complain /cale/catre/executabil

Pornește aplicația și testează funcțiile reale: autentificare, încărcarea fișierelor, scrierea logurilor, conexiunea la baza de date și sarcinile programate.

După ce profilul este verificat:

sudo aa-enforce /cale/catre/executabil

Nu folosi modul complain permanent pentru o aplicație pe care crezi că ai securizat-o. În acest mod, regulile sunt observate, nu aplicate.

Găsește blocările produse de AppArmor

Dacă o aplicație nu mai poate citi un fișier sau porni după activarea profilului, caută evenimentele AppArmor:

sudo journalctl -k --since today |
grep 'apparmor="DENIED"'

Pentru ultimele evenimente:

sudo journalctl -k -n 300 |
grep -i apparmor

Un eveniment poate indica:

profile=
name=
operation=
requested_mask=
denied_mask=

profile identifică regula activă, name arată resursa accesată, iar operation explică acțiunea încercată.

Nu rezolva automat orice blocare oferind acces larg. Verifică mai întâi dacă aplicația chiar trebuie să acceseze acea cale. Un acces neobișnuit poate indica o configurare greșită sau un comportament care merită investigat.

Ajustează profilurile fără să modifici fișierul principal

Pentru profilurile care acceptă configurări locale, folosește fișierele din:

/etc/apparmor.d/local/

De exemplu, dacă profilul principal se numește:

/etc/apparmor.d/usr.sbin.aplicatie

ajustările locale pot fi păstrate în:

/etc/apparmor.d/local/usr.sbin.aplicatie

Această separare reduce riscul ca modificările tale să fie suprascrise la actualizarea pachetului.

Poți analiza evenimentele și primi propuneri interactive:

sudo aa-logprof

Nu accepta mecanic toate regulile sugerate. aa-logprof îți arată accesul observat, dar tu trebuie să decizi dacă este legitim.

După modificarea profilului, verifică și reîncarcă:

sudo apparmor_parser -r \
/etc/apparmor.d/numele.profilului

Pentru reîncărcarea tuturor profilurilor:

sudo systemctl reload apparmor

Testează înainte de producție

Fluxul sigur este:

backup profil
→ mod complain
→ teste funcționale
→ analiză loguri
→ reguli strict necesare
→ reload
→ mod enforce
→ testare din nou

Creează backup înainte de editare:

sudo cp -a \
/etc/apparmor.d/numele.profilului \
/etc/apparmor.d/numele.profilului.bak

Nu dezactiva AppArmor la nivelul întregului sistem doar pentru că o aplicație este blocată. Ubuntu avertizează că dezactivarea sa reduce securitatea, iar în versiunile moderne oprirea completă presupune schimbarea parametrilor kernelului și repornirea sistemului.

AppArmor este util când îl tratezi ca pe un control precis: observi comportamentul aplicației, permiți numai resursele necesare și verifici logurile după fiecare schimbare.

Surse folosite

Ubuntu Security Documentation — AppArmor, arhitectură, profiluri și moduri de funcționare.
Ubuntu Server Documentation — administrarea AppArmor, aa-status, aa-logprof și reîncărcarea profilurilor.
Ubuntu Security Documentation — restricționarea privilegiilor și rolul AppArmor în Ubuntu.

Facebook
X
WhatsApp

Te-ar putea interesa si: