Controlul accesului bazat pe roluri (RBAC ) este dezvoltarea unei politici de control selectiv al accesului , în timp ce drepturile de acces ale subiecților sistemului la obiecte sunt grupate ținând cont de specificul aplicării acestora, formând roluri . [1] [2]
Formarea rolurilor are scopul de a defini reguli clare și ușor de înțeles pentru controlul accesului pentru utilizatorii unui sistem informatic . Controlul accesului bazat pe roluri face posibilă implementarea unor reguli flexibile de control al accesului care se modifică dinamic în timpul funcționării unui sistem informatic.
Un astfel de control al accesului este o componentă a multor sisteme informatice moderne. De regulă, această abordare este utilizată în sistemele de protecție DBMS , iar elementele individuale sunt implementate în sistemele de operare în rețea . Abordarea bazată pe roluri este adesea folosită în sistemele pentru care utilizatorii au un domeniu de aplicare clar definit al sarcinilor și responsabilităților lor.
În ciuda faptului că un rol este un set de drepturi de acces la obiectele unui sistem informatic, controlul accesului bazat pe roluri nu este în niciun caz un caz special de control selectiv al accesului, deoarece regulile sale determină procedura de acordare a accesului subiecților unui computer. sistem, în funcție de rolurile pe care le are (sau nu le are) în fiecare moment de timp, ceea ce este tipic pentru sistemele obligatorii de control al accesului . Pe de altă parte, regulile de control al accesului bazat pe roluri sunt mai flexibile decât în cazul abordării obligatorii a controlului accesului.
Deoarece privilegiile nu sunt atribuite direct utilizatorilor și sunt dobândite de aceștia doar prin rolul (sau rolurile) acestora, gestionarea drepturilor individuale ale unui utilizator se reduce în esență la atribuirea de roluri acestuia. Acest lucru simplifică operațiuni precum adăugarea unui utilizator sau schimbarea departamentelor de către un utilizator.
Formele elementare ale modelului RBAC au fost implementate într-o varietate de forme speciale pe multe sisteme începând cu anii 1970 . Controlul accesului bazat pe roluri utilizat în prezent derivă din modelul propus de Ferraiolo și Kuhn ( 1992 ) și ca model exemplar rafinat ulterior de Sandhu , Coyne, Feinstein și Yeoman ( 1996 ).
Următoarele convenții sunt utilizate pentru a defini modelul RBAC:
Rolurile sunt atribuite subiecților, prin care subiecții primesc anumite permisiuni prin intermediul rolurilor. RBAC necesită acest tip de atribuire, și nu atribuirea directă a permisiunilor subiecților, altfel duce la o relație dificil de controlat între subiecți și permisiuni [3] .
Capacitatea de a moșteni permisiunile de la roluri opuse este supusă unei reguli restrictive care permite să se realizeze o separare adecvată a modurilor. De exemplu, aceeași persoană nu poate avea voie să creeze un cont pentru cineva și apoi să se conecteze la acel cont.
Folosind notația din teoria mulțimilor :
Notația: x ≥ y înseamnă că x moștenește permisiunile lui y.
Un subiect poate avea mai multe sesiuni simultane cu permisiuni diferite.
Tehnologia de control al accesului bazată pe roluri este flexibilă și suficient de puternică pentru a modela atât controlul selectiv al accesului (DAC) [4] , cât și controlul accesului obligatoriu (MAC) [5]
Înainte de dezvoltarea RBAC, singurele modele cunoscute de control al accesului erau MAC și DAC. Cercetările din anii '90 au arătat că RBAC nu intra în nicio categorie.
În cadrul organizației sunt create roluri pentru diferite funcții ale postului. Anumitelor roluri li se atribuie permisiuni pentru a efectua anumite operațiuni. Membrilor personalului (sau altor utilizatori ai sistemului) li se atribuie roluri fixe prin care primesc privilegii adecvate pentru a îndeplini funcții fixe ale sistemului. Spre deosebire de controlul accesului bazat pe context (CBAC ) , o implementare RBAC pură nu ține cont de situația actuală (cum ar fi, de exemplu, de unde a fost stabilită conexiunea).
RBAC diferă de listele de control al accesului ( ACL ) utilizate în sistemele tradiționale de control selectiv al accesului prin faptul că poate acorda privilegii pentru operațiuni complexe pe date compuse, și nu doar operațiuni atomice pe obiecte de date de nivel scăzut. De exemplu, o listă de control al accesului poate acorda sau interzice accesul la scriere la un anumit fișier de sistem, dar nu poate restricționa modul în care acel fișier poate fi modificat. Un sistem bazat pe RBAC vă permite să creați o activitate precum deschiderea unui „împrumut” într-o aplicație financiară sau completarea unei intrări „test de zahăr din sânge” într-o aplicație medicală. Atribuirea unui privilegiu pentru a efectua o operație are mai multe valori, deoarece operațiunile sunt granulare în cadrul unei aplicații.
Conceptele de ierarhie a rolurilor și constrângeri vă permit să creați sau să modelați controlul accesului bazat pe zăbrele (LBAC ) folosind RBAC. Astfel, RBAC poate fi baza și extinderea LBAC.
În organizațiile cu o infrastructură IT eterogenă care conține zeci și sute de sisteme și aplicații, utilizarea unei ierarhii de roluri și moștenirea privilegiilor ajută. Fără aceasta, utilizarea RBAC devine extrem de confuză. Articolul „Additional Roles: A Practical Approach to Serving Enterprise Users” [6] discută strategii alternative la privilegiile utilizatorilor pe scară largă.
Sistemele moderne extind vechiul model NIST [7] cu limitările RBAC pentru implementarea în întreprinderi mari.
Pentru sistemele mari cu sute de roluri, mii de utilizatori și milioane de permisiuni, gestionarea rolurilor, utilizatorilor, permisiunilor și relațiilor acestora este o sarcină complexă care nu este fezabilă pentru un grup mic de administratori de securitate. O oportunitate atractivă este utilizarea RBAC în sine pentru a facilita guvernarea descentralizată a RBAC.
RBAC este utilizat pe scară largă pentru a gestiona privilegiile utilizatorului într-un singur sistem sau aplicație. Lista acestor sisteme include Microsoft Active Directory , SELinux , FreeBSD , Solaris , Oracle Database , PostgreSQL 8.1 , SAP R/3 , Lotus Notes și multe altele.