검수요청.png검수요청.png

"권한"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
(유닉스의 권한 권리)
잔글 (같이 보기)
 
(사용자 3명의 중간 판 18개는 보이지 않습니다)
1번째 줄: 1번째 줄:
'''권한'''(權限,right(s))이란 타인을 위하여 일정한 법률효과를 발생시킬 수 있는 지위 또는 자격을 말한다.<ref name="권한">〈[https://terms.naver.com/entry.naver?docId=1068321&cid=40942&categoryId=31721 권한]〉, 《네이버 지식백과》 </ref>
+
'''권한'''(權限, permission)은 [[사용자]], [[프로그램]], [[프로세스]]에 사용자 인증 절차를 통해 신원이 확인된 사용자에게 [[시스템]]이나 [[네트워크]]의 자원에 접근할 권리를 부여하는 것을 말한다. 시스템의 [[접근통제]]보다 우선한다.
  
 
==개요==
 
==개요==
권한은 [[권리]](權利,right(s))와 유사하지만, 권리는 자신을 위하여 가지는 법률(法律,law)상의 이익인 점에 대하여 권한은 타인을 위하여 법률효과를 발생시킬 수 있는 일정한 지위 또는 자격(資格,qualification)이라는 것과 다르다. 범위는 당사자의 의사와 법률관계의 명확성과 안정성을 도모하기 위하여 그 범위를 법률로써 정하고 있는 경우가 많다.<ref name="권한"></ref>
+
권한은 [[권리]]와 유사하지만, 권리는 자신을 위하여 가지는 법률상의 이익인 점에 대하여 권한은 타인을 위하여 법률 효과를 발생시킬 수 있는 일정한 지위 또는 자격(資格, qualification)이라는 것과 다르다. 범위는 당사자의 의사와 법률관계의 명확성과 안정성을 도모하기 위하여 그 범위를 법률로써 정하고 있는 경우가 많다. 따라서 권한은 여러 분야에서 쓰는 용어이다.<ref name="권한">〈[https://terms.naver.com/entry.naver?docId=1068321&cid=40942&categoryId=31721 권한]〉, 《네이버 지식백과》 </ref> [[정보]] [[보안]] 분야에서 권한은 [[데이터]]나 프로그램 등의 특정한 자원 또는 [[시분할 시스템]] 등의 시스템 서비스에 접근할 수 있는 권리가 주어지는 것을 말한다.<ref>〈[https://terms.naver.com/entry.naver?docId=127252&cid=50376&categoryId=50376 권한 부여]〉, 《네이버 지식백과》 </ref> 예를 들어 [[데이터베이스]]에서는 보안을 유지하기 위해 계정이 발급된 사용자가 로그인에 성공했을 경우에만 데이터베이스에 접근이 가능하도록 하는 접근 제어(access control) 기능을 기본으로 제공하는 개념으로 쓰인다.<ref>〈[https://terms.naver.com/entry.naver?docId=3431292&cid=58430&categoryId=58430 권한 관리의 개념]〉, 《네이버 지식백과》 </ref> 또한 이 권한은 디스크 상의 파일들을 읽고, 쓰고, 지우고, 갱신하며, 수행시키는 것에 대하여 사용자에 따라서 나오는 특권을 의미한다.<ref>〈[https://terms.naver.com/entry.naver?docId=3481196&cid=58439&categoryId=58439 Privilege]〉, 《네이버 지식백과》 </ref> 권한은 무분별한 권한 확대를 막기 위해 주어진다. 만약 사용자가 받지 않은 권한을 받게 되면 악의적으로 접근하는 사용자가 많아지고, [[보안]] 영역이 취약해지는 결과가 오기 때문이다.<ref name="권한 확대"></ref>
 +
 
 +
==권한 관리 기반 구조==
 +
[[권한 관리 기반 구조]](privilege management infrastructure , 權限管理基盤構造)는 기업 및 기관 단위에서 사용자들에게 특정 시스템 및 애플리케이션에 접근할 수 있는 권한을 차등 부여해 주는 권한 관리 체계를 뜻하며, [[공개 키 기반 구조]](PKI)의 사용자 신원 확인 중심의 보안 체계를 보완해 주고 인증 소유자의 특정 권한을 체계적으로 정립해 줌으로써 각 조직에서의 전산 시스템 확장에 따른 [[시스템 통합 요구]]에 효과적으로 PKI를 적용시킬 수 있도록 하는 것이다.<ref>〈[https://terms.naver.com/entry.naver?docId=842544&cid=42346&categoryId=42346 권한 관리 기반 구조]〉, 《네이버 지식백과》 </ref>
 +
 
 +
== 부여 및 확대 ==
 +
권한 확대(privilege escalation)는 보통 [[애플리케이션]]이나 [[사용자]]에 대해 보호되는 자원들에 대한 상승된 접근을 얻기 위해서 [[운영체제]]나 [[소프트웨어 애플리케이션]]에서 [[버그]]나 설계 결함, 또는 설정을 [[익스플로잇]]하는 행동을 말한다. 이것에 의한 결과는 애플리케이션이 [[개발자]]나 [[시스템 관리자]]가 의도한 것보다 높은 수준의 권한을 얻어서 비허가 행동을 할 수 있게 되는 것이다.<ref name="권한 확대">〈[https://ko.wikipedia.org/wiki/%EA%B6%8C%ED%95%9C_%ED%99%95%EB%8C%80 권한 확대]〉, 《위키백과》 </ref> [[추상 데이터형]]의 표현 변수에 대한 접근을 구현된 [[프로시저]]에게 허용된다.<ref>〈[https://terms.naver.com/entry.naver?docId=815046&cid=50376&categoryId=50376 권한 확대]〉, 《네이버 지식백과》</ref> 분산 권한 부여는 여러 관리자에게 권한 부여 기능이 [[분산]]되어 있는 것이다.<ref>〈[https://terms.naver.com/entry.naver?docId=820226&cid=50376&categoryId=50376 분산 권한 부여]〉, 《네이버 지식백과》 </ref> 그 중 권한 부여 행렬은 데이터 베이스의 보안을 유지하기 위해 시스템에 유지되는 테이블로서 각 사용자에 대해 이 사용자가 접근할 수 있는 객체와 이 객체에 대해 수행할 수 있는 연산 등을 나타내며 행렬의 각 행은 사용자를 나타내고, 내용은 허용되는 연산 권한을 나타낸다.<ref>〈[https://terms.naver.com/entry.naver?docId=815653&cid=50376&categoryId=50376 권한 부여 행렬]〉, 《네이버 지식백과》 </ref> 권한 부여 규정은 데이터 베이스에 대한 사용자의 사용 가능 범위를 나타낸다. 또한 각 사용자가 접근할 수 있는 데이터 객체와 이에 대해 수행할 수 있는 연산의 종류를 명시한다.<ref>〈[https://terms.naver.com/entry.naver?docId=815654&cid=50376&categoryId=50376 권한 부여 규정]〉, 《네이버 지식백과》 </ref> 권한 부여 검사를 통해 사용자가 현재 요구하고 있는 [[트랜잭션]]에 대해 그 사용자가 요구할 자격을 검사할 수 있다.<ref>〈[https://terms.naver.com/entry.naver?docId=815649&cid=50376&categoryId=50376 권한 부여 검사]〉, 《네이버 지식백과》 </ref>
  
==법률==
 
===전자===
 
수권행위(授權行爲)에 의한 임의대리인의 대리권(민법 제118조), 이사의 대표권의 제한(59조)<ref name="권한"></ref>
 
===후자===
 
법정대리인의 대리권(민법 제24·25조), 상업사용인(商業使用人)의 대리권(상법 제11·16조)<ref name="권한"></ref>
 
==정보 보안 쪽 에서의 권한 개념==
 
#데이터베이스의 보안을 유지하기 위해, 계정이 발급된 사용자가 로그인에 성공했을 경우에만 데이터베이스에 접근이 가능하도록 하는 접근 제어(access control) 기능을 기본으로 제공한다.
 
#그러므로 모든 사용자는 자신에게 발급된 계정으로 로그인해야 데이터베이스에 접근할 수 있다.<ref>〈[https://terms.naver.com/entry.naver?docId=3431292&cid=58430&categoryId=58430 권한 관리의 개념]〉, 《네이버 지식백과》 </ref>
 
#디스크상의 파일들을 읽고, 쓰고, 지우고, [[갱신]]하며, 수행시키는 것에 대하여 사용자에 따라서 나오는 특권<ref>〈[https://terms.naver.com/entry.naver?docId=3481196&cid=58439&categoryId=58439 Privilege]〉, 《네이버 지식백과》 </ref>
 
==정보 권한 관리==
 
정보 권한 관리(Information Rights Management , 情報權限管理)는 정보 문서 또는 전자 메일 메시지에 액세스하고 이용할 수 있는 사람을 지정하고, 인증받지 않은 사용자가 이런 디지털 지적 자산을 인쇄, 전달, 복사하는 것을 차단하여, [[디지털 지적 자산]]이 무단으로 이용되지 않도록 관리 해주는 것이다.<ref>〈[https://terms.naver.com/entry.naver?docId=863989&cid=42346&categoryId=42346 정보 권한 관리]〉, 《네이버 지식백과》 </ref>
 
==등장 배경==
 
무분별한 권한 확대는 사용자가 받지 않은 권한을 부여하게 되므로 이렇게 되면 악의적으로 쓰는 사용자가 많아지고 [[보안]] 영역이 취약해지는 결과가 오기 때문이다.
 
==데이터베이스 권한==
 
[[데이터베이스]](database)에서의 권한(authority)은 사용자가 특정 테이블에 접근할 수 있도록 하거나 해당 테이블에 [[데이터베이스 언어]] (SQL)([[데이터 정의어]](DDL), [[데이터 조작어]](DML),[[데이터 제어어]](DCL))문을 사용할 수 있도록 제한을 두는 것을 말한다.
 
==관리==
 
데이터베이스 종류에 따라 권한을 좀 더 세부적이거나 기능적으로 생성하기도 하지만 기본적으로 질의문(Query)과 [[뷰]](View)로 관리한다.<ref name="데이터베이스의 권한 관리">〈[https://terms.naver.com/entry.naver?docId=3431858&cid=58437&categoryId=58437 데이터베이스의 권한 관리]〉, 《네이버 지식백과》 </ref>
 
===질의문===
 
기본적으로 3가지 종류의 질의문을 가지고있다.(DDL,DML,DCL)이 언어들은 위에서 나온 데이터베이스 언어이다.<ref>〈[https://terms.naver.com/entry.naver?docId=3431219&cid=58430&categoryId=58430 데이터베이스 언어 SQL 요약]〉, 《네이버 지식백과》 </ref>
 
====DDL====
 
DDL(Data Definition Language)은 데이터 구조를 정의하는 질의문으로 주로 처음 생성 할 때 사용한다.(운용 중에는 잘 안 한다.)명령문 종류는(CREATE,DROP,ALTER)<ref name="데이터베이스의 권한 관리"></ref>
 
#CREATE : 데이터베이스 객체를 생성하는 명령문이다.
 
#DROP : 데이터베이스 객체를 삭제하는 명령문이다.
 
#ALTER : 기존의 데이터베이스 객체를 다시 정의할 때 사용하는 명령문이다.
 
====DML====
 
DML(Data Manipulation Language)데이터베이스의 운영 및 사용과 관련해 가장 많이 사용하는 언어이다. 데이터의 검색과 수정 등을 주로 처리한다.명령문 종류는(SELECT,INSERT,UPDATE,DELETE)<ref name="데이터베이스의 권한 관리"></ref>
 
#SELECT : 사용자가 테이블이나 뷰의 내용을 읽고 선택할 때 쓰는 명령문이다.
 
#INSERT : 데이터베이스 객체에 데이터를 입력하는 명령문이다.
 
#UPDATE : 기존 데이터베이스 객체에 있는 데이터를 수정하는 명령문이다.
 
#DELETE : 데이터베이스 객체에 있는 데이터를 삭제하는 명령문이다.
 
====DCL====
 
DCL(Data Control Language)[[권한 관리]]를 위한 질의문으로 써 명령문은(GRANT,DENY,REVOKE)<ref name="데이터베이스의 권한 관리"></ref>
 
#GRANT : 데이터베이스 객체에 권한을 부여하는 명령문이다.
 
#DENY : 사용자에게 해당 권한을 금지하는 명령문이다.
 
#REVOKE : 이미 부여된 데이터베이스 객체의 권한을 취소하는 명령문이다.
 
#권한 취소 데이터베이스(database)에서 GRANT 명령어를 통해 다른 사용자에게 권한을 부여한 사용자가 자신이 부여한 권한을 취소할 수도 있다. 다른 사용자에게 부여된 객체의 사용 권한을 취소하기 위해 필요한 SQL 명령어는 REVOKE이다.(예시:REVOKE 권한 ON 객체 FROM 사용자 CASCADE | RESTRICT;)<ref>〈[https://terms.naver.com/entry.naver?docId=3431294&cid=58430&categoryId=58430 권한의 취소]〉, 《네이버 지식백과》 </ref>
 
DDL과 DML은 DCL에 의해 [[허용]](Grant) 또는 [[거부]](Deny)된다.<ref name="데이터베이스의 권한 관리"></ref>
 
==권한 부여==
 
데이터나 프로그램 등의 특정한 자원 또는 [[시분할 시스템]] 등의 시스템 서비스에 접근할 수 있는 권한이 주어지는 것.<ref>〈[https://terms.naver.com/entry.naver?docId=127252&cid=50376&categoryId=50376 권한 부여]〉, 《네이버 지식백과》 </ref>
 
===분산 권한 부여===
 
여러 관리자에게 권한 부여 기능이 [[분산]]되어 있는 것.<ref>〈[https://terms.naver.com/entry.naver?docId=820226&cid=50376&categoryId=50376 분산 권한 부여]〉, 《네이버 지식백과》 </ref>
 
===권한 부여 행렬===
 
데이터 베이스의 보안을 유지하기 위해 시스템에 유지되는 테이블로서 각 사용자에 대해 이 사용자가 접근할 수 있는 객체와 이 객체에 대해 수행할 수 있는 연산 등을 나타내며 행렬의 각 행은 사용자를 나타내고 내용은 허용되는 연산 권한을 나타낸다.<ref>〈[https://terms.naver.com/entry.naver?docId=815653&cid=50376&categoryId=50376 권한 부여 행렬]〉, 《네이버 지식백과》 </ref>
 
===권한 부여 규정===
 
데이터 베이스에 대한 사용자의 사용 가능 범위를 나타내는 것이며, 각 사용자가 접근할 수 있는 데이터 객체와 이에 대해 수행할 수 있는 연산의 종류를 명시하는 것이다.<ref>〈[https://terms.naver.com/entry.naver?docId=815654&cid=50376&categoryId=50376 권한 부여 규정]〉, 《네이버 지식백과》 </ref>
 
==데이터베이스 관리자 권한==
 
권한을 가진 자가 다른 사용자에게 연산을 포함하여 특권에 속하는 [[데이터베이스 관리자]](DBA) 권한 자체까지도 허가하는 시스템에서 어떤 유효한 연산도 수행할 수 있도록 허용<ref>〈[https://terms.naver.com/entry.naver?docId=820083&cid=50376&categoryId=50376 DBA 권한]〉, 《네이버 지식백과》 </ref>
 
==권한 부여 검사==
 
사용자가 현재 요구하고 있는 [[트랜잭션]]에 대해 그 사용자가 요구할 자격을 검사하는 것.<ref>〈[https://terms.naver.com/entry.naver?docId=815649&cid=50376&categoryId=50376 권한 부여 검사]〉, 《네이버 지식백과》 </ref>
 
==권한 확대==
 
#권한 확대 (privilege escalation)는 보통 [[애플리케이션]]이나 [[사용자]]에 대해 보호되는 자원들에 대한 상승된 접근을 얻기 위해서 [[운영체제]]나 [[소프트웨어 애플리케이션]]에서 [[버그]]나 설계 결함, 또는 설정을 [[익스플로잇]]하는 행동을 말한다. 이것에 의한 결과는 애플리케이션이 [[개발자]]나 [[시스템 관리자]]가 의도한 것보다 높은 수준의 권한을 얻어서 비허가 행동을 할 수 있게 된다.
 
#[[추상 데이터형]]의 표현 변수에 대한 접근을 구현된 [[프로시저]]에게 허용<ref name="권한 확대">〈[https://ko.wikipedia.org/wiki/%EA%B6%8C%ED%95%9C_%ED%99%95%EB%8C%80 권한 확대]〉, 《위키백과》 </ref>
 
 
===수직 권한 확대===
 
===수직 권한 확대===
#이 유형의 권한 확대는 사용자나 프로세스가 시스템 개발자나 관리자가 의도한 것보다 높은 접근 수준을 가질 때 발생한다, [[커널]](Kernel) 수준 동작을 수행함으로써 가능해질 수 있다.
+
[[수직 권한 확대]]는 사용자나 프로세스가 시스템 개발자나 관리자가 의도한 것보다 높은 접근 수준을 가질 때 발생한다, [[커널]](Kernel) 수준 동작을 수행함으로써 가능해질 수 있다. 예를 들어 어떤 경우에 높은 권한의 애플리케이션은 인터페이스에 명시된 것과 일치하는 입력이 제공된다고 가정하면, 입력을 확인하지 않는다 이에 공격자는 이 가정을 익스플로잇하여 비인가된 코드를 애플리케이션의 권한으로 실행하는 것이다.<ref name="권한 확대"></ref>
#예시 : 어떤 경우에, 높은 권한의 애플리케이션은 인터페이스에 명시된 것과 일치하는 입력이 제공된다고 가정하면, 입력을 확인하지 않는다 이에 공격자는 이 가정을 익스플로잇하여 비인가된 코드를 애플리케이션의 권한으로 실행한다.<ref name="권한 확대"></ref>
 
  
 
===수평 권한 확대===
 
===수평 권한 확대===
#수평 권한 확대는 애플리케이션이 공격자가 애플리케이션이나 사용자에게 보호되고 있는 자원에 접근할 수 있게 허락할 때 발생한다. 이것의 결과는 애플리케이션 개발자나 시스템 관리자가 의도한 것과 같은 역할을 가지지만 다른 보안 문맥을 수행하게 된다. 이것은 효과적으로 제한적인 권한 확대의 형태이다.
+
[[수평 권한 확대]]는 애플리케이션이 공격자가 애플리케이션이나 사용자에게 보호되고 있는 자원에 접근할 수 있게 허락할 때 발생한다. 이것의 결과는 애플리케이션 개발자나 시스템 관리자가 의도한 것과 같은 역할을 가지지만 다른 보안 문맥을 수행하게 된다. 이것은 효과적으로 제한적인 권한 확대의 형태이다.<ref name="권한 확대"></ref>
#취약점: 웹 애플리케이션의 취약점<ref name="권한 확대"></ref>
 
  
==접근 권한==
 
접근 권한(access right)이란 특정 이용자, 프로그램, 프로세스 또는 컴퓨터 네트워크 안의 컴퓨터 시스템에만 허용된 접근할 수 있는 권한을 말한다. 즉, 어떤 데이터 또는 프로그램을 참조하고, 그것을 특정 형태로 이용하는 것을 이용자에게 인정한 권한이다. 접근 권한의 내용은 데이터 항목(파일이나 레코드), 특정란의 판독(read), 새로운 항목의 추가(append)나 현 항목의 변경(modify) 등에 의한 기록(write), 항목의 삭제(delete) 등의 조작을 총칭하는 개념이다.<ref>〈[https://terms.naver.com/entry.naver?docId=814523&cid=42344&categoryId=42344 접근 권한]〉, 《네이버 지식백과》 </ref>
 
==접속 권한==
 
접속 권한(access privileges)이란 어느 [[사이트]] 또는 컴퓨터의 접근(접속)에 대한 권한을 나타내는 용어이다.<ref>〈[https://terms.naver.com/entry.naver?docId=814520&cid=50376&categoryId=50376 접속 권한]〉, 《네이버 지식백과》 </ref>
 
==권한 부여 그래프==
 
권한 부여 그래프(authorization graph)는 한 사용자로부터 다른 사용자에게로 권한이 양도되는 것을 나타내는 [[그래프]]. 사용자를 [[노드]](node)로 나타내며, 한 사용자 Ui가 다른 사용자 Uj에게 권한을 주었을 때Ui에서Uj로 연결선을 긋는걸 나타내는 것이다.<ref>〈[https://terms.naver.com/entry.naver?docId=815651&cid=50376&categoryId=50376 권한 부여 그래프]〉, 《네이버 지식백과》 </ref>
 
 
==권한 수준==
 
==권한 수준==
권한 수준(privilege level)은 프로세서에서 현재 돌아가고 있는 프로그램의 자원([[메모리]] 영역, [[I/O 포트]], [[특별한 명령어]] 등)에 대한 접근을 제어하는 것 이며. 4가지 권한 수준이 존재하는 가운데 가장 높은 권한인 0부터 가장 낮은 권한인 3까지 있다. 현대 운영 체제는 커널을 위해 레벨 0을 사용하고 애플리케이션 프로그램을 위해 레벨 3을 사용한다. 레벨 n에서 사용할 수 있는 어느 자원도 레벨 n 이상부터 레벨 0까지에서도 사용할 수 있으며 그래서 권한 수준들을 [[보호 링]]이라고 한다. 낮은 권한의 프로세스가 높은 권한의 프로세스에 접근하려고 할 때 [[일반 보호 장애]](GPF : General Protection Fault)가 OS에 의해 발생한다.<ref>〈[https://ko.wikipedia.org/wiki/%EA%B6%8C%ED%95%9C_%EC%88%98%EC%A4%80 권한 수준]〉, 《위키백과》 </ref>
+
[[권한 수준]](privilege level)은 프로세서에서 현재 돌아가고 있는 프로그램의 자원인 [[메모리]] 영역, [[입출력 포트]], [[특별한 명령어]] 등에 대한 접근을 제어하는 것이며, 4가지 권한 수준이 존재하는 가운데 가장 높은 권한인 0부터 가장 낮은 권한인 3까지 있다. 운영체제는 커널을 위해 레벨 0을 사용하고 애플리케이션 프로그램을 위해 레벨 3을 사용한다. 레벨 n에서 사용할 수 있는 어느 자원도 레벨 n 이상부터 레벨 0까지에서도 사용할 수 있으며, 그래서 권한 수준들을 [[보호 링]]이라고 한다. 낮은 권한의 프로세스가 높은 권한의 프로세스에 접근하려고 할 때 [[일반 보호 장애]](GPF : General Protection Fault)가 운영체제에 의해 발생하게 된다.<ref>〈[https://ko.wikipedia.org/wiki/%EA%B6%8C%ED%95%9C_%EC%88%98%EC%A4%80 권한 수준]〉, 《위키백과》 </ref>
==응용 프로그램의 권한 관리==
+
 
[[응용 프로그램]]의 경우 응용 프로그램 내의 권한도 중요하지만, 응용 프로그램 자체의 실행 권한이 더 중요하다.
 
#모든 응용 프로그램은 운영체제에 존재하는 어떤 한 [[계정]]에 의해 실행되는데, 응용 프로그램은 자신을 실행한 계정의 권한을 물려받게 되므로 응용 프로그램이 보안상에 문제가 있는 취약한 프로그램일 때 해당 프로그램을 실행한 계정의 권한이 악용되는 문제가 발생 할 수가 있다. 응용 프로그램에 보안상 취약점이 있을 경우 [[공격자]]는 이 취약점을 통해 해당 프로세스의 권한을 얻을 수 있기 때문이다.
 
#예시 : 아파치와 같은 웹 서버의 서비스가 [[root]] 권한으로 실행되는 경우, 혹은 웹 취약점에 의해 공격자가 root의 권한을 획득하는 경우가 대표 예시이다. 따라서 윈도우의 IIS에서는 그 실행 프로세스 권한을 별도로 만들어 사용하도록 하며, 유닉스에서는 nobody와 같이 제한된 계정 권한을 사용하도록 하고 있다.<ref>〈[https://terms.naver.com/entry.naver?docId=3431859&cid=58437&categoryId=58437 응용 프로그램의 권한 관리]〉, 《네이버 지식백과》 </ref>
 
==거래 권한 생성 언어==
 
거래 권한 생성 언어(Transaction Authority Markup Language, 去來權限生成言語)는 [[확장성 생성 언어]](XML) [[웹 서비스]]상에서 온라인 거래의 협력과 처리를 가능하게 하는 산업체 개방 표준. 비즈니스 레벨의 거래에 사용되는 메시지 형식과 거래 모델을 정의하며 다중 거래 참여가 가능하고, 웹 상에서 프로세스를 공유함으로써 상호 운용성을 발휘하여 새로운 영역의 비즈니스 접속을 가능하게 권한을 주도록 하는 언어이다.<ref>〈[https://terms.naver.com/entry.naver?docId=855256&cid=42346&categoryId=42346 거래 권한 생성 언어]〉, 《네이버 지식백과》 </ref>
 
==권한 관리 기반 구조==
 
권한 관리 기반 구조(privilege management infrastructure , 權限管理基盤構造)는 기업 및 기관 단위에서 사용자들에게 특정 시스템 및 애플리케이션에 접근할 수 있는 권한을 차등 부여해 주는 권한 관리 체계를 뜻하며, [[공개 키 기반 구조]](PKI)의 사용자 신원 확인 중심의 보안 체계를 보완해 주고 인증 소유자의 특정 권한을 체계적으로 정립해 줌으로써 각 조직에서의 전산 시스템 확장에 따른 [[시스템 통합 요구]]에 효과적으로 PKI를 적용시킬 수 있도록 한다.<ref>〈[https://terms.naver.com/entry.naver?docId=842544&cid=42346&categoryId=42346 권한 관리 기반 구조]〉, 《네이버 지식백과》 </ref>
 
 
==권한 설정==
 
==권한 설정==
권한 설정(provisioning , 權限設定)은 이용자에게 계정, 계정 접근 권한, 계정 관련 권한, [[계정 관리]]에 필요한 제반 자원을 제공하는 서비스 설정 과정이며 이용자 측면에서 볼 때 하나의 서비스 형태로서, 통신 사업자가 이용자 회선을 적절한 네트워크에 연결하기 위해 프로그램에 의해 자동 설정하는 것과, 이용자가 웹 기반 [[인터페이스]]나 다른 [[클라이언트]] 인터페이스로부터 자기가 원하는 서비스를 설정하는 것들이 있다.<ref>〈[https://terms.naver.com/entry.naver?docId=862383&cid=42346&categoryId=42346 권한 설정]〉, 《네이버 지식백과》 </ref>
+
[[권한 설정]](provisioning , 權限設定)은 이용자에게 계정, 계정 접근 권한, 계정 관련 권한, [[계정 관리]]에 필요한 제반 자원을 제공하는 서비스 설정 과정이다. 이용자 측면에서 볼 때 하나의 서비스 형태로서, 통신 사업자가 이용자 회선을 적절한 네트워크에 연결하기 위해 프로그램에 의해 자동 설정하는 것과, 이용자가 웹 기반 [[인터페이스]]나 다른 [[클라이언트]] 인터페이스로부터 자기가 원하는 서비스를 설정하는 것들이 있다.<ref>〈[https://terms.naver.com/entry.naver?docId=862383&cid=42346&categoryId=42346 권한 설정]〉, 《네이버 지식백과》 </ref>
==최소 권한==
+
 
사용자 또는 프로세서는 특정 임무를 수행하는 데 필요한 최소한의 제한적인 권한만을 할당받아야 하고, 이들 권한은 특정 임무를 수행하는 동안에만 할당되어야 한다는 [[정보 보호 원칙]]. 이러한 최소 권한 법칙은 시스템 공격이나 사고에 의한 시스템의 위협으로부터 피해를 감소 할 수 있도록 하는 조치이다. <ref>〈[https://terms.naver.com/entry.naver?docId=854023&cid=50371&categoryId=50371 최소 권한]〉, 《네이버 지식백과》 </ref>
+
== 활용 ==
==운영체제의 권한 관리==
+
===운영체제===
===윈도우의 권한 관리===
+
====윈도우====
NTFS에서 그룹 또는 개별 사용자에 대해 설정할 수 있는 권한은 6가지다.
+
[[NTFS]]에서 그룹 또는 개별 사용자에 대해 설정할 수 있는 권한은 6가지이다.
#모든 권한 : [[디렉터리]]에 대한 접근 권한과 [[소유권]]을 변경이 가능하고, 하위에 있는 디렉터리와 파일을 삭제 가능하다.
+
*'''모든 권한''' : [[디렉터리]]에 대한 접근 권한과 [[소유권]]을 변경이 가능하고, 하위에 있는 디렉터리와 파일을 삭제 가능한 것이다.  
#수정 : 디렉터리를 삭제할 수 있고 읽기 및 실행과 쓰기 권한이 주어진 것과 같은 효과를 준다.
+
*'''수정''' : 디렉터리를 삭제할 수 있고 읽기 및 실행과 쓰기 권한이 주어진 것과 같은 효과를 주는 것이다.  
#읽기 및 실행 : 읽기를 수행할 수 있고 디렉터리나 파일을 옮길 수 있다.
+
*'''읽기 및 실행''' : 읽기를 수행할 수 있고 디렉터리나 파일을 옮길 수 있는 것이다.  
#디렉터리 내용 보기 : 디렉터리 내의 파일과 디렉터리의 이름을 조회 할 있다.
+
*'''디렉터리 내용 보기''' : 디렉터리 내의 파일과 디렉터리의 이름을 조회할 있는 것이다.  
#읽기 : 디렉터리의 내용을 읽기만 가능하다.
+
*'''읽기''' : 디렉터리의 내용을 읽기만 가능한 것이다.  
#쓰기 : 해당 디렉터리에 하위 디렉터리, 파일을 생성할 수 있고 소유권과 접근 권한의 설정 내용을 확인할 수 있다.
+
*'''쓰기''' : 해당 디렉터리에 하위 디렉터리, 파일을 생성할 수 있고 소유권과 접근 권한의 설정 내용을 확인할 수 있는 것이다.
====규칙====
+
 
#접근 권한은 누적된다.
+
;규칙
#파일에 대한 접근 권한이 디렉터리에 대한 접근 권한보다 우선적으로 한다.
+
*접근 권한은 누적된다.  
#'허용'보다 '거부'를 먼저 우선한다.<ref>〈[https://terms.naver.com/entry.naver?docId=3431857&cid=58437&categoryId=58437 운영체제의 권한 관리]〉, 《네이버 지식백과》 </ref>
+
*파일에 대한 접근 권한이 디렉터리에 대한 접근 권한보다 우선적으로 한다.  
===유닉스의 권한 권리===
+
*'허용'보다 '거부'를 먼저 우선한다.<ref name="운영체제 관리">〈[https://terms.naver.com/entry.naver?docId=3431857&cid=58437&categoryId=58437 운영체제의 권한 관리]〉, 《네이버 지식백과》 </ref>
#유닉스에서는 파일, 디렉터리의 소유자, 그룹, 사용자에 대한 권한으로 구분해서 부여할 수 있다. 그리고 읽기(r: read), 쓰기(w: write), 실행(x: execute)과 같은 세 가지 권한을 부여한다.
+
 
#권한은 숫자로 표기가 가능하다.
+
====유닉스====
#다음의 그림과 같이 네 부분으로 세분화할 수 있다.
+
[[유닉스]]에서는 파일, 디렉터리의 소유자, 그룹, 사용자에 대한 권한으로 구분해서 부여할 수 있다. 그리고 읽기(r: read), 쓰기(w: write), 실행(x: execute)과 같은 세 가지 권한을 부여하는 것이다. 권한은 숫자로 표기 가능하다. 다음의 식과 같이 네 부분으로 세분화할 수 있다.
[[파일:Ka27 46 i3.jpg|300|썸네일|유닉스식 에시]]
+
 
====종류====
+
drw-r-xr-x 117 root root 12288 Jul 28 06:42 etc
#a.- 표시는 일반 파일, d 표시는 디렉터리, l 표시는 링크(Link)
+
 
#b.파일 및 디렉터리 소유자의 권한을 나타낸다.
+
#a. - 표시는 일반 파일, d 표시는 디렉터리, l 표시는 링크(Link)  
#c.파일 및 디렉터리 그룹의 권한을 나타낸다.
+
#b. 파일 및 디렉터리 소유자의 권한을 나타낸다.  
#d.해당 파일 및 디렉터리의 소유자도 그룹도 아닌 제3의 사용자에 대한 권한을 나타낸다.
+
#c. 파일 및 디렉터리 그룹의 권한을 나타낸다.  
 +
#d. 해당 파일 및 디렉터리의 소유자도 그룹도 아닌 제 3의 사용자에 대한 권한을 나타낸다.<ref name="운영체제 관리"></ref>
 +
 
 +
===응용 프로그램===
 +
[[응용 프로그램]]의 경우 응용 프로그램 내의 권한도 중요하지만, 응용 프로그램 자체의 실행 권한이 더 중요하다. 모든 응용 프로그램은 운영체제에 존재하는 어떤 한 [[계정]]에 의해 실행되는데, 응용 프로그램은 자신을 실행한 계정의 권한을 물려받게 되므로 응용 프로그램이 보안상에 문제가 있는 취약한 프로그램일 때 해당 프로그램을 실행한 계정의 권한이 악용되는 문제가 발생할 수가 있다. 응용 프로그램에 보안상 취약점이 있을 경우 [[공격자]]는 이 취약점을 통해 해당 프로세스의 권한을 얻을 수 있기 때문이다. 예를 들어 [[아파치 웹서버]](Apache Web Server) 서비스가 [[root]] 권한으로 실행되는 경우, 혹은 웹 취약점에 의해 공격자가 root의 권한을 획득하는 경우가 있다. 따라서 윈도우 IIS에서는 그 실행 프로세스 권한을 별도로 만들어 사용하도록 하며, 유닉스에서는 nobody와 같이 제한된 계정 권한을 사용하도록 하고 있는 것이다.<ref>〈[https://terms.naver.com/entry.naver?docId=3431859&cid=58437&categoryId=58437 응용 프로그램의 권한 관리]〉, 《네이버 지식백과》 </ref>
 +
 
 +
===사용자 인터페이스 권한 격리===
 +
[[사용자 인터페이스 권한 격리]](User Interface Privilege Isolation; UIPI)는 코드 주입 보안 결함에 대응하기 위해 [[윈도우 비스타]](Windows Vista)에 도입된 기능이며 [[신뢰 등급]](MIC: Mandatory Integrity Control)을 확인하여 상대적으로 낮은 신뢰 등급을 가진 프로세스가 높은 신뢰 등급을 가진 프로세스에 메시지를 보내는 것을 제한한다. 사용자 인터페이스 메시지 중 매우 한정된 것은 가능하다. 윈도 메시지는 사용자의 행동과 프로세스가 통신하기 위한 목적으로 설계되었다. 하지만 수신 프로세스가 자신의 임의의 코드를 수행함으로써 악의적으로 결함을 일으키는 데에 이용될 수 있으므로 만약 낮은 신뢰 등급을 가진 프로세스가 높은 신뢰 등급을 가진 프로세스의 코드를 실행할 수 있다면 이를 통해 허가받지 않은 등급 상승이 가능하여 보안 제한을 회피하는 공격을 할 수 있는 기능이 있다. 사용자 인터페이스 권한 격리는 결함을 유발하기 위한 특정 영역 접근에 제한을 둠으로써 그러한 종류의 보안 회피 공격을 줄일 수 있다. 사용자 인터페이스 권한 격리는 보안 경계가 아니며, 모든 종류의 보안 회피 공격을 방어하지 못한다. 사용자 인터페이스 접근성 응용 프로그램은 자신의 [[매니페스트 파일]]에 포함된 'uiAccess'의 값을 'TRUE'로 함으로써 사용자 인터페이스 권한 격리를 우회할 수 있다. 이를 위해서는 응용 프로그램이 'Program Files'나 'Windows 디렉터리'에 존재해야 하고, 또한 인증된 코드 사인 기관에서 발행한 사인이 되어 있어야 하지만, 이러한 요구 사항이 악성 코드가 관여하는 것을 필연적으로 방지하지는 못한다. 또한, WM_KEYDOWN과 같은 몇몇 메시지는 여전히 허용되는데, 이 메시지는 낮은 신뢰 등급 프로세스가 입력을 권한이 상승된 명령 프롬프트로 전달하는 데에 필요하다. 마지막으로 ChangeWindowMessageFilter 명령어를 통해 높은 신뢰 등급 프로세스가 상대적으로 낮은 신뢰 등급 프로세스가 생성한 메시지를 받을 수 있도록 중간 신뢰 등급 프로세스(인터넷 익스플로러 보호 모드를 제외한 모든 비상승 프로세스)의 메시지를 변환할 수 있다. 이로써 인터넷 익스플로러 또는 그 자식 프로세스가 아닌 한 UIPI를 효과적으로 우회할 수 있는 것이다.<ref>〈[https://ko.wikipedia.org/wiki/%EC%82%AC%EC%9A%A9%EC%9E%90_%EC%9D%B8%ED%84%B0%ED%8E%98%EC%9D%B4%EC%8A%A4_%EA%B6%8C%ED%95%9C_%EA%B2%A9%EB%A6%AC 사용자 인터페이스 권한 격리]〉, 《위키백과》 </ref>
 +
 
 +
== 관련 용어 ==
 +
*'''정보 권한 관리'''(Information Rights Management) : 정보 문서 또는 전자 메일 메시지에 액세스하고 이용할 수 있는 사람을 지정하고, 인증받지 않은 사용자가 이런 디지털 지적 자산을 인쇄, 전달, 복사하는 것을 차단하여, [[디지털 지적 자산]] 이 무단으로 이용되지 않도록 관리해 주는 것이다.<ref>〈[https://terms.naver.com/entry.naver?docId=863989&cid=42346&categoryId=42346 정보 권한 관리]〉, 《네이버 지식백과》 </ref>
 +
*'''데이터베이스 권한'''(database) : 사용자가 특정 테이블에 접근할 수 있도록 하거나 해당 테이블에 [[에스큐엘]](SQL), [[데이터 정의어]](DDL), [[데이터 조작어]](DML),[[데이터 제어어]](DCL)를 사용할 수 있도록 제한을 두는 것이다.<ref name="데이터베이스의 권한 관리">〈[https://terms.naver.com/entry.naver?docId=3431858&cid=58437&categoryId=58437 데이터베이스의 권한 관리]〉, 《네이버 지식백과》 </ref>
 +
*'''권한 관리 정보'''(Right Management Information) : [[저작권]] 분야에 널리 사용되는 정보이며 [[저작물]] 식별을 위한 정보, 저작권자 등의 권리 관계자 또는 저작물 등의 이용 방법과 조건에 관한 정보 등의 [[권리관계]]를 표현한 [[메타데이터]]이다.<ref>〈[https://terms.naver.com/entry.naver?docId=2038528&cid=42386&categoryId=42386 권한관리정보]〉, 《네이버 지식백과》 </ref>
 +
*'''최소 권한''' : 사용자 또는 프로세서는 특정 임무를 수행하는 데 필요한 최소한의 제한적인 권한만을 할당받아야 하고, 이들 권한은 특정 임무를 수행하는 동안에만 할당되어야 한다는 [[정보 보호 원칙]]을 따른다. 이러한 최소 권한 법칙은 시스템 공격이나 사고에 의한 시스템의 위협으로부터 피해를 감소할 수 있도록 하는 조치이다.<ref>〈[https://terms.naver.com/entry.naver?docId=854023&cid=50371&categoryId=50371 최소 권한]〉, 《네이버 지식백과》 </ref>
 +
*'''접근 권한'''(access right) : 특정 이용자, 프로그램, 프로세스 또는 컴퓨터 네트워크 안의 컴퓨터 시스템에만 허용된 접근할 수 있는 권한을 말한다. 즉, 어떤 데이터 또는 프로그램을 참조하고, 그것을 특정 형태로 이용하는 것을 이용자에게 인정한 권한이다. 접근 권한의 내용은 데이터 항목(파일이나 레코드), 특정란의 판독(read), 새로운 항목의 추가(append)나 현 항목의 변경(modify) 등에 의한 기록(write), 항목의 삭제(delete) 등의 조작을 총칭하는 개념이다.<ref>〈[https://terms.naver.com/entry.naver?docId=814523&cid=42344&categoryId=42344 접근 권한]〉,《네이버 지식백과》 </ref>
 +
*'''접속 권한'''(access privileges) : 어느 [[사이트]] 또는 컴퓨터의 접근 및 접속에 대한 권한을 나타내는 용어이다.<ref>〈[https://terms.naver.com/entry.naver?docId=814520&cid=50376&categoryId=50376 접속 권한]〉,《네이버 지식백과》 </ref>
 +
*'''데이터베이스 관리자 권한''' : 권한을 가진 자가 다른 사용자에게 연산을 포함하여 특권에 속하는 [[데이터베이스 관리자]](DBA) 권한 자체까지도 허가하는 시스템에서 어떤 유효한 연산도 수행할 수 있도록 허용하는 것이다.<ref>〈[https://terms.naver.com/entry.naver?docId=820083&cid=50376&categoryId=50376 DBA 권한]〉, 《네이버 지식백과》 </ref>
 +
*'''권한 부여 그래프'''(authorization graph) : 한 사용자로부터 다른 사용자에게로 권한이 양도되는 것을 나타내는 [[그래프]]이다. 사용자를 [[노드]](node)로 나타내며, 한 사용자 A가 다른 사용자 B에게 권한을 주었을 때 A에서 B로 연결선을 긋는 것을 나타낸다.<ref>〈[https://terms.naver.com/entry.naver?docId=815651&cid=50376&categoryId=50376 권한 부여 그래프]〉, 《네이버 지식백과》 </ref>
 +
*'''거래 권한 생성 언어'''(Transaction Authority Markup Language) : [[XML]] [[웹 서비스]]상에서 온라인 거래의 협력과 처리를 가능하게 하는 산업체 개방 표준. 비즈니스 레벨의 거래에 사용되는 메시지 형식과 거래 모델을 정의하며 다중 거래 참여가 가능하고, 웹 상에서 프로세스를 공유함으로써 상호 운용성을 발휘하여 새로운 영역의 비즈니스 접속을 가능하게 권한을 주도록 하는 언어이다.<ref>〈[https://terms.naver.com/entry.naver?docId=855256&cid=42346&categoryId=42346 거래 권한 생성 언어]〉, 《네이버 지식백과》 </ref>
 +
 
 
{{각주}}
 
{{각주}}
  
116번째 줄: 74번째 줄:
 
* 〈[https://terms.naver.com/entry.naver?docId=815653&cid=50376&categoryId=50376 권한 부여 행렬]〉, 《네이버 지식백과》
 
* 〈[https://terms.naver.com/entry.naver?docId=815653&cid=50376&categoryId=50376 권한 부여 행렬]〉, 《네이버 지식백과》
 
* 〈[https://terms.naver.com/entry.naver?docId=815649&cid=50376&categoryId=50376 권한 부여 검사]〉, 《네이버 지식백과》
 
* 〈[https://terms.naver.com/entry.naver?docId=815649&cid=50376&categoryId=50376 권한 부여 검사]〉, 《네이버 지식백과》
* 〈[https://terms.naver.com/entry.naver?docId=1613751&cid=50372&categoryId=50372 시스템 관리자]〉, 《네이버 지식백과》
 
 
* 〈[https://terms.naver.com/entry.naver?docId=815046&cid=50376&categoryId=50376 권한 확대]〉, 《네이버 지식백과》
 
* 〈[https://terms.naver.com/entry.naver?docId=815046&cid=50376&categoryId=50376 권한 확대]〉, 《네이버 지식백과》
* 〈[https://terms.naver.com/entry.naver?docId=3431294&cid=58430&categoryId=58430 권한의 취소]〉, 《네이버 지식백과》
 
 
* 〈[https://terms.naver.com/entry.naver?docId=3431292&cid=58430&categoryId=58430 권한 관리의 개념]〉, 《네이버 지식백과》
 
* 〈[https://terms.naver.com/entry.naver?docId=3431292&cid=58430&categoryId=58430 권한 관리의 개념]〉, 《네이버 지식백과》
 
* 〈[https://terms.naver.com/entry.naver?docId=3431858&cid=58437&categoryId=58437 데이터베이스의 권한 관리]〉, 《네이버 지식백과》
 
* 〈[https://terms.naver.com/entry.naver?docId=3431858&cid=58437&categoryId=58437 데이터베이스의 권한 관리]〉, 《네이버 지식백과》
* 〈[https://terms.naver.com/entry.naver?docId=815046&cid=50376&categoryId=50376 권한 확대]〉, 《네이버 지식백과》
 
* 〈[https://terms.naver.com/entry.naver?docId=3431219&cid=58430&categoryId=58430 데이터베이스 언어 SQL 요약]〉, 《네이버 지식백과》
 
 
* 〈[https://terms.naver.com/entry.naver?docId=814523&cid=42344&categoryId=42344 접근 권한]〉, 《네이버 지식백과》
 
* 〈[https://terms.naver.com/entry.naver?docId=814523&cid=42344&categoryId=42344 접근 권한]〉, 《네이버 지식백과》
 
* 〈[https://terms.naver.com/entry.naver?docId=814520&cid=50376&categoryId=50376 접속 권한]〉, 《네이버 지식백과》
 
* 〈[https://terms.naver.com/entry.naver?docId=814520&cid=50376&categoryId=50376 접속 권한]〉, 《네이버 지식백과》
130번째 줄: 84번째 줄:
 
* 〈[https://terms.naver.com/entry.naver?docId=3431859&cid=58437&categoryId=58437 응용 프로그램의 권한 관리]〉, 《네이버 지식백과》
 
* 〈[https://terms.naver.com/entry.naver?docId=3431859&cid=58437&categoryId=58437 응용 프로그램의 권한 관리]〉, 《네이버 지식백과》
 
* 〈[https://terms.naver.com/entry.naver?docId=855256&cid=42346&categoryId=42346 거래 권한 생성 언어]〉, 《네이버 지식백과》
 
* 〈[https://terms.naver.com/entry.naver?docId=855256&cid=42346&categoryId=42346 거래 권한 생성 언어]〉, 《네이버 지식백과》
* 〈[https://terms.naver.com/entry.naver?docId=3431292&cid=58430&categoryId=58430 권한 관리의 개념]〉, 《네이버 지식백과》
 
 
* 〈[https://terms.naver.com/entry.naver?docId=842544&cid=42346&categoryId=42346 권한 관리 기반 구조]〉, 《네이버 지식백과》
 
* 〈[https://terms.naver.com/entry.naver?docId=842544&cid=42346&categoryId=42346 권한 관리 기반 구조]〉, 《네이버 지식백과》
 
* 〈[https://terms.naver.com/entry.naver?docId=863989&cid=42346&categoryId=42346 정보 권한 관리]〉, 《네이버 지식백과》
 
* 〈[https://terms.naver.com/entry.naver?docId=863989&cid=42346&categoryId=42346 정보 권한 관리]〉, 《네이버 지식백과》
137번째 줄: 90번째 줄:
 
* 〈[https://terms.naver.com/entry.naver?docId=854023&cid=50371&categoryId=50371 최소 권한]〉, 《네이버 지식백과》
 
* 〈[https://terms.naver.com/entry.naver?docId=854023&cid=50371&categoryId=50371 최소 권한]〉, 《네이버 지식백과》
 
* 〈[https://terms.naver.com/entry.naver?docId=3431857&cid=58437&categoryId=58437 운영체제의 권한 관리]〉, 《네이버 지식백과》
 
* 〈[https://terms.naver.com/entry.naver?docId=3431857&cid=58437&categoryId=58437 운영체제의 권한 관리]〉, 《네이버 지식백과》
 +
* 〈[https://ko.wikipedia.org/wiki/%EC%82%AC%EC%9A%A9%EC%9E%90_%EC%9D%B8%ED%84%B0%ED%8E%98%EC%9D%B4%EC%8A%A4_%EA%B6%8C%ED%95%9C_%EA%B2%A9%EB%A6%AC 사용자 인터페이스 권한 격리]〉, 《위키백과》
 +
* 〈[https://terms.naver.com/entry.naver?docId=2038528&cid=42386&categoryId=42386 권한관리정보]〉, 《네이버 지식백과》
 +
* 〈[https://ko.wikipedia.org/wiki/%EA%B6%8C%ED%95%9C_%ED%99%95%EB%8C%80 권한 확대]〉, 《위키백과》
 +
 
==같이 보기==
 
==같이 보기==
 +
{{다단3|
 
* [[권리]]
 
* [[권리]]
 
* [[책임]]
 
* [[책임]]
151번째 줄: 109번째 줄:
 
* [[분산]]
 
* [[분산]]
 
* [[사용자]]
 
* [[사용자]]
 +
|
 
* [[소프트웨어 애플리케이션]]
 
* [[소프트웨어 애플리케이션]]
 
* [[익스플로잇]]
 
* [[익스플로잇]]
166번째 줄: 125번째 줄:
 
* [[공개 키 기반 구조]]
 
* [[공개 키 기반 구조]]
 
* [[디지털 지적 자산]]
 
* [[디지털 지적 자산]]
 +
|
 
* [[갱신]]
 
* [[갱신]]
 
* [[계정 관리]]
 
* [[계정 관리]]
 
* [[정보 보호 원칙]]
 
* [[정보 보호 원칙]]
{{보안|추가 필요}}
+
* [[윈도우 비스타]]
 +
* [[신뢰 등급]]
 +
* [[UIPI]]
 +
* [[매니페스트 파일]]
 +
* [[z/OS]]
 +
* [[z/VM]]
 +
* [[개별화 기능]]
 +
* [[경영진 정보 시스템]]
 +
* [[공급 사슬 관리]]
 +
* [[기업 자원 관리]]
 +
* [[기계적인 환경]]
 +
* [[인간 환경]]
 +
* [[저작물]]
 +
* [[권리관계]]
 +
}}
 +
 
 +
{{보안|검토 필요}}
 +
{{정치}}

2022년 7월 19일 (화) 21:24 기준 최신판

권한(權限, permission)은 사용자, 프로그램, 프로세스에 사용자 인증 절차를 통해 신원이 확인된 사용자에게 시스템이나 네트워크의 자원에 접근할 권리를 부여하는 것을 말한다. 시스템의 접근통제보다 우선한다.

개요[편집]

권한은 권리와 유사하지만, 권리는 자신을 위하여 가지는 법률상의 이익인 점에 대하여 권한은 타인을 위하여 법률 효과를 발생시킬 수 있는 일정한 지위 또는 자격(資格, qualification)이라는 것과 다르다. 범위는 당사자의 의사와 법률관계의 명확성과 안정성을 도모하기 위하여 그 범위를 법률로써 정하고 있는 경우가 많다. 따라서 권한은 여러 분야에서 쓰는 용어이다.[1] 정보 보안 분야에서 권한은 데이터나 프로그램 등의 특정한 자원 또는 시분할 시스템 등의 시스템 서비스에 접근할 수 있는 권리가 주어지는 것을 말한다.[2] 예를 들어 데이터베이스에서는 보안을 유지하기 위해 계정이 발급된 사용자가 로그인에 성공했을 경우에만 데이터베이스에 접근이 가능하도록 하는 접근 제어(access control) 기능을 기본으로 제공하는 개념으로 쓰인다.[3] 또한 이 권한은 디스크 상의 파일들을 읽고, 쓰고, 지우고, 갱신하며, 수행시키는 것에 대하여 사용자에 따라서 나오는 특권을 의미한다.[4] 권한은 무분별한 권한 확대를 막기 위해 주어진다. 만약 사용자가 받지 않은 권한을 받게 되면 악의적으로 접근하는 사용자가 많아지고, 보안 영역이 취약해지는 결과가 오기 때문이다.[5]

권한 관리 기반 구조[편집]

권한 관리 기반 구조(privilege management infrastructure , 權限管理基盤構造)는 기업 및 기관 단위에서 사용자들에게 특정 시스템 및 애플리케이션에 접근할 수 있는 권한을 차등 부여해 주는 권한 관리 체계를 뜻하며, 공개 키 기반 구조(PKI)의 사용자 신원 확인 중심의 보안 체계를 보완해 주고 인증 소유자의 특정 권한을 체계적으로 정립해 줌으로써 각 조직에서의 전산 시스템 확장에 따른 시스템 통합 요구에 효과적으로 PKI를 적용시킬 수 있도록 하는 것이다.[6]

부여 및 확대[편집]

권한 확대(privilege escalation)는 보통 애플리케이션이나 사용자에 대해 보호되는 자원들에 대한 상승된 접근을 얻기 위해서 운영체제소프트웨어 애플리케이션에서 버그나 설계 결함, 또는 설정을 익스플로잇하는 행동을 말한다. 이것에 의한 결과는 애플리케이션이 개발자시스템 관리자가 의도한 것보다 높은 수준의 권한을 얻어서 비허가 행동을 할 수 있게 되는 것이다.[5] 추상 데이터형의 표현 변수에 대한 접근을 구현된 프로시저에게 허용된다.[7] 분산 권한 부여는 여러 관리자에게 권한 부여 기능이 분산되어 있는 것이다.[8] 그 중 권한 부여 행렬은 데이터 베이스의 보안을 유지하기 위해 시스템에 유지되는 테이블로서 각 사용자에 대해 이 사용자가 접근할 수 있는 객체와 이 객체에 대해 수행할 수 있는 연산 등을 나타내며 행렬의 각 행은 사용자를 나타내고, 내용은 허용되는 연산 권한을 나타낸다.[9] 권한 부여 규정은 데이터 베이스에 대한 사용자의 사용 가능 범위를 나타낸다. 또한 각 사용자가 접근할 수 있는 데이터 객체와 이에 대해 수행할 수 있는 연산의 종류를 명시한다.[10] 권한 부여 검사를 통해 사용자가 현재 요구하고 있는 트랜잭션에 대해 그 사용자가 요구할 자격을 검사할 수 있다.[11]

수직 권한 확대[편집]

수직 권한 확대는 사용자나 프로세스가 시스템 개발자나 관리자가 의도한 것보다 높은 접근 수준을 가질 때 발생한다, 커널(Kernel) 수준 동작을 수행함으로써 가능해질 수 있다. 예를 들어 어떤 경우에 높은 권한의 애플리케이션은 인터페이스에 명시된 것과 일치하는 입력이 제공된다고 가정하면, 입력을 확인하지 않는다 이에 공격자는 이 가정을 익스플로잇하여 비인가된 코드를 애플리케이션의 권한으로 실행하는 것이다.[5]

수평 권한 확대[편집]

수평 권한 확대는 애플리케이션이 공격자가 애플리케이션이나 사용자에게 보호되고 있는 자원에 접근할 수 있게 허락할 때 발생한다. 이것의 결과는 애플리케이션 개발자나 시스템 관리자가 의도한 것과 같은 역할을 가지지만 다른 보안 문맥을 수행하게 된다. 이것은 효과적으로 제한적인 권한 확대의 형태이다.[5]

권한 수준[편집]

권한 수준(privilege level)은 프로세서에서 현재 돌아가고 있는 프로그램의 자원인 메모리 영역, 입출력 포트, 특별한 명령어 등에 대한 접근을 제어하는 것이며, 4가지 권한 수준이 존재하는 가운데 가장 높은 권한인 0부터 가장 낮은 권한인 3까지 있다. 운영체제는 커널을 위해 레벨 0을 사용하고 애플리케이션 프로그램을 위해 레벨 3을 사용한다. 레벨 n에서 사용할 수 있는 어느 자원도 레벨 n 이상부터 레벨 0까지에서도 사용할 수 있으며, 그래서 권한 수준들을 보호 링이라고 한다. 낮은 권한의 프로세스가 높은 권한의 프로세스에 접근하려고 할 때 일반 보호 장애(GPF : General Protection Fault)가 운영체제에 의해 발생하게 된다.[12]

권한 설정[편집]

권한 설정(provisioning , 權限設定)은 이용자에게 계정, 계정 접근 권한, 계정 관련 권한, 계정 관리에 필요한 제반 자원을 제공하는 서비스 설정 과정이다. 이용자 측면에서 볼 때 하나의 서비스 형태로서, 통신 사업자가 이용자 회선을 적절한 네트워크에 연결하기 위해 프로그램에 의해 자동 설정하는 것과, 이용자가 웹 기반 인터페이스나 다른 클라이언트 인터페이스로부터 자기가 원하는 서비스를 설정하는 것들이 있다.[13]

활용[편집]

운영체제[편집]

윈도우[편집]

NTFS에서 그룹 또는 개별 사용자에 대해 설정할 수 있는 권한은 6가지이다.

  • 모든 권한 : 디렉터리에 대한 접근 권한과 소유권을 변경이 가능하고, 하위에 있는 디렉터리와 파일을 삭제 가능한 것이다.
  • 수정 : 디렉터리를 삭제할 수 있고 읽기 및 실행과 쓰기 권한이 주어진 것과 같은 효과를 주는 것이다.
  • 읽기 및 실행 : 읽기를 수행할 수 있고 디렉터리나 파일을 옮길 수 있는 것이다.
  • 디렉터리 내용 보기 : 디렉터리 내의 파일과 디렉터리의 이름을 조회할 수 있는 것이다.
  • 읽기 : 디렉터리의 내용을 읽기만 가능한 것이다.
  • 쓰기 : 해당 디렉터리에 하위 디렉터리, 파일을 생성할 수 있고 소유권과 접근 권한의 설정 내용을 확인할 수 있는 것이다.
규칙
  • 접근 권한은 누적된다.
  • 파일에 대한 접근 권한이 디렉터리에 대한 접근 권한보다 우선적으로 한다.
  • '허용'보다 '거부'를 먼저 우선한다.[14]

유닉스[편집]

유닉스에서는 파일, 디렉터리의 소유자, 그룹, 사용자에 대한 권한으로 구분해서 부여할 수 있다. 그리고 읽기(r: read), 쓰기(w: write), 실행(x: execute)과 같은 세 가지 권한을 부여하는 것이다. 권한은 숫자로 표기 가능하다. 다음의 식과 같이 네 부분으로 세분화할 수 있다.

drw-r-xr-x 117 root root 12288 Jul 28 06:42 etc
  1. a. - 표시는 일반 파일, d 표시는 디렉터리, l 표시는 링크(Link)
  2. b. 파일 및 디렉터리 소유자의 권한을 나타낸다.
  3. c. 파일 및 디렉터리 그룹의 권한을 나타낸다.
  4. d. 해당 파일 및 디렉터리의 소유자도 그룹도 아닌 제 3의 사용자에 대한 권한을 나타낸다.[14]

응용 프로그램[편집]

응용 프로그램의 경우 응용 프로그램 내의 권한도 중요하지만, 응용 프로그램 자체의 실행 권한이 더 중요하다. 모든 응용 프로그램은 운영체제에 존재하는 어떤 한 계정에 의해 실행되는데, 응용 프로그램은 자신을 실행한 계정의 권한을 물려받게 되므로 응용 프로그램이 보안상에 문제가 있는 취약한 프로그램일 때 해당 프로그램을 실행한 계정의 권한이 악용되는 문제가 발생할 수가 있다. 응용 프로그램에 보안상 취약점이 있을 경우 공격자는 이 취약점을 통해 해당 프로세스의 권한을 얻을 수 있기 때문이다. 예를 들어 아파치 웹서버(Apache Web Server) 서비스가 root 권한으로 실행되는 경우, 혹은 웹 취약점에 의해 공격자가 root의 권한을 획득하는 경우가 있다. 따라서 윈도우 IIS에서는 그 실행 프로세스 권한을 별도로 만들어 사용하도록 하며, 유닉스에서는 nobody와 같이 제한된 계정 권한을 사용하도록 하고 있는 것이다.[15]

사용자 인터페이스 권한 격리[편집]

사용자 인터페이스 권한 격리(User Interface Privilege Isolation; UIPI)는 코드 주입 보안 결함에 대응하기 위해 윈도우 비스타(Windows Vista)에 도입된 기능이며 신뢰 등급(MIC: Mandatory Integrity Control)을 확인하여 상대적으로 낮은 신뢰 등급을 가진 프로세스가 높은 신뢰 등급을 가진 프로세스에 메시지를 보내는 것을 제한한다. 사용자 인터페이스 메시지 중 매우 한정된 것은 가능하다. 윈도 메시지는 사용자의 행동과 프로세스가 통신하기 위한 목적으로 설계되었다. 하지만 수신 프로세스가 자신의 임의의 코드를 수행함으로써 악의적으로 결함을 일으키는 데에 이용될 수 있으므로 만약 낮은 신뢰 등급을 가진 프로세스가 높은 신뢰 등급을 가진 프로세스의 코드를 실행할 수 있다면 이를 통해 허가받지 않은 등급 상승이 가능하여 보안 제한을 회피하는 공격을 할 수 있는 기능이 있다. 사용자 인터페이스 권한 격리는 결함을 유발하기 위한 특정 영역 접근에 제한을 둠으로써 그러한 종류의 보안 회피 공격을 줄일 수 있다. 사용자 인터페이스 권한 격리는 보안 경계가 아니며, 모든 종류의 보안 회피 공격을 방어하지 못한다. 사용자 인터페이스 접근성 응용 프로그램은 자신의 매니페스트 파일에 포함된 'uiAccess'의 값을 'TRUE'로 함으로써 사용자 인터페이스 권한 격리를 우회할 수 있다. 이를 위해서는 응용 프로그램이 'Program Files'나 'Windows 디렉터리'에 존재해야 하고, 또한 인증된 코드 사인 기관에서 발행한 사인이 되어 있어야 하지만, 이러한 요구 사항이 악성 코드가 관여하는 것을 필연적으로 방지하지는 못한다. 또한, WM_KEYDOWN과 같은 몇몇 메시지는 여전히 허용되는데, 이 메시지는 낮은 신뢰 등급 프로세스가 입력을 권한이 상승된 명령 프롬프트로 전달하는 데에 필요하다. 마지막으로 ChangeWindowMessageFilter 명령어를 통해 높은 신뢰 등급 프로세스가 상대적으로 낮은 신뢰 등급 프로세스가 생성한 메시지를 받을 수 있도록 중간 신뢰 등급 프로세스(인터넷 익스플로러 보호 모드를 제외한 모든 비상승 프로세스)의 메시지를 변환할 수 있다. 이로써 인터넷 익스플로러 또는 그 자식 프로세스가 아닌 한 UIPI를 효과적으로 우회할 수 있는 것이다.[16]

관련 용어[편집]

  • 정보 권한 관리(Information Rights Management) : 정보 문서 또는 전자 메일 메시지에 액세스하고 이용할 수 있는 사람을 지정하고, 인증받지 않은 사용자가 이런 디지털 지적 자산을 인쇄, 전달, 복사하는 것을 차단하여, 디지털 지적 자산 이 무단으로 이용되지 않도록 관리해 주는 것이다.[17]
  • 데이터베이스 권한(database) : 사용자가 특정 테이블에 접근할 수 있도록 하거나 해당 테이블에 에스큐엘(SQL), 데이터 정의어(DDL), 데이터 조작어(DML),데이터 제어어(DCL)를 사용할 수 있도록 제한을 두는 것이다.[18]
  • 권한 관리 정보(Right Management Information) : 저작권 분야에 널리 사용되는 정보이며 저작물 식별을 위한 정보, 저작권자 등의 권리 관계자 또는 저작물 등의 이용 방법과 조건에 관한 정보 등의 권리관계를 표현한 메타데이터이다.[19]
  • 최소 권한 : 사용자 또는 프로세서는 특정 임무를 수행하는 데 필요한 최소한의 제한적인 권한만을 할당받아야 하고, 이들 권한은 특정 임무를 수행하는 동안에만 할당되어야 한다는 정보 보호 원칙을 따른다. 이러한 최소 권한 법칙은 시스템 공격이나 사고에 의한 시스템의 위협으로부터 피해를 감소할 수 있도록 하는 조치이다.[20]
  • 접근 권한(access right) : 특정 이용자, 프로그램, 프로세스 또는 컴퓨터 네트워크 안의 컴퓨터 시스템에만 허용된 접근할 수 있는 권한을 말한다. 즉, 어떤 데이터 또는 프로그램을 참조하고, 그것을 특정 형태로 이용하는 것을 이용자에게 인정한 권한이다. 접근 권한의 내용은 데이터 항목(파일이나 레코드), 특정란의 판독(read), 새로운 항목의 추가(append)나 현 항목의 변경(modify) 등에 의한 기록(write), 항목의 삭제(delete) 등의 조작을 총칭하는 개념이다.[21]
  • 접속 권한(access privileges) : 어느 사이트 또는 컴퓨터의 접근 및 접속에 대한 권한을 나타내는 용어이다.[22]
  • 데이터베이스 관리자 권한 : 권한을 가진 자가 다른 사용자에게 연산을 포함하여 특권에 속하는 데이터베이스 관리자(DBA) 권한 자체까지도 허가하는 시스템에서 어떤 유효한 연산도 수행할 수 있도록 허용하는 것이다.[23]
  • 권한 부여 그래프(authorization graph) : 한 사용자로부터 다른 사용자에게로 권한이 양도되는 것을 나타내는 그래프이다. 사용자를 노드(node)로 나타내며, 한 사용자 A가 다른 사용자 B에게 권한을 주었을 때 A에서 B로 연결선을 긋는 것을 나타낸다.[24]
  • 거래 권한 생성 언어(Transaction Authority Markup Language) : XML 웹 서비스상에서 온라인 거래의 협력과 처리를 가능하게 하는 산업체 개방 표준. 비즈니스 레벨의 거래에 사용되는 메시지 형식과 거래 모델을 정의하며 다중 거래 참여가 가능하고, 웹 상에서 프로세스를 공유함으로써 상호 운용성을 발휘하여 새로운 영역의 비즈니스 접속을 가능하게 권한을 주도록 하는 언어이다.[25]

각주[편집]

  1. 권한〉, 《네이버 지식백과》
  2. 권한 부여〉, 《네이버 지식백과》
  3. 권한 관리의 개념〉, 《네이버 지식백과》
  4. Privilege〉, 《네이버 지식백과》
  5. 5.0 5.1 5.2 5.3 권한 확대〉, 《위키백과》
  6. 권한 관리 기반 구조〉, 《네이버 지식백과》
  7. 권한 확대〉, 《네이버 지식백과》
  8. 분산 권한 부여〉, 《네이버 지식백과》
  9. 권한 부여 행렬〉, 《네이버 지식백과》
  10. 권한 부여 규정〉, 《네이버 지식백과》
  11. 권한 부여 검사〉, 《네이버 지식백과》
  12. 권한 수준〉, 《위키백과》
  13. 권한 설정〉, 《네이버 지식백과》
  14. 14.0 14.1 운영체제의 권한 관리〉, 《네이버 지식백과》
  15. 응용 프로그램의 권한 관리〉, 《네이버 지식백과》
  16. 사용자 인터페이스 권한 격리〉, 《위키백과》
  17. 정보 권한 관리〉, 《네이버 지식백과》
  18. 데이터베이스의 권한 관리〉, 《네이버 지식백과》
  19. 권한관리정보〉, 《네이버 지식백과》
  20. 최소 권한〉, 《네이버 지식백과》
  21. 접근 권한〉,《네이버 지식백과》
  22. 접속 권한〉,《네이버 지식백과》
  23. DBA 권한〉, 《네이버 지식백과》
  24. 권한 부여 그래프〉, 《네이버 지식백과》
  25. 거래 권한 생성 언어〉, 《네이버 지식백과》

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 권한 문서는 보안에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.