본문으로 바로가기

permissions, rights, privileges 비교

category 02. 관리 - 보안 관리 2017.02.19 21:27
최신 업데이트 내용

2016/10/22 - permissions, rights, privileges 비교(업데이트)


아래 이전 글은 참고로.

------------------------


이 녀석들의 차이점에 대해서 참으로 오랫동안 궁금해왔다. 모른다고 해서 큰 문제가 될 건 아니지만 의미가 다르니까 다른 단어를 사용했을 거고, 그 다른 의미를 알면 좀 더 명확하고 빠르게 문서들의 의미를 파악할 수 있을텐데, 하는 마음이 있었다.  그냥 저냥하다가 꽤 시간이 지나온 것 같다. 

지금까지 깔끔하게 정리해주는 곳이 없었다. 구글링을 해 봐도 만족스럽지 않았다.  지난번 포스트에서도 잠깐 정리를 해 보려고 했는데, 명확하지 않았다. 

2016/01/25 - [04.기술-Infra] - 마이크로소프트 Active Directory 설명


보안을 공부하다가 드뎌 만족스런 설명을 만나게 된다.  기존의 나의 지식에도 딱 들어맞는다. 구글링이 아니라 (ISC)2에서 지정한 공식적인 서적에서 발견된 내용이라 믿을 수 있을 것 같다.


Certified Information Systems Security Professional Study Guide, Seventh Edition


▣ rights와 permissions의미


rights와 permissions은 접근 제어( 또는 통제)에서 사용되는 개념이다.


접근 제어에서는 "주체(subject)"와 "객체(object)"로 구분한다.  

주체는 사람일 수 있고, 프로세스, 시스템일 수도 있다. 

객체는 파일, 다른 프로세스, 다른 시스템 일 수 있다. 


rights나 permissions이 갖는 원 의미를 생각해보면 이해에 도움이 된다. 주체의 rights는 객체에 접근할 수 있는 "권리"이고, 객체에 지정된 permissions은 "허용"이다. rights는 주체에 지정되는 보안 수준(접근할 수 있는 권리 수준)이다.  permission은 객체에 지정되는 보안 수준(접근을 허용하는 수준)이다. 


▣ rights와 permissions의 유사함


permissions은 객체에 설정되기는 하지만 특정 주체 별로 지정되는 설정이다. 즉, "누가 접근하는 것을 허용하겠다"는 것이다. 즉 객체의 permissions은 [주체, 허용 권한] 형식으로 지정된다. 따라서 주체 입장에서 permissions은 객체로부터 실제 허용된 권리가 되는 것이어서 permissions을 rights로 표현하는 경우도 있다는 것이다. 


객체에 대한 접근을 제어하는 방법으로 DAC(Discretionary Access Control), MAC(Mandatory Access Control)등에 대해서 들어봤을 수 있을 것이다. 이런 접근 제어 방법에서 주체와 객체에 각각 설정하는 권한을 CL(Capability List), ACL(Access Control List)라고 한다. 각각 rights와 permissions을 의미한다. 

실제 OS같은 운영 체계에서는 DAC, MAC같은 접근 통제 방법들을 조합해서 구현하고 있다. 주체에 rights만 있다고 해서 객체에 접근할 수 있는 것도 아니고, 객체에 permissions이 설정되어 있다고 객체에 접근할 수 있는 것도 아니다. Windows OS에서도 양쪽 모두에 올바르게 설정이 되어 있어야 객체에 대한 최종적인 접근 권한이 가능하도록 구현되어 있다.  


▣ rights와 permissions의 차이점


그러나 rights에는 "접근제어와 관련된 권한"의 의미만 있는 것은 아니다. 이 외에도 "액션 권한"의 의미도 나타낼 수 있다. 예를 들어 "시스템의 시간을 변경할 수 있는 권한"이라고 할때의 권한은 rights이다.  이때는 permissions으로 표현되지 않는다.  

Windows의 보안 정책을 설정하는 화면에는 그림처럼 "계정 그룹"에 여러가지 "할 수 있는 권한(action 권한)"을 설정할 수 있는 곳이 있다. 





▣ 그럼 privilege는 뭔가? 


아래 원문을 보면  combination of rights and permissions이라고 했다. 이게 무슨 말인지 처음에는 갸우뚱했는데, 그런 거였다. 권한 중에는 주체의 rights와 객체의 permissions 말고도 rights와 permissions을 "설정할 수 있는 권한" 즉, 양쪽 모두에 접근해서 설정할 수 있는 그런 권한이 있을 수 있을 것이다. 그런 권한을 privileges로 표현하고 있는 것이다. 시스템 관리자는 주체와 객체에 영향을 줄 수 있는 "설정을 변경"할 수 있는 privileges가 있다.


앞의 보안 정책 설정 화면에서 사용자가 "설정 자체를 할 수 있는 권한"이 privileges이고, 이 설정의 결과로써 그룹 계정에 부여된 권한을 rights로 보면 될 것 같다. 만약 현재 로그인한 계정에 이런 설정을 할 수 있는 권한(privileges)가 없다면 이 화면에서 작업을 할 수 없을 것이다.


▣ 그럼 privilege와 액션 권한으로서의 rights의 차이는 뭘까? 

 

