Linux Safe Partea

1. Introducere

La începutul securității tehnologiei de calculator, puțini oameni au crezut. Modul single-utilizator, și nu prea sofisticate de standardele moderne, sistemul de operare permite proprietarului calculatorului este foarte bună înțelegere a tuturor proceselor care au loc în sistem.

Apoi, calculatoarele au devenit mai frecvente, și au existat probleme legate de securitate. Apoi înlocuiți conceptul de „totul este permis“ este o nouă regulă: „tot ceea ce nu este interzis“ Care dintre cele două abordări este mai rău? Se lasă toate, sistemul de operare a fost vulnerabil la utilizator. Cu toate acestea, a doua abordare a condus la noi provocări și apariția unor zone de afaceri în creștere rapidă: creatorii de afaceri subterane de viruși și oficiale - dezvoltatorii antivirus, firewall-uri și alte programe de securitate. botnet moderne format din milioane de calculatoare „zombie“, care sunt acoperite de iluzia de securitate „tot ceea ce nu este interzis!“

Într-o serie de articole ne vom uita la sistemul de punere în aplicare AppArmor alte - mai puțin populare, dar mai puternic - „nimic interzis, care nu este permisă explicit“ principiul Poate că punerea sa în aplicare pe scară largă va reduce intensitatea cursei „exploateaza“ și actualizări de securitate? In prima serie de articol, vom da doar informații de bază despre această evoluție minunată. În cele ce urmează - se va concentra pe lucrul cu AppArmor mai mult, precum și ia în considerare alte caracteristici de securitate, cum ar fi SELinux.

2. vulnerabilități de aplicare - un sistem vulnerabil?

Ce permisiuni funcționează programe care se execută pe computer? mail client și accesul la browser-ul corespondența în Jabber-client, Jabber-client nu este interzis să acceseze e-mail și fișierul profilul browser-ului. Și, dacă este necesar, programul ca o mare oportunitate? Pentru lucru confortabil suficient pentru Jabber-client are acces numai la directorul cu istoricul de mesaje și setările acestuia. client de e-mail pentru suficient de propriul său director cu setările, mesajele, plus un director suplimentar, de la care va lua și cine va păstra fișierele atașate la e-mailuri. browser-ul de internet este suficient propriul profil și partajarea de fișiere director.

3. aplicații de rezervare sau securizat „Sandbox“

Una dintre cele mai populare aplicații de nivel scăzut care implementează sistemul de protecție bazat pe principiul „interzise tot ceea ce nu este permis în mod expres,“ este dezvoltarea de Novell - sistem AppArmor. Scopul său principal - protecția sistemelor compromise de programe (de exemplu, hacked). O astfel de protecție se bazează pe furnizarea programului minim necesar pentru oportunități de muncă și privilegii. Acest lucru înseamnă că clientul torrent nu va avea dreptul de a rula programul de e-mail. și Jabber-client - acces la directorul de e-mail. Cu alte cuvinte, aplicarea AppArmor pune un fel de „Sandbox“ este definit, oportunități limitate, iar în cazul sparge toate daunele cauzate de un hacker compromis un program să se limiteze la conținutul acestei „Sandbox“.

Pentru a proteja administratorul de sistem trebuie să identifice numai fiecare program un profil de securitate pentru a restricționa accesul la foldere, programe și alte POSIX-oportunități. La rândul său, AppArmor preia sarcina de a monitoriza aplicarea și notificări atunci când un program încearcă să utilizeze resurse nerezolvate. Deci, simplu mod de AppArmor pe baza tradiționale de control al accesului discreționar Unix oferă un nou model - controlul accesului obligatoriu.

3.1. Verificați starea AppArmor

de control al accesului discreționar și obligatoriu

DDC este implementat în majoritatea sistemelor de operare. Acesta constă în următoarele: fiecare obiect (fișier, director, etc.) este atribuită proprietarului, care poate schimba în mod arbitrar permisiunile pe un obiect care îi aparțin.

Puterea DDC în simplitate - un motiv cheie pentru care este foarte cunoscut și pus în aplicare în sistemele de operare cele mai comune.

Principalele dezavantaje ale DDC următoare:

  1. limitarea politică la nivel mondial: DDC permite utilizatorului să determine accesul la datele lor, indiferent de politicile globale. Dacă DDC este o politică globală, că există dificultăți în garantarea coerenței normelor.
  2. lipsa controlului fluxului de informații: informații pot fi copiate de la un obiect la altul, apoi pentru a copia modul de control al accesului nu depinde de modul de a controla accesul la obiectul original.
  3. vulnerabilitate software-ul compromis: politicile DCD pot fi ușor modificate de către proprietar, astfel încât un hacker care a obținut controlul asupra programului, care rulează proprietarul obiect poate schimba politicile DCD fără știrea proprietarului.

