2010년 3월 30일 화요일

[보안]Access Control Model_2

보안을 배우다#15

오랜만에 보안 포스팅 이어갑니다.
지난 번에는 DAC(Discretionary Access Control)에 대해서 알아봤었습니다.
저도 기억이 가물가물해서 다시한번 정리합니다.

------------------------------------------------------------------------
Owner(소유자)가 자신의 자산에 대해
User(접근자) ID(증명)에 따라 자유재량으로
Access를 통제하는 것을
DAC(Discretionary Access Control)라고 합니다.
그리고 그 통제방식은 보통 ACL(Access Control List)를 많이 사용합니다.
------------------------------------------------------------------------
이해를 돕기 위해 전혀 IT적이지 않은 사례를 들어들었죠.
IT적인 사례를 한가지 든다면 UNIX, LINUX 등의 파일 시스템 접근 권한이 있습니다.
OS상에 계정을 가진 사용자가 파일을 만들경우
그 파일은 해당 계정에 속하게 됩니다.
그리고 그 파일에 대한 접근을 사용자가 임의로 주게 되어있습니다.
자신만 사용할지
자신과 같은 그룹의 사용자들과 같이 사용할지
아니면 해당 시스템에 접속하는 어떤 사용자도 사용할 수 있게 할지
임의로 정할 수가 있습니다.

파일 시스템 권한 관리는 UNIX, LINUX 관련 포스팅 들을 검색하시면
하늘의 별만큼 많으므로 찾아보시면 될듯합니다.

자 그럼 오늘은 MAC(Mandatory Access Control)에 대해 살펴보겠습니다.
용어 부터 풀어보겠습니다.
뒤쪽의 Access Control은 계속 말씀 드렸듯이 Access에 대한 통제가 될겁니다.
앞에 있는 Mandatory "명령의, 통제의, 강제의 " 뭐 이런 억압적인 뉘앙스의 말이네요.
강제적인 Access 통제가 되겠네요.

Access Control를 담당하는 관리자 혹은 관리부서가 있을 겁니다.
관리자가 User(접근자)와 Data(혹은 자산)에 대해 보안 등급을 부여하고
이 등급을 근거로 하여 Access Control을 수행합니다.

Data가 최고 보안등급을 가지고 있다면 User도 최고 보안등급을 가지고 있어야
Access 할수 있습니다.
너무 당연한 예기인가요?

그럼 User가 2등급이고 Data가 3등급이면 Access 할 수 있을까요?
음... 가능할 것 같긴 하네요.
전에 Access에 대해 말씀드릴때
Access = 접근 + 행동
이라고 말씀드렸습니다.
즉 Access 할수 있다는건 단순히 접근하는게 아니라
접근해서 뭔가를 행한다는 겁니다.
Data가 같으면 읽거나, 새로 쓰거나, 고치거나... 이런행동을 할수 있는게 Access입니다.

다시 질문으로 돌아가 보겠습니다.
User가 2등급이고 Data가 3등급일때 읽고, 쓰는 권한을 가진다고 가정해 보겠습니다.
쓰기 권한를 가지므로 User는 Data를 수정할 수 있습니다.
그래서요? 권한이 있는데 수정할 수 있는거 아닌가요?
라고 의문을 제기하실 수 있습니다.

하지만 User가 실수로 자신이 아는 비밀을 3등급 Data에 써버린다면...
3등급의 User들에게 2등급의 비밀이 노출될 가능성이 생깁니다.
즉 정보의 기밀성(Confidentiality)이 손상을 입게 됩니다.
군사조직 등 기밀성(Confidentiality)이 중요한 곳에서는
하위 등급의 Data에 대한 쓰기권한을 부여하지 않는 정책을 가져갈 겁니다.

이걸 "No Write Down(*Property or Star Property)"이라고 부르기도 합니다.

반면에 User의 등급보다 높은 등급의 Data의 읽기를 금지하는 걸
"No Read Up(simple Security condition)"이라고 합니다.
당연한 예기죠.
일반인인 제가 국가기관에 가서 1급 비밀 보여주세요 그러면 잡아갈겁니다.


일반적인 MAC(Mandatory Access Control)에 대해 살펴보았습니다.
다음에는 MAC(Mandatory Access Control)를 적용하기 위한 몇가지 모델을 살펴보겠습니다.

※ 혹시 제가 알고있는 부분에 잘못된 내용이 있다면 지적 달게 받겠습니다.

3 개의 댓글:

  1. 비밀 댓글 입니다.

    답글삭제
  2. @Anonymous - 2010/03/31 08:44
    ^^ 즐거운 하루 되세요.

    답글삭제
  3. 설명이 쉽게 잘 되어있어서 이해가 잘 되네요~

    답글삭제