본문 바로가기
Information Security

[DB보안] 접근제어 모델(정책) 유형 4가지 (2) : 역할기반, 속성기반 접근제어

by rla124 2024. 6. 3.

지난 게시글에 이어서 역할기반 접근제어와 속성 기반 접근제어에 대해 공부하고자 한다.

 

1. 역할기반 접근제어(RBAC)

백엔드에서도 ADMIN, USER ROLE에 따라 연결할 수 있는 API 차등두는 거 생각하면 된다....

Role-Based Access Control
용어 정의 특정 사용자 및 그룹에 역할을 부여하여 역할이 가지고 있는 권한을 수행함으로써 접근제어 수행
조직 내에서 사용자가 가지는 역할Role에 기반하여 접근 결정
4가지 참조모델로 확장
RBAC 0, RBAC 1, RBAC 2, RBAC 3

 

- 적용 분야 : 데이터베이스, 시스템 관리, 운영체제 제품

 

기존 접근제어 모델과의 차이점(등장 배경)

- 사용자 정보가 자주 바뀌는 경우 권한 관리의 어려움 → 역할에 따라 권한을 다르게 부여

DAC, MAC RBAC
사용자에게 권한 부여(사용자 중심 권한 부여) 사용자에게 역할 부여를 통한 권한 수행
지속적인 권한 관리 필요(빈번한 수정 발생 시 비효율적) 역할 부여 및 취소 가능(효율적 권한 관리 가능)

 

수행 과정

- 단순한 형태의 접근 제어 수행

 : 역할 생성 → 사용자/사용자 그룹 연결(맵핑) → 사용자의 접근, 사용 요청 시 접근제어 수행

 

- 사용자 할당 & 권한 할당 

 

장단점

장점 임의적 접근제어는 객체마다 권한 부여 및 회수를 지속적으로 했어야 했으나
역할기반 접근제어는 역할 회수 및 부여를 통해 효율적으로 수행 작업 축소 가능

 

단점
역할 폭발
Role Explosion
역할의 많은 증가로 세밀한 접근제어 불가능
빈번한 역할 생성 및 관리
ex. Role2는 Role1의 90% 유사 권한이 필요한데 그대로 사용시 10%의 권한이 과도하게 발생하므로 역할 재정의가 필요 

 

 

2. 역할기반 접근제어(RBAC) 모델

- RBAC 모델에 관한 연구 : Ravi S. Sandhu의 RABC 모델, NIST의 RABC 참조모델

기본형 RBAC(Flat/Core RBAC)

 

핵심 구성 요소
사용자 사람이나 자율적인 에이전트
역할 조직과 관련된 직무, 책임, 자격
권한 하나 이상의 객체들에 대한 접근의 승인이나 특정 행위를 할 수 있는 특권
세션
(사용자-역할 다대다의
매핑 테이블 같은 역할)
사용자의 특정 권한 사용을 위해 사용자와 역할 간의 세션 생성 및 역할 할당
한 사용자를 여러 역할에 매핑 가능

 

구성 요소의 관계
U는 R에 배정(UA) P도 R에 배정(PA)
사용자-역할, 역할-권한 배정은 다대다 사용자는 동시에 여러 세션 소유 가능
U는 특정 S 안에서 사용 가능한 모든 역할에 배정된 권한의 합집합을 소유

 

계층형 RBAC(Hierarchical RBAC)

 

일반적 계층형 RBAC 역할 계층에서의 다중 상속 허용
마치 벤다이어그램처럼
제한적 계층형 RBAC 역할 계층에서 1단계 직계 상속만 허용 - 다중 상속 금지
트리 또는 역트리 형태의 계층구조

 

제약형 RBAC(Constrained RBAC)

 

임무분리 Separation of Duty
정적 임무분리
(역할에 선언됨)
Static Separation of Duty
동일 사용자에게 (정적 임부분리가 선언된) 두 개 이상의 역할에 배정되지 못하게 하는 것
동적 임무분리
(역할에 선언됨)
Dynamic Separation of Duty
동일 사용자에게 (동적 임무분리가 선언된) 두 개 이상의 역할에 배정될 수 있지만,
동시에 이 역할들을 사용할 수 없게 하는 것

 

대칭형 RBAC(Symmetric RBAC)

- 적절한 권한-역할 배정

- 과거의 권한-역할 배정은 새로운 상황 변화에 따라 적절하지 않을 수 있으므로 상황 변화에 능동적인 대처, 관리상의 다양한 상황 고려 필요

 

 

Ravi S. Sandhu의 RBAC 모델

Models 계층 제약 비고
RBAC 0 NO NO == 기본형 RBAC
RBAC 1 YES NO == 계층형 RBAC
RBAC 2 NO YES == 제약형 RBAC
RBAC 3 YES YES  

 


 

3. 속성기반 접근제어(ABAC) 모델 

Attribute-Based Access Control
용어 정의 객체==자원과 주체의 속성에 대한 조건을 토대로 접근제어 수행
특정 속성들이 정의되어 있는 상태에서 주체가 접근을 요청할 때
해당 속성들을 가지고 있는지를 판단하여 접근제어 수행
속성이 정책을 만족하는지 판단하여 세부적인 접근제어 수행 

 

주요 요소 : 주체, 객체, 속성

- 속성 : ex. 이름, 시간, 장소, 직책, 부서 등 → 환경 조건 (환경 조건은 주체 및 객체와는 독립적인 동적 요소) 

- 주체 : ex. 사용자 개인, 그룹, 애플리케이션 등 → 주체 속성 (이름, 직업 등 자신을 설명하고 실벽하는데 도움이 되는 주체가 가지고 있는 속성 리스트)

- 객체 : == 자원 → 객체 속성 

 

장단점

장점 역할기반 접근제어의 경우 특정 요일/시간에 객체에 접근하도록 설정 불가하지만
속성기반 접근제어의 경우 위 접근제어 가능
ex. 회사의 일과시간에만 객체에 접근이 가능하도록
ex. 다양한 사물인터넷 센서를 사용할 수 있는 사물인터넷 환경에서 자주 사용
객체 및 주체 속성을 통한 세밀한 접근제어
ex. 의료 분야 : 특정 환자명 속성을 가진 의료 파일을 특정 환자 담당의 속성을 가진 의사가 접근 가능
유연한 접근제어
(역할기반 접근제어와 달리 환경에 따라 동적 변화 요소 사용 가능) 

 

단점 객체와 주체에 대한 속성의 주기적, 개별적인 관리 필요 
(큰 틀의 RBAC + 세부적인 ABAC 조합 추천) 
인가 여부 결정 과정에서 높은 성능 비용이 발생할 우려
클라우드와 사물인터넷에서 널리 각광

 


각 접근제어 모델의 종류와 특징 암기가 관건인 듯하다...