AppArmor se bazează pe profile - fiecare aplicație care rulează sub controlul AppArmor, i se atribuie un profil care specifică drepturile și oportunitățile disponibile la cerere. Pentru simplificare, implementarea pachetului și configurația include un set de profile standard pentru cele mai populare aplicații (și care necesită protecție). De asemenea, profilurile gata făcute pot fi găsite mai multe comune (cea mai mare parte de server) programe - căutați un link către site-ul în secțiunea „Referințe“. Astfel, tot ceea ce este necesar pentru administratorul de sistem, care alege să utilizeze AppArmor, - este alegerea dreptul de aplicații care au nevoie pentru a limita privilegiile, și de a crea profiluri de securitate / editare.

În continuare, vom discuta lucrul cu AppArmor sistem, configurarea și instalarea de profile standard și testa funcționalitatea.

Notă: 1. Pentru utilizatorii din YaST2 OpenSUSE are o interfață grafică pentru a AppArmor, dar nu este foarte convenabil. În plus, alte distribuții o astfel de interfață nu este. Prin urmare, ne vom concentra pe activitatea de la linia de comandă.

Nota 2. Toate următoarele comenzi sunt testate în openSUSE 11.1 și Kubuntu 8.04. Utilizatorii altor distribuții ar trebui să verificați pentru versiunea portat a AppArmor și, dacă este necesar, utilizați instrucțiunile de instalare corespunzătoare.

Pentru a reduce diferențele distributive în Kubuntu efectua o simplă comandă:

După cum probabil ați ghicit, această echipă gestionează AppArmor demon.

În primul rând, vom verifica pentru a vedea dacă AppArmor se execută pe computer.

Kubuntu ne-a dat următorul rezultat:

Concluzia aceeași echipă în openSUSE:

Controale de acces obligatorii

ICM definește o politică de securitate globală, care sunt subiectele, inclusiv utilizatorilor. Proprietarul nu poate seta drepturile de acces la obiectul mai slab decât politica de sistem definit. Politicile de sistem indică care este permis accesul. Utilizatorii obișnuiți nu pot schimba politica.

Principalul dezavantaj al ICM - complexitatea creării și menținerii unei politici de sistem.

După cum puteți vedea, implicit OpenSUSE controlează mai multe programe decât Kubuntu. Să examinăm mai în detaliu ceea ce ne raportăm la rcapparmor comanda de stare din OpenSUSE (Cum să prezinte mai multe informații). Deci, modulul AppArmor este încărcat și gata de utilizare, trebuie doar să setați 11 profile. Există două posibile regim de control al AppArmor aplicat fiecărei cereri: pune în aplicare și se plâng. În modul de aplicare, sistemul va limita activitatea de aplicare AppArmor în funcție de profilul și să raporteze orice tentativă de încălcare a regulilor, iar modul se plâng - doar pentru a raporta încălcări ale normelor, care permite aplicarea de a efectua orice acțiune solicitată. Nu este greu de ghicit că al doilea modul este de obicei folosit pentru profilele de depanare (în absența unei autorizații specifice nu a încălcat funcționarea normală a programului), iar primul mod este, de fapt protejează sistemul de aplicare anormală. În exemplul nostru, în OpenSUSE la modul de aplicare sunt 10 de aplicații, iar în modul se plâng - doar unul. Despre comutarea între aceste moduri vor fi descrise mai jos.

AppArmor caracteristică importantă este faptul că compararea profilului de aplicare se efectuează în conformitate cu calea absolută către fișierul executabil. Dacă copiați, de exemplu, ping utilitate din directorul / bin / directorul în / usr / bin și redenumiți-l la my_ping, AppArmor este nici o restricție pe ea nu va mai acționa - nu profilul pentru „noul“ program. În anumite condiții (foarte rare!), Această caracteristică poate fi folosit de un hacker, dar oferă, de asemenea, oportunități ample (care vor fi discutate în articolul următor).

procesele marcate ca fiind pentru care există fără bariere profile, dar restricțiile AppArmor nu se aplică (în acest caz, cinci astfel de programe). Acest lucru se întâmplă atunci când procesele corespunzătoare au fost lansate pentru a AppArmor descărcare. Pentru a face cu acest lucru este simplu: reporniți aplicația pe care doriți și se va schimba pentru a pune în aplicare lista (sau se plâng):

Numărul de profile încărcate poate fi crescută - este responsabil pentru acest pachet AppArmor-profile. OpenSUSE au deja instalat, și Kubuntu trebuie să o facă manual:

Acum vom verifica ceea ce sa schimbat:

3.2. Adăugarea de profiluri

documentație

Uită-te în directorul / usr / share / doc / AppArmor-profile / Extrase din Kubuntu sau / etc / AppArmor / profile / extra-uri din OpenSUSE. Aici veți găsi un număr mare de profiluri suplimentare ca un proces de server, și „desktop“ (inclusiv tot omul echipa ta favorita). Acest director poate fi găsit, inclusiv, și profilul pentru Firefox și Opera - AppArmor sub controlul browser-ul dvs. va fi chiar mai sigur! Numele fiecărui profil este codificat controlat cerere: fișier usr.bin.skype pentru programul de Skype, care se află în directorul / usr / bin / skype (primul backslash este eliminat, restul sunt înlocuite cu un punct).

