Software system에서 access control이란, 누가 어떤 자원에 접근이 가능한지 정의하는 것을 말한다.
넓은 의미: "security"라는 것 자체가 access control method이다.
좁은 의미: 누구/무엇이 어떤 시스템 자원에 대한 접근 권한이 있는지, 접근 권한이 있다면 어디까지 접근이 허용되는지 등을 규정한 보안 규칙
- Access Control의 3요소
- Authentication: authorization 이후에 해당 유저가 어떤 권한을 가지는지에 따라 행동 범위를 제어하는 것.
- Authorization
- Audit: recording everything
- Access Control 종류
- DAC (Discretionary access control): access permission을 가진 주체가 가진의 권한을 다른 주체에게 넘겨줄 수 있는 접근 제한 방식
- 예를 들어, 유저A가 O1에 대해 읽기와 쓰기 권한을 가지고 있다고 하자. 유저B는 O1에 대해 아무런 권한을 가지지 않지만, 만약 A가 원한다면 자신이 가진 권한을 B에게 transfer할 수 있다. 이를 "right transfer capability"라고 한다. 사실 이 방법은, A가 시스템 관리자가 아니라면 보안에 취약하다.
- MAC (Mandatory access control): DAC의 조금 더 restricted된 방식으로, 시스템 관리자(system administrator)가 모든 유저에 대한 접근 권한을 지정하는 방식.
- 일반 유저끼리 서로에게 권한을 부여할 수 없다.
- 군대로부터 발전된 방식이다.
- RBAC (Role-based access control): 유저의 역할(role)에 기반하여 접근 권한을 부여하는 방식이다.
- 앞의 DAC, MAC과의 가장 큰 차이점은, 유저 ID가 아닌 유저 role에 따라 권한을 부여한다는 점이다.
- 가장 흔히 쓰이는 방식이다.
- 예시) 현재 prof.Nyang이 공과대학의 학장이라고 하자. 그는 학장으로서 공대 건물의 공간 배치를 결정할 권한이 있어, 공대 건물들의 1층에 놀이터를 만들기로 한다. 그런데 1년이 지난 후, prof.Kim이 학장으로 변경되었다. 이 경우, MAC과 DAC에서는 공간 배치 권한을 prof.Nyang -> prof.Kim으로 이전해야 하지만, RBAC에서는 dean이라는 역할을 prof.Nyang -> prof.Kim으로 이전하면 된다. 즉, RBAC에서는 DB에 dean이 누구인지 나타내는 필드를 추가하고, 학장이 바뀔 때마다 이 필드값만 변경하면 된다.
- ABAC (Attribute-based access control): 유저의 특성 뿐만 아니라, 자원과 환경의 상태를 모두 고려하는 방식이다.
- DAC, MAC, RBAC보다 훨씬 더 많은 expression power를 가지고, 그렇기 때문에 위 세 가지 방식을 모두 ABAC으로 구현할 수 있다.
- 가장 최근에 고안된 방식이다.
- DAC (Discretionary access control): access permission을 가진 주체가 가진의 권한을 다른 주체에게 넘겨줄 수 있는 접근 제한 방식
- Access Control 시스템에서 고려되는 변수들
- Subject: 자원에 접근할 수 있는 주체. (an entity capable of accessing objects)
- Owner, Group, World로 구성됨.
- Object: control하려는 대상, 즉, 자원
- files, directories, programs, ...
- Access right: subject이 object에 접근하는 방식
- Read: 읽기 뿐만 아니라 Copy나 Print하는 권한도 포함된다.
- Write: 시스템 자원에 데이터를 추가, 변경, 삭제하는 권한. 읽기 권한을 포함한다.
- Delete: 파일이나 기록 등을 삭제하는 권한.
- Create: 파일, 기록, 필드 등을 새롭게 생성하는 권한.
- Search: 디렉토리 내의 파일을 확인하거나, 디렉토리 자체를 검색하는 것. 정규식표현을 사용해 검색하는 것도 가능함.
- Subject: 자원에 접근할 수 있는 주체. (an entity capable of accessing objects)
'Information System Security' 카테고리의 다른 글
6-4. Attribute-based access control (ABAC) (0) | 2024.10.24 |
---|---|
6-3. Role-Based Access Control (RBAC) (0) | 2024.10.24 |
6-2. Discretionary Access Control (DAC) (0) | 2024.10.23 |
5. Authentication (1) (0) | 2024.10.19 |
댓글