IT Japan

액세스 제어 목록 ACL 본문

IT/Windows

액세스 제어 목록 ACL

swhwang 2016. 7. 29. 14:58
반응형

Windows OS의 관리 업무에서 반드시 보는 것이다 "ACL (액세스 제어 목록)" 그 기본은 "누구" "무엇을 할 수 있는지 '라는 설정의 모음이다. ACL 개요, 구성 상속의 의미 등에 대해 해설한다.


액세스 제어 및 액세스 제어 목록 ACL

"액세스 제어 (Access Control)"란 시스템의 보안을 보장하기 위해 사용되는 하나의 수단이다. 시스템에 다양한 오브젝트 (자원)가 존재하고 그것에 액세스하려고하는 주체 (사용자 및 그룹, 서비스 등)도 또한 다양하다. 당연한 것이지만, 어느 주체도 자유롭게 모든 개체에 액세스 할 수 있도록이 보안을 유지할 수없는 (일반 사용자가 시스템 중심의 객체를 변경 · 삭제되면 곤란 것이다). 따라서 대상 객체에 액세스 할 수있는 권한을 가지고 있는지를 주체마다 판단 권한의 유무에 따라 액세스를 허용 / 거부했던 것이 필요하다. 이것을 액세스 제어한다.

Windows OS에서 액세스 제어에 이용되고있는 것이 「액세스 제어 목록 (Access Control List) "(이하 ACL)라는 액세스권 세트 (집합체)이다. ACL을 사용하여 미리 개체의 보안을 설정하는 것이 런타임에 액세스 한 사용자 계정 및 그룹 정보와 ACL을 비교하여 액세스 제어가 이루어진다.

Windows OS에서 가장 많이 눈에하는 ACL은 NTFS 파일 시스템에서 파일이나 폴더의 권한 설정 화면 것이다. 사실 파일 시스템뿐만 아니라 파일 공유 및 프린터, 레지스트리, 그룹 정책 서비스, WMI 등 ACL은 Windows OS의 다양한 장소에서 이용되고있다 (커널 내부에서도 다양한 장소에서 ACL을 사용하여 보안을 확보하고있다).


ACL의 기본적인 구조

MS-DOS 시절부터 사용되고있는 FAT 파일 시스템에서는 파일에 쓰기 금지 및 시스템 파일이라는 속성을 지정할 수 있지만, 이것은 보안을 위해 이라기보다는 잘못된 작업에서 파일을 보호하는 위한 기능에 불과했다.

좀 더 진행되고 UNIX에서는 소유자 / 소유자 (이 속하는) 그룹 / 전체 사용자의 세 가지 액세스 주체에 대해서 각각 읽기 / 쓰기 / 실행을 허용할지 여부를 설정할 수 있었지만 더 이상 복잡한 액세스 제어는 없었다 (전통적인 UNIX의 경우 현재 UNIX에서는 ACL이 지원되어있다). 예를 들어 user1에는 허가, user2는 거부 등의 액세스 제어는 설정할 수 없습니다.

Windows OS에서 사용되는 ACL은 OS의 보안 수준을 결정 지침 "TCSEC (Trusted Computer System Evaluation Criteria 현재 ISO / IEC15408)"로 정의되어 이른바 C2 레벨 보안을 실현하기 위해 준비 된 것이다. 이 보안 기준에서는 리소스에 대한 액세스를 명시 적으로 허용 된 사용자와 그룹에만 한정하여 (허용 목록은 여러 정의 가능), 권한이없는 사용자 (허용 목록에 포함되지 않은 사용자) 에서의 접근을 금지하고있다.


액세스를 허용 할 사용자와 그룹을 설명하는 항목을 ACE (액세스 제어 항목)라고 부른다. 이것을 여러 모은 것이 ACL된다. ACL은 가변 길이이며, 여러 항목을 결합하여보다 복잡한 액세스 제어를 실현할 수있다.

또한 Windows OS의 ACL은 접근을 금지하는 사용자 또는 그룹을 정의 할 수 있고,이를 사용하면 액세스하지 못하도록 사용자 또는 그룹을 정의 할 수있다. 같은 사용자가 권한과 액세스 거부의 두 항목에 포함 된 경우, 거부가 우선된다. 거부 기능을 사용하면, 예를 들어 기존 권한을 그대로 액세스하지 못하도록 사용자 또는 그룹 항목을 추가하는 것만으로 액세스 금지 할 수 있으므로 편리하다. 만약 거부 기능이없는 기존의 권한 설정에서 해당 사용자 나 그룹을 뺀 설정을 새로 작성해야하며, 작업이 매우 복잡하게된다.



ACL 관련 용어.

ACL (Access Control List 액세스 제어 목록)

개체의 액세스 제어 및 감사 등을 수행하는 기능. ACL은 DACL과 SACL의 2 종류가 있지만 일반적으로 ACL하면, DACL을 가리키는 경우가 많다.


DACL (discretionary DACL. 수의 ACL)

개체의 액세스 제어를위한 ACL. DACL에는 0 개 이상의 임의의 수의 ACE를 추가 할 수있다. DACL을 하늘이라고 아무도 개체에 액세스 할 수 없으므로 일반적으로 하나 이상의 ACE를 설정 두거나 상위에서 "상속"하도록 설정해 둔다. DACL 동안 여러 ACE가 있으면 먼저 "액세스 거부 ACE」에서 해당하는 항목이없는 있는지 알아보기, 없으면"권한 ACE "검색된다.


SACL (System ACL 시스템 ACL)

개체의 감사 등을위한 ACL.


ACE (액세스 제어 항목)

ACL의 구성 요소. 하나의 ACL은 여러 ACE를 포함 할 수있다 (0 개 가능). ACE에는 "권한 ACE"와 "액세스 거부 ACE」의 2 종류가있다. 각 ACE에는 "누구"대해 "어떤 권한"을 부여 (또는 금지)하거나 정보가 포함되어있다. 또한 ACE의 상속에 관한 속성도 정의되어있다. ACE는 예를 들어 "Everyone에 읽기 허용"또는 "user01에 대해 모든 권한을" "Group1에 대한 액세스를 거부」라는 권한 설정한다.


ACL 상속


파일 시스템 액세스 제어를 할 경우 모든 파일과 폴더에 대해 적절한 ACL을 설정하지 않으면, 모두 액세스 파일로되어 버릴 가능성이있다. 그렇다고해서 파일이나 폴더를 만들 때마다 ACL도 설정해야한다 것이 매우 복잡하다. 그래서 ACL 상속이라는 기능이 사용된다.


"ACL 상속"은 부모가되는 폴더에 ACL을 정의 해두면 그 속에 만들어지는 파일이나 폴더에 자동으로 상위 폴더의 ACL을 상속된다는 특징이다. 예를 들어 Windows 8.1의 사용자 폴더 ( "C : \ Users \ user01"등)는 기본적으로 "사용자 (user01)과 Administrators 그룹에 모든 권한"이라는 권한을 붙일 수 있으며, 사용자가이 안에 파일 나 폴더를 만들면이 ACL 설정이 인계된다. 상속 한 ACL뿐만 권한이 부족 (혹은 허용 너무)라면 특정 폴더 만 ACL을 추가로 정의 할 수도 있고 상속을 금지하고 다른 ACL을 할당 것도 가능하다.




반응형
Comments