Adăugați acest la programul deja lansat sub controlul AppArmor. Pentru a face acest lucru, copiați fișierul profil în directorul corect și reporniți AppArmor daemon:

rădăcină: cp /usr/share/doc/apparmor-profiles/extras/usr.bin.skype /etc/apparmor.d

rădăcină: cp /etc/apparmor/profiles/extras/usr.bin.skype /etc/apparmor.d/

Acum, reporniți daemon și verificați dacă aplicația a intrat sub controlul AppArmor:

3.3. Schimbarea modului de control

Starea AppArmor OpenSUSE Kubuntu și a arătat o atitudine diferită față de modurile de control în aceste distribuții: în OpenSUSE pentru a pune în aplicare aplicații mod este de 10, în timp ce în Kubuntu (după instalarea de profiluri suplimentare) - total de 3, iar partea principală - în modul se plâng.

Pentru a comuta modurile de control ale AppArmor include utilitare speciale - pune în aplicare și se plâng doar să specificați comanda și introduceți numele aplicației. Aici, de exemplu, trecerea de moduri de control pentru utilitarul ping:

rădăcină: pune în aplicare ping

Instalarea regimului forțat pentru /etc/apparmor.d/bin.ping.

rădăcină: se plâng de ping

Instalarea de tratament blând pentru /etc/apparmor.d/bin.ping.

3.4. Cum funcționează

Desenați un mic experiment pentru a afla cum funcționează. De exemplu, să ia toate același ping utilitate - în stare, vom vedea că acest instrument are un profil:

Chiar și fără să se uite la profilul, este ușor de ghicit că privilegiile minime necesare ping nu include accesul la directorul home al utilizatorului. Deci, a verifica comportamentul AppArmor în cazul comportamentului non-standard de utilitate.

În primul rând, un pic de pregătire:

Acum vom înlocui ping utilitate la altceva, de exemplu, cp (denumit în continuare va acționa ca utilizator root):

Anterior, ea a menționat că AppArmor atribuie fiecărui program profilul său în conformitate cu calea absolută a cererii, ceea ce înseamnă că noua echipă, în ciuda faptului că este complet identic cu utilitatea cp, profilul comparativ proiectat pentru a ping.

Notă 1. Am văzut că în Ubuntu utilitate ping controlat de AppArmor la modul se plâng, și OpenSUSE - în modul de aplicare. Pentru a continua să nu fie distras de această diferență mică, rotiți comanda la modul de aplicare:

Instalarea regimului forțat pentru /etc/apparmor.d/bin.ping.

Acum, încercați să un comportament „neconvențional“ (nu uitați să înlocuiți „utilizator“ al comenzii la numele corect de utilizator):

Da, deci, AppArmor interzis utilitatea noastră pentru a copia fișierul. Aceasta a fost înregistrată în jurnalele?

Nota 2. OpenSUSE AppArmor rapoarte scrise în fișierul /var/log/audit/audit.log. și mesaje Kubuntu merge direct la / var / log / mesaje. Deasupra arată mesajul OpenSUSE, formatul de ieșire Kubuntu diferă ușor.

Nu mesaj foarte clar, dar se poate vedea că

tip = APPARMOR_DENIED. Mesaj din AppArmor, a cărui ceva interzis pe cineva;

requested_mask = "r ::", denied_mask = "r ::". tipul de acțiune pe care programul a încercat să efectueze, și care a fost interzis;

fsuid = 0. ID-ul de utilizator, ID-ul aparține unei rădăcină zero;

pid = 5911. proces id, în cadrul unui astfel rula noastre „corectat de utilitate» ping;

Profilul = "/ bin / ping". profilul real al programului.

Acum ne-am traduce nostru de utilitate ping pentru a se plânge modul de control:

Instalarea de tratament blând pentru /etc/apparmor.d/bin.ping.

Totul a fost minunat! Fișierul a fost copiat cu succes. Și ce este nou în jurnalele?

Principala diferență față de înregistrările de audit anterioare - acest tip = APPARMOR_ALLOWED. AppArmor autorizează acțiunea, deși, și a lăsat un mesaj în jurnal.

Nu uitați să eliminați rezultatele experimentelor:

rădăcină: test1 testare rm

și înlocuiți ping de utilitate:

rădăcină: mv / bin / my_ping / bin / ping

Acum, că am văzut în funcționalitatea AppArmor și a învățat în cazul în care să caute rapoarte privind comportamentul non-standard, este posibil să se pună în practică principiul „nimic interzise care nu este permisă explicit.“

4. Ce este protejat?

5. Concluzie

Pentru a rezuma. Acest articol a dat o scurtă introducere în sistemul AppArmor permite fără efort crește securitatea Linux-PC. Noi am considerat doar utilizarea profilurilor standard, care, cu toate acestea, există în număr mare pentru o varietate de programe. În următorul articol ne vom concentra mai mult pe crearea de noi profiluri, uita-te la regulile de sintaxă și instrumente de sprijin.