Imbunatatirea securitatii sistemelor Linux cu ajutorul grsecurity

9

Click here to load reader

description

Imbunatatirea securitatii sistemelor Linux cu ajutorul grsecurity

Transcript of Imbunatatirea securitatii sistemelor Linux cu ajutorul grsecurity

Page 1: Imbunatatirea securitatii sistemelor Linux cu ajutorul grsecurity

Imbunatatirea securitatii sistemelor Linux cu grsecurity

Dragoş Acostăchioaie

http://[email protected]

Şcoala de vară “Informatica la castel”, Macea, 29.08 – 03.09.2011

Page 2: Imbunatatirea securitatii sistemelor Linux cu ajutorul grsecurity

Şcoala de vară “Informatica la castel”, Macea, 29.08 – 03.09.2011

Dragoş Acostăchioaie - http://www.unixinside.org

Ce este grsecurity?

✗ set de patch-uri pentru nucleul Linux care imbunatatesc securitatea sistemului✗ componente:

- PaX – protectia paginilor de memorie- RBAC - controlul accesului bazat pe roluri- restrictii privind chroot- servicii de auditare la nivel de nucleu

✗ se aplica ca patch la nucleul standard✗ este inclus in cateva distributii (eg Hardened Gentoo)✗ permite definirea de patru tipuri de niveluri de securitate: Low, Medium, High si Custom✗ parametrii pot fi modificati prin intermediul sysctl

Page 3: Imbunatatirea securitatii sistemelor Linux cu ajutorul grsecurity

Şcoala de vară “Informatica la castel”, Macea, 29.08 – 03.09.2011

Dragoş Acostăchioaie - http://www.unixinside.org

Ce este PaX?

✗ se poate utiliza si independent de grsecurity✗ asigura protectia spatiului de memorie executabil✗ utilizeaza facilitatea NX oferita de majoritatea procesoarelor Intel recente. Pentru procesoarele care nu suporta, aceasta este emulata

✗ nu permite aplicatiilor sa seteze zonele de cod ca writable si nici zonele de date ca executabile; in acest mod nu se permite injectarea de cod in cadrul programelor

✗ anumite aplicatii (cum ar fi cele Java) pot intampina probleme atunci cand se foloseste PaX; pentru acestea administratorul poate stabili exceptii

✗ asigura randomizarea structurii spatiului de adrese, pentru a preveni atacurile de tip ret2libc (executia de cod rau intentionat)

✗ randomizeaza zonele unde sunt stocate datele din stiva sau heap, zonele alocate cu mmap() sau zonele alocate codului executabil

✗ previne atacurile de tip buffer overflow, stack overflow, integer overflow etc. precum si cele in care atacatorul cunoaste structura memoriei virtuale corespunzatoare aplicatiilor

✗ se administreaza cu ajutorul utilitarului paxctl

Page 4: Imbunatatirea securitatii sistemelor Linux cu ajutorul grsecurity

Şcoala de vară “Informatica la castel”, Macea, 29.08 – 03.09.2011

Dragoş Acostăchioaie - http://www.unixinside.org

PaX – randomizarea paginilor de memorie

Structura memoriei virtuale a unei aplicatii

Randomizarea alocarii paginilor de memorie

Page 5: Imbunatatirea securitatii sistemelor Linux cu ajutorul grsecurity

Şcoala de vară “Informatica la castel”, Macea, 29.08 – 03.09.2011

Dragoş Acostăchioaie - http://www.unixinside.org

Controlul accesului bazat pe roluri - RBAC

✗ permite restrictionarea accesului utilizatorilor si proceselor, pentru a avea privilegii minime,✗ suplimentar fata de sistemul de control al accesului standard UNIX (utilizatori, grupuri, drepturi de acces la fisiere)

✗ se administreaza cu ajutorul utilitarului gradm✗ politica de securitate este alcatuita din roluri, subiecte si obiecte (/etc/grsec/policy)

- roluri = utilizatori si grupuri- subiecte = procese sau directoare- obiecte = fisiere, capabilitati, resurse, socket-uri, optiuni PaX, liste de acces de IP-uri

✗ alte facilitati oferite:- accesul fara root la anumite roluri speciale- roluri speciale care nu necesita autentificare- posibilitatea de a utiliza variable in fisierul de configurare- posibilitatea de a efectua operatii de SAU, SI, SAU EXCLUSIV intre variabile- controlul atributelor SUID/SGID pentru fisiere executabile- posibilitatea de a stabili implicit privilegii minime pentru intreg sistemul- set pot stabili politici si pentru procese sau fisiere inexistente- posibilitatea de a ascunde procesele nucleului- mod de auto-invatare- pot fi definite ierarhii de politici

Page 6: Imbunatatirea securitatii sistemelor Linux cu ajutorul grsecurity

Şcoala de vară “Informatica la castel”, Macea, 29.08 – 03.09.2011

Dragoş Acostăchioaie - http://www.unixinside.org

Restrictii privind chroot

✗ nu se pot atasa zone de memorie comuna din afara chroot✗ nu poate fi utilizat apelul kill din afara chroot✗ nu pot fi transmise semnale din afara chroot✗ nu pot fi obtinute date despre procese din afara chroot, chiar daca sistemul /proc este montat

✗ nu poate fi utilizat apelul mount✗ restrictii pentru apelul chdir✗ nu poate fi setat atributul SUID/SGID in interiorul chroot

Page 7: Imbunatatirea securitatii sistemelor Linux cu ajutorul grsecurity

Şcoala de vară “Informatica la castel”, Macea, 29.08 – 03.09.2011

Dragoş Acostăchioaie - http://www.unixinside.org

Servicii de auditare la nivel de nucleu

✗ se poate audita un anumit grup de utilizatori✗ montarea/demontarea de dispozitive✗ modificarea timpului sistemului✗ apelul chdir si alte apeluri de sistem✗ accesul neautorizat la resurse✗ apelurile fork() nereusite✗ crearea si stergerea de resurse IPC (zone de memorie comuna, semafoare, cozi de mesaje)✗ apelurile exec()

Page 8: Imbunatatirea securitatii sistemelor Linux cu ajutorul grsecurity

Şcoala de vară “Informatica la castel”, Macea, 29.08 – 03.09.2011

Dragoş Acostăchioaie - http://www.unixinside.org

Alte facilitati

✗ optiunea de a interzice utilizatorilor executia de fisiere binare care nu sunt detinute de root sau care au drept de scriere

✗ restrictionarea accesului utilizatorilor obisnuiti la comenzile dmesg si netstat✗ nu permite identificarea utilizatorului proprietar al proceselor✗ restrictii privind legaturile in directorul /tmp

Page 9: Imbunatatirea securitatii sistemelor Linux cu ajutorul grsecurity

Şcoala de vară “Informatica la castel”, Macea, 29.08 – 03.09.2011

Dragoş Acostăchioaie - http://www.unixinside.org

Exemplu

subject /bin/bash/home rw/dev/mnt rwxRLIMIT_NPROC 2 2RLIMIT_FNUMBER 10 20

subject /usr/bin/sshconnect 192.168.0.0/24:22 stream tcp

role adminsubject /

/home rwx/bin rw/dev/dev/cdrom r

role sshd usubject /

/ h/var/run/sshd r-CAP_ALLbind disabledconnect disabled