privileges는 "관리적인 권한" 즉 관리( 설정, 권한 부여 등)라는 액션을 할 수 있는 권한을 의미하는 것으로 볼 수 있다. 그리고 rights는 privileges의 집행으로 생긴 결과로 갖는 '정당하게 액션할 수 있는 권한'을 의미한다고 생각하면 될 것 같다. 즉 rights의 액션에 대한 정당함이 privileges의 집행으로 부여된다고 볼 수 있다. 
각 영어 단어는 이렇게 번역된다 : "특권", "권한". 이렇게 해 놓고 보면 우리 말의 의미도 두 단어의 구분에 도움이 된다.

다음 표현을 생각해보자. '각 사용자 별로 권한을 부여할 수 있는 권한을 갖는다'
앞의 권한은 rights, 뒤의 권한은 privileges로 다소 명확하다.

그러나 애매한 경우도 있다. '서버에서 administrator 계정이 할 수 있는 권한을 설정해라'. 이런 경우는 administrator가 해당 문맥에서 관리 역할로서의 계정이냐 아니면 사용자로서의 계정이냐 그리고 '설정되는 권한'의 내용이 관리적인 권한이냐 아니냐등에 따라서 사용된 '권한'의 의미가 달라질 수 있을 것이다.  어떤 경우든 다음과 같은 적절한 표현들이 사용될 수 있다. administrative privileges, user rights. 'privileges의 집행으로 사용자의 rights가 결정된다'고 보면 될 것 같다. 

예를 하나 더 보자.  "소프트웨어를 인스톨할 수 있는 권한", privileges를 사용해야 할까, rights를 사용해야 할까? 특권이냐 권리냐의 문제로 볼 수 있을 것이다. 문맥상 특권의 의미로 보여지면 privileges이고 정당한 권리의 의미이면 rights를 쓰면 될 것 같다. 관리자가 "인스톨할 수 있는 권한을 사용자에게 부여한다"고 했을때, 이 경우에 문장에서 사용된 "권한"은 "사용자의 rights"로 봐야 할 것이다. 부여하는 권한 자체는 privileges이다. 

이렇게까지 고민하는 것이 탁상 공론, 샌님같은 냄새가 나기도 한다. 그러나 우리는 안하지만, 외국인들은 한다. 원서나 외국 아티클을 읽다보면 이런 의미가 구분되면 더 정확한 의미를 느끼게 되는 경우가 있다


▣ 정리하면 이렇다. 

3 개념을 그림을 그려보면 다음처럼 요약될 것 같다.


※ Capacity Lists 

–  접근할 수 있는 객체 및 rights 정보

※ Access Control List

- 접근을 허용하는 주체 및 permissions 정보


관리자의 privileges 집행으로 주체와 객체의 rights와 permissions이 설정된다. 그런 설정이 끝나고 실제 런타임에 주체가 객체에 접근하려고 할때 양쪽의 rights와 permissions이 비교되어 접근 및 실행 권한이 결정된다. 

그리고 rights에는 '접근 제어의 권한' 뿐만 아니라 '할 수 있는 행위에 대한 권한'의 의미도 있다.


▣ 확인하기


이제 다음과 같은 영어 문장이 이해되는가 확인해보자.

보안을 운영할 때의 원칙중에 "Need to Know"(알 필요성)와 "Least Privilege"(최소 권한)이라는 것이 있다. 사용자들에게 알 필요가 있는 것에 대해서만 최소의 권한을 부여하는 것이 보안에 좋다는 그런 원칙이다. 근데 이 두 용어를 보통 혼용해서 사용하는 것이 일반적인데, 그러나 분명한 차이가 있다는 내용이다. 볼드체 부분이 정확히 이해간다면 앞의 내용이 이해된 것으로 볼 수 있다.


Need to Know and Least Privilege 


Need to know and least privilege are two standard principles followed in any secure IT environment. They help provide protection for valuable assets by limiting access to these assets. Though they are related and many people use the terms interchangeably, there is a distinctive difference between the two. Need to know focuses on permissions and the ability to access information, whereas least privilege focuses on privileges


"need to know는 permissions와 정보 접근 능력에 집중하고, least privilege는 privileges에 집중한다". 

permissions와 privileges의 의미를 알고 있다면 좀 더 깊은 의미가 이해될 수 있는 문장이라고 본다.


▣ 앞에서 언급한 원문 내용이다.


 Comparing Permissions, Rights, and Privileges 


When studying access control topics, you’ll often come across the terms permissions, rights, and privileges. Some people use these terms interchangeably, but they don’t always mean the same thing.


☞ Permissions


In general, permissions refer to the access granted for an object and determine what you can do with it. If you have read permission for a file, you’ll be able to open it and read it. You can grant user permissions to create, read, edit, or delete a file on a file server. Similarly, you can grant user access rights to a file, so in this context, access rights and permissions are synonymous. For example, you may be granted read and execute permissions for an application file, which gives you the right to run the application. Additionally, you may be granted data rights within a database, allowing you to retrieve or update information in the database. 


☞  Rights 


A right primarily refers to the ability to take an action on an object. For example, a user might have the right to modify the system time on a computer or the right to restore backed-up data. This is a subtle distinction and not always stressed. However, you’ll rarely see the right to take action on a system referred to as a permission. 


☞  Privileges 


Privileges are the combination of rights and permissions. For example, an administrator for a computer will have full privileges, granting the administrator full rights and permissions on the computer. The administrator will be able to perform any actions and access any data on the computer.









댓글을 달아 주세요

티스토리 툴바