접근통제 보안 모델
강제적 접근통제(MAC, Mandatory Access Control)
객체의 소유자가 변경할 수 없는 주체들과 객체들 간의 접근통제 관계를 정의한다.
자원의 보안 레벨(Security Level)과 사용자의 보안 취급인가(Security Clearance)를 비교하여 접근 제어한다. 이 정책은 취급인가를 가진 특정 개체가 자신의 의지로 다른 개체가 어떤 자원에 접근할 수 있게 할 수 없다는 점에서 강제적 접근 제어라 한다. 즉, 보안 관리자가 취급인가를 허용한 개체만 접근할 수 있도록 강제적으로 통제한다.
보안 레이블(Security Labels)과 보안 허가증을 비교하는 것에 기반을 두는 접근제어다.
전통적 MAC 시스템은 다중수준 보안 정책(MLP, Multilevel Security Policies)에 기반하며 이것은 서로 다른 분류 수준에 있는 데이터가 보호되는 방법을 지시한다.
+MLP : 정보가 상위 보안 수준에서 하위 보안 수준으로 흐르는 것을 방지하는 보안 정책이다. 주체의 보안 수준이 객체의 분류보다 높거나 동일한 경우에 객체의 접근이 허용된다.
주체가 객체로 접근하는데 적용되는 규칙은 보안전문가에 의해 생성되며 운영자에 의해 설정되고 운영시스템에 의해 집행되며 다른 보안기술들에 의해 지원된다.
한 주체가 한 객체를 읽고 그 내용을 다른 객체에게 복사하는 경우에 원래의 객체에 내포된 MAC 제약사항이 복사된 객체에 전파된다.
MAC 정책은 모든 주체에 대해서 일정하며 어느 하나의 주체/객체 단위로 접근제한을 설정할 수 없다. (주체가 어느 한 객체에 접근하지 못하면 그러한 비밀 등급을 갖는 모든 객체들에게 접근하는 것이 금지됨)
매우 제한적인 사용자 기능과 많은 관리적 부담을 요구하며 비용이 많이 소요된다. 군 시스템같이 특정한 목적을 위해 사용된다.
임의적 접근통제(DAC, Discretionary Access Control)
DAC는 접근 통제 매트릭스를 구현하기 위해 개발된 정책으로서 미국 국방성 TCSEC의 접근 통제 표준 중 하나로 정의되었다.
DAC는 허가된 주체(객체 소유자)에 의해 변경이 가능한 하나의 주체와 객체의 관계를 정의한다. 주체 또는 속한 그룹의 신분에 근거에 객체에 대한 접근을 제한하는 정책이다. DAC 정책은 접근을 요청하는 주체의 식별에 기초하며 임의적으로 어떤 객체에 대하여 주체가 접근권한을 추가 및 철회할 수 있다.
중앙집중화된 환경에서 제어되는 것이 아니고 사용자에게 보다 동적으로 정보에 접근할 수 있도록 해준다.
대부분의 운영체제들이 DAC에 기반한다.
한 주체가 한 객체를 읽고 내용을 다른 객체로 복사하는 경우에 처음의 객체에 내포된 접근통제 정보가 복사된 객체로 전달되지 않는다.
- 장점
임의적 접근 제어는 객체별로 세분화된 접근제어가 가능하다는 장점이 있고 특정 객체에 대해 특정 주체가 다른 주체에 대해 임의적으로 접근 제어가 가능하여 매우 유연한 접근 제어 서비스를 제공할 수 있다.
- 단점
사용자가 자신의 자원에 대한 접근 제어를 개별적으로 수행하므로 시스템 전체 차원의 일관성 있는 접근 제어가 부족할 수 있고 높은 접근 권한을 가진 사용자가 다른 사용자에게 자료에 대한 접근을 임의로 허용할 수 있다.
통제의 기준이 주체의 신분에 근거를 두고 있으며 접근 통제 메커니즘이 데이터의 의미에 대해 아무런 지식을 가지고 있지 않다.
신분이 접근통제 과정에서 매우 중요한 정보이므로 다른 사람의 신분을 사용하여 불법적인 접근이 이루어지면 접근통제 본래의 기능에 중대한 결함이 발생할 수 있다.
멀웨어는 DAC 시스템에 치명적이다. 바이러스, 웜, 루트킷은 DAC 시스템에 설치되어 응용프로그램으로 실행될 수 있다.
접근통제 정보가 복사된 객체로 전달되지 않아 트로이목마 공격에 취약하다.
- 임의적 접근 통제 기법
· 접근제어 매트릭스(Access Control Matrix)
행렬을 이용하여 주체, 객체, 접근권한의 관계를 기술하는 방법이다. 주체를 Row, 객체를 Column으로 구성하고 주체가 객체에 수행할 수 있는 접근 권한을 주체의 행과 객체의 열이 만나는 셀에 기록하여 접근제어 정책을 관리한다.
효과적으로 권한 부여 정책을 정의하지만 주체와 객체의 수가 많아지면 행렬의 크기가 상당히 커져 관리가 어렵다.
또한 모든 주체를 행으로 명시하고 모든 객체를 열로 명시함에 따라 비어있는 셀의 수가 많아져서 공간적으로 비효율적인 문제가 있다.
· 자격 목록(Capability List/Tickets/Table)
권한은 주체가 객체에 대한 접근권한을 의미하며 자격 목록은 한 주체가 갖는 자격들의 리스트다.
Capability ticket의 형태는 컨텐츠의 보안성이 보장받지 못하는 분산환경에서 사용하기 적합하다.
Capability Table의 예시는 커버로스이다.
· 접근제어 목록(ACLs, Access Control Lists)
접근제어 목록은 객체의 관점에서 객체에 어떤 주체가 어떤 접근 권한을 갖는지를 명시한 것이다.
역할기반 접근통제(RBAC, Role Based Access Control)
다중 사용자, 다중 프로그래밍 환경에서 보안처리 요구를 만족시키기 위해 제안된 방식으로 사용자의 역할에 기반을 두고 접근을 통제하는 모델이다.
RBAC의 핵심 개념은 권한을 역할과 연관시키고 사용자들이 적절한 역할을 할당받도록하여 권한의 관리를 용이하게 하는 것이다. 역할은 다양한 작업 기능을 바탕으로 정의되며 사용자들은 직무에 대한 책임과 자질에 따라 역할을 할당받는다.
RBAC 모델은 주체와 객체가 어떻게 상호작용하는지 결정하기 위해 중앙에서 관리되는 통제 모음을 사용한다. 접근 통제 수준은 사용자가 그들의 책임을 완수하기 위해 수행할 필요가 있는 운영과 작업에 기반한다.
RBAC는 각각의 사용자 대신 역할에 접근 권한을 할당하고 사용자는 정적 혹은 동적으로 각자의 책임에 따라서 각자 다른 역할에 할당된다. 역할과 접근권한의 설정은 관리자에 의해 이루어지고 사용자가 임의로 다른 사용자에 대한 접근권한을 설정하는 것은 허용되지 않는다.
사용자에 대한 역할 할당은 동적으로 변경될 수 있지만 역할에 해당된 자원에 대한 접근권한은 자주 변경되지 않는다.
사용자와 역할의 관계, 역할과 자원의 관계는 1:1일 필요는 없다.
- 장점
관리자에게 편리한 관리능력을 제공하며 비기술적 정책 입안자도 쉽게 이해할 수 있다.
RBAC는 사용자에 의한 접근 제어를 하는 DAC와 달리 중앙 집중적인 역할 설정과 역할에 따른 권한 설정을 하여 DAC보다는 유연성이 떨어지지만 전체 시스템 관점에서 일관성 있는 접근제어가 용이하다.
역할 수행에 반드시 필요한 접근권한만 부여함으로써 최소 권한 원칙을 충족시키기 용이하고 역할을 명확히 분리하고 역할에 따른 접근 권한도 명확하게 분리함으로써 직무 분리 원칙을 충족시키기도 용이하다.
벨라파듈라 모델(BLP, Bell-LaPadula Confidentiality Model) - MAC
기밀성을 집행하는 상태머신 모델(State Machine Model)이며 정보흐름 모델(Information Flow Model)이다. 또한 다중등급 보안 정책(MLP)에 대한 최초의 수학적 모델이다.
상태 머신 모델에서는 시스템의 보안을 검증하기 위해 상태가 사용되며 이는 객체에 접근하는 주체의 모든 권한과 인스턴스들이 획득되어야 한다는 것을 의미한다.
- 보안 규칙
기밀성 중심의 다중 수준 보안을 위한 요구조건의 일반적 기술에 의하면 높은 수준의 주체는 낮은 수준의 주체에 정보를 전달할 수 없다.
· No read up : 주체는 같거나 낮은 보안 수준의 객체만 읽을 수 있다. 단순 보안 속성(ss-property)으로 불린다.
· No write down : 주체는 같거나 높은 보안 수준의 객체에만 쓸 수 있다. * 속성(*-property, star property)으로 불린다.
· 특수 *속성 규칙(strong star property) : 주체가 객체에 대하여 읽기, 쓰기를 할 수 있기 위해서는 보안 허가(clearance)와 보안 분류(classification)가 동일해야 한다.
- BLP 모델의 트로이목마 방어
트로이목마는 기밀 단계의 파일 A의 내용을 읽을 수 있다.(ss-property) 그러나 트로이목마는 공격자가 접근할 수 있는 낮은 보안 단계의 파일 S에 파일 A의 내용을 쓸 수 없다.(*-property)
즉, BLP 모델에서 관리자가 높은 보안 단계로 설정한 파일의 내용을 낮은 보안 단계로 설정한 파일로 복제하는 것이 명확하게 차단된다.
- BLP 모델 장단점
BLP 모델은 기밀성 유지에는 매우 강한 특성을 보이지만 보안 단계가 낮은 사용자가 보안 단계가 높은 객체의 정보를 쓸 수 있으므로 정보의 무결성 유지에는 문제점을 노출할 수 있다.
또한 보안 단계가 높은 사용자와 낮은 사용자가 공유 메모리 또는 공유 네트워크 채널과 같은 자원을 공유하고 있을 경우 기밀성 유지가 훼손될 수 있다.
은닉 채널에 취약함.
비바 무결성 모델(Biba Integrity Model) - MAC
무결성을 위한 상업용 모델로 BLP 모델 이후에 개발되었다. 이 모델도 상태머신 모델이며 최초의 수학적 무결성 모델로서 무결성의 3가지 목표(비인가자의 수정 방지, 내/외부 일관성 유지, 합법적 사람에 의한 불법적 수정 방지) 중 비인가자에 의한 데이터 변형 방지만 취급한다.
- 보안 규칙
· 단순 무결성(simple integrity) : 객체의 무결성 수준이 주체의 무결성 수준보다 높을 때만 주체는 객체를 읽을 수 있다.
· 무결성 제한(integrity confinement, star integrity) : 주체의 무결성 수준이 객체의 무결성 수준보다 우세할 때만 주체는 객체를 변경할 수 있다.
· 호출 속성(invocation property) : 주체는 보다 높은 무결성을 갖는 주체에게 서비스 요청을 할 수 없다.
클락-윌슨 무결성 모델(Clark-Wilson Integrity Model) - MAC
Biba 모델 이후에 개발된 CWM은 좀 더 정교하고 실제적인 무결성 모델이다. 무결성 중심의 상업적 모델이며 무결성의 3가지 목표를 모델을 통해 각각 제시한다.
- 접근 통제 원칙
· 정확한 트랜잭션(Well formed transaction)
데이터를 하나의 일치 상태에서 다른 일치 상태로 변경하는 일련의 동작이다.
만리장성 모델(Chinese wall model, Brewer-Nash Model) - MAC, DAC
사용자의 이전 동작에 따라 변화할 수 있는 접근 통제를 제공하기 위해 만들어졌다. 또한 이 모델은 정보 흐름 모델을 기반으로 하고 있다. 주체와 객체 사이에서 이해 충돌을 야기하는 방식으로 정보가 흐르지 않도록 한다.
이 모델은 이해 충돌이 발생할 수 있는 상업용 응용을 위해 개발되었다. 자유재량과 강제적 접근 개념 모두 이용