Pachetul AppArmor pentru a determina politicile de securitate privind, linuxoid

Sistemul de operare Linux moștenit sistem de securitate Unix dezvoltat în anii '70, la momentul cel mai bun, dar, evident, nu este suficient pentru astăzi. Fiecare utilizator are libertate deplină de acțiune în cadrul competențelor sale, principiul „totul sau nimic“. Aceasta conduce la faptul că anumite sarcini sunt adesea furnizate utilizatorului mult mai multe drepturi decât de fapt necesare pentru soluționarea ei. Prin urmare, accesul utilizatorilor câștigurile la drepturile de cont de sistem devine uneori un control aproape complet asupra calculatorului.

Ce avem?

proiectul AppArmor

Instalarea AppArmor în Ubuntu

Începând cu versiunea 7.04 AppArmor inclusă oficial în Ubuntu repertoarele astfel încât nici o problema cu instalarea acolo:

$ Sudo apt-get install AppArmor AppArmor-docs AppArmor-module-source AppArmor-profile AppArmor-utils

Apoi, script-ul se va plânge că nu poate termina SETUP din cauza lipsei modulelor de kernel necesare. Deci, pasul următor colecta modulul de kernel.

În primul rând, echipa se pregătească pentru asamblarea cu sarcina de a verifica dacă toate pachetele necesare și descărcarea lipsă:

$ Sudo m-un -v -t pregăti

În general, aproape toate munca lui se reduce la standardul «sudo apt-get install build-essential». Acum asambla modulul:

$ Sudo m-un -V -t -f construi AppArmor-module
$ Sudo m-un -V -t -f install AppArmor-module

După asamblare recomanda pentru a încărca un nucleu monitoare de module setați manual politici pentru a verifica activitatea sa:

$ Sudo modprobe AppArmor
FATAL: Eroare AppArmor inserarea (/lib/modules/2.6.20-15-generic/apparmor/apparmor.ko): Resource temporar indisponibil

$ Sudo mcedit /usr/src/linux/.config

CONFIG_SECURITY_SELINUX = n
CONFIG_SECURITY_CAPABILITIES = m
În caz contrar, vom adăuga doi parametri „capability.disable = 1“ și „SELinux = 0“ este transmis la kernel la boot. Cu toate acestea, în cazul meu, primul parametru care într-un fel a fost ignorată:

$ Dmesg | capacitatea grep
[19.543828] opțiune de boot Necunoscut `capability.disable = 1„: ignorarea

Prin urmare, pur și simplu descărcați modulul de kernel:

capacitatea de $ Sudo rmmod

Încercați din nou:

$ Sudo modprobe AppArmor
$ Lsmod | grep AppArmor
AppArmor 55836 0
aamatch_pcre 16896 1 AppArmor
commoncap 8192 1 AppArmor

În afară de modul AppArmor nu pot fi prieteni cu Dazuko, care este frecvent utilizat pentru scanarea la accesare a fișierelor Antivirus ClamAV. Acum, rulați întregul sistem:

Start $ Sudo /etc/init.d/apparmor
securityfs pe / sys / kernel / securitate montare: făcut.
Se încarcă profile AppArmor. făcut.

Dacă totul merge bine în această setare poate fi considerată zakochennoy AppArmor. Următorul pas este setarea profilurilor.

După ce a început sarcinile Daemon toate profilurile de bază directorul /etc/apparmor.d.

Sistemul de fișiere Pentru modurile de control pot fi utilizate securityfs, care pot fi utilizate pentru a obține informații despre profilurile încărcate:

$ Sudo mount -tsecurityfs securityfs / sys / kernel / securitate
$ Sudo pisica / sys / kernel / securitate / AppArmor / profile
/ Usr / sbin / traceroute (executa)
/ Usr / sbin / ntpd (executa)
/ Usr / sbin / nscd (executa)
/ Usr / sbin / numit (executa)
/ Usr / sbin / mdnsd (executa)
/ Usr / sbin / identd (executa)
/ Usr / sbin / porumbar (plâng)
/ Sbin / syslogd (executa)
/ Sbin / syslog-ng (executa)
/ Sbin / klogd (executa)
/ Bin / ping (executa)

AppArmor se pot ocupa de profiluri în două moduri:

1. pune în aplicare - modul de executare, serviciul funcționează exclusiv în cadrul profilului, toate încercările de a încălca regulile sunt înregistrate în syslog;
2. se plâng - care economisesc regim (studiu), în acest caz, intrarea de lucru de serviciu numai controlat este creat cu încălcarea profilului. Acest mod este util atunci când crearea de noi profiluri și setările de profil pe un anumit sistem.

Pentru a schimba modul pur și simplu deschide fișierul profil și adăugați o linie în fața fișierul executabil „steaguri = (se plâng)“:

La nivel global toate profilurile traduce în modul se plâng, folosiți comanda:

$ Sudo echo 1> / sys / kernel / securitate / AppArmor / de control / plâng

După formare, o aplicație separată fără a reporni toate profilurile, pot fi convertite în modul de greu cu o utilitate specială pune în aplicare:

Impunere $ Dovecot
Setarea / usr / sbin / porumbar în modul de aplicare.

Alte profiluri sunt în directorul / usr / share / doc / AppArmor profilurile / extra-uri. Fiecare profil are un nume care include calea completă a fișierului executabil, dar punctul de slash folosit în loc. De exemplu usr.lib.firefox.firefox.sh. O descriere tipica a profilului este după cum urmează:

$ Cat /usr/share/doc/apparmor-profiles/extras/usr.lib.firefox.firefox.sh
#include

/usr/lib/firefox/firefox.sh ...
/ Bin / basename mixr,
/ Usr / bin / AOSS Ux,
/ Usr / lib / firefox / * r,
/ Usr / lib / px firefox / firefox-bin,
...
>

$ Cd / etc / AppArmor / profile / extra-uri
$ Sudo mv * postfixat * usr.sbin.post * /etc/apparmor.d/
$ Mv usr.bin.procmail usr.sbin.sendmail /etc/apparmor.d/

Și începe prima dată în modul de formare:

Plânge $ /etc/apparmor.d/*postfix*
Plânge $ /etc/apparmor.d/usr.sbin.post*
Plânge $ /etc/apparmor.d/usr.bin.procmail
Plânge $ /etc/apparmor.d/usr.sbin.sendmail

În continuare, vom folosi Postfix ca de obicei, rafina politicile cu utilitate „logprof“ și tradus în modul de executare. De ce în exemplul anterior, înlocuiți toți se plâng de a pune în aplicare. Alternativ, puteți specifica direct profilul în loc de un fișier executabil în sine, atunci politica corespunzătoare va fi preluat automat.

Crearea unui profil

Acum vom încerca să creați un profil nou și verificați activitatea AppArmor. Pentru a testa toate alege programul preferat pentru a crea parole / usr / bin / passwd. Pentru a crea un nou profil folosind utilitarul genprof (de altfel, toate utilitatile sunt porecle AppArmor incepand cu AA-):

$ Sudo genprof / usr / bin / passwd
Acesta scrie profilul / usr / bin / passwd actualizat.
Setarea / usr / bin / passwd în modul de economisire a energiei.

Acum, rulați aplicația pentru care creați profilul. În acest caz, puteți schimba parola pentru utilizator, șterge și de a crea un utilizator:

$ Sudo adduser Sergej
Adăugarea utilizatorului `Sergej“ ...
Adăugarea de grup nou `Sergej„(1001) ...
Adăugarea de utilizator nou `Sergej '(1001), cu Sergej group`' ...
Introduceți noua parolă UNIX:
Rescrieți parola nouă UNIX:
passwd: parola actualizate cu succes
Modificarea informațiilor de utilizator pentru Sergej

Pachetul AppArmor pentru a determina politicile de securitate privind, linuxoid

După un timp, apăsați tasta tastatură S. Aceasta va citi toate mesajele de fișier de audit / var / log / mesaje și actualizate în secțiunile respective din /etc/apparmor.d. Iată câteva dintre evenimentele se încadrează în revista:

Cheerez în timp ce apăsați tasta F. Vezi profilul nou:

/ Usr / bin / #include passwd

mr /lib/tls/i686/cmov/libc-*.so,
mr /lib/tls/i686/cmov/libcrypt-*.so,
mr /lib/tls/i686/cmov/libdl-*.so,
/ Usr / bin / mr passwd,
>

Acum vom încerca să elimine steagul „m“ în passwd de utilitate. Pe zbor puteți face acest lucru folosind utilitarul apparmor_parser:

$ Sudo echo «/ usr / bin / passwd »| apparmor_parser -ad

Din nou, vom încerca să adăugați utilizatorul NovSU:

$ Sudo adduser Sergej
Adăugarea utilizatorului `Sergej“ ...
Adăugarea de grup nou `Sergej„(1001) ...
Adăugarea de utilizator nou `Sergej '(1001), cu Sergej group`' ...
passwd: Nu se poate determina numele de utilizator.
Permisiune refuzată
Încercați din nou? [Y / n] y

Și așa mai departe. Noi verificam rezultatul:

$ Cat / etc / passwd | grep Sergej
Sergej: x: 1001: 1001. / Home / Sergej: / bin / bash

Utilitarul nu poate crea o parolă pentru noul utilizator.

Dar asta nu e tot. Profilul nou creat continuă să funcționeze în modul de economisire a energiei. După ceva timp, ar trebui să re-examineze / var / log / mesaje și setările de profil de actualizare. Pentru a face acest lucru, utilizați un logprof de utilitate:

În continuare se vor afișa profilurile încălcările constatate, indicând numele profilului, programelor și acțiunilor. Toate întrebările sunt împărțite în blocuri. Primul este dat de control al proceselor de copil controlate profil.

Profil: / usr / sbin / Dovecot
Programul: Dovecot
Rulați: / usr / lib / Dovecot / IMAP
Severitatea: Necunoscut

[(I) nherit] / (P) rofile / (U) nconfined / (D) eny / Abo (r) t / (F) Inish

Apăsarea r (Abandonare) va ieși din genprof cu o deviere a tuturor modificărilor și F (Finish) face același lucru, dar toate răspunsurile făcute anterior stocate. Acești parametri înseamnă:

1. Moștenire - descendent rulează cu același profil ca părinte;
2. Profil - un descendent al său profil;
3. unconfined - descendent ruleaza fara profil;
4. Deny - interdicția de lansare a proceselor copilului.

Aceasta este urmată de o cerere de acces la funcțiile POSIX:

Profil: / usr / sbin / Dovecot
Posibilitatea: chown
Severitatea: 9

[(A) llow] / (D) eny / Abo (r) t / (F) Inish

Aici sunt câteva mai ușor. O apăsare permite (în exemplul nostru apel chown) sau D să interzică apel activ. Iar al treilea bloc sunt întrebări cu privire la modul în care:

Profil: / usr / sbin / Dovecot
Cale: /
Mod: r
Severitatea: Necunoscut

[(A) llow] / (D) eny / (G) lob / w Glob / (E) xt / (N) ew / Abo (r) t / (F) Inish

Pe lângă setările familiare puteți apăsa N și introduceți o cale nouă, care va fi înregistrată în profilul. Este o oportunitate foarte util pentru a globaliza modul, care este, în loc să /var/www/index.html specificat în regula / var / www / *. Pentru a face acest lucru, pur și simplu apăsați butonul G și calea va fi redusă cu un singur nivel. Fiecare apăsare se va reduce la un alt nivel. Dacă doriți să salvați extensia de fișier, faceți clic pe E (w Glob / (E) xt), iar apoi va exista o intrare ca /var/www/*.html. Potrivit munca oknchanii logprof cere să scanați din nou revista, pentru a ieși selectați F.
Dar asta nu-i toate secretele AppArmor. Pentru a determina dacă rețeaua de ascultare UDP porturile / TCP rulează servicii și cel mai important prezența de protecție a profilului utilizat de utilitate unconfined:

$ Sudo-aa unconfined
5194 / usr / sbin / Avahi-daemon nu este limitat
5194 / usr / sbin / Avahi-daemon nu este limitat
5266 / usr / sbin / cupsd nu este limitat
5290 / usr / sbin / hpiod fără a se limita
5293 /usr/bin/python2.5 fără a se limita
5391 / usr / sbin / mysqld nu este limitat
5621 / usr / lib / postfix / master limitat
5750 / usr / sbin / Dovecot fără a se limita
5750 / usr / sbin / Dovecot fără a se limita
5750 / usr / sbin / Dovecot fără a se limita
5750 / usr / sbin / Dovecot fără a se limita
5890 / usr / sbin / apache2 fără a se limita

Acest lucru creează o listă neagră a software-ului, iar administratorul poate predefini aplicarea potentsialnoopasnye și închide gaura.
Deci, este timpul să încheie. Novell sistemul propus este mult mai ușor de configurat menținând în același timp un nivel ridicat de protecție. O posibilitate relativ simplu de creare independentă a profilului adaugă numai la polii sistemului.

ZY Deși am auzit de părere opusă, dar asta e altă poveste.

articole similare