03. 시스템 보안 설계와 구현
04. 접근 통제 보안 정책
1) DAC(Discretionary Access Control, 임의 접근 통제) 정책
- 가장 널리 사용되는 모델로 오늘날 대부분 운영체제에서 채택하여 사용하고 있음
- 사용자의 신원 정보를 통해 권한의 부여 및 회수에 대한 메커니즘을 기반으로 함
- 다른 사용자의 경우 특정 객체의 데이터 조작 행위를 위해서는 DBMS로부터 권한을 부여 받아야 함
- DBMS에서 GRANT 명령어는 객체에 대한 권한을 사용자에게 부여하기 위해 활용하고, REVOKE 명령어는 사용자에게 권한을 회수하는 상황에서 사용함
- 데이터 소유자에게 권한을 부여하기 때문에 구현과 변경이 용이함
- 정보 소유자가 정보의 보안 등급을 결정하고 이에 대한 정보의 접근 제어를 설정하는 모델
- 사용자나 사용자 그룹에 따라서 접근을 제어하는 기준은 ACL(Access Control List)에 따름
- 어떤 사용자가 정보에 접근할 수 있고 어떠한 권한을 가질 수 있는지 정보의 소유자가 직접 결정할 수 있어 유연성이 뛰어남
- 주체 또는 주체가 소속되어 있는 그룹의 식별자를 근거로 객체에 대한 접근을 승인하거나 제한함
- 데이터 소유자가 다른 사용자의 식별자에 기초하여 자신의 의지대로 데이터에 대한 접근 권한을 부여하는 것
- 전통적인 UNIX 파일 접근 제어에 적용되었음
2) MAC(Mandatory Access Control, 강제적 접근 통제) 정책
- 시스템의 사용자들은 자신의 정보에 대한 어떠한 접근 권한도 설정할 수 없음
- MAC 모델은 자원 사용을 통제하는데 계층적인 접근법을 사용함
- 중앙에서 정보를 수집하고 분류하여, 각각의 보안 등급을 붙이고 이에 대해 정책적으로 접근 제어를 설정하는 모델
- 객체에 포함된 정보의 비밀성과 이러한 비밀성의 접근 정보에 대해 주체가 갖는 권한에 근거하여 객체에 대한 접근을 제한하는 방법
- 정보 시스템 내에서 어떤 주체가 특정 객체에 접근하여 할 때 양쪽의 보안 등급에 기초하여 높은 보안 수준을 요구하는 정보(객체)가 낮은 보안 수준의 주체에게 노출되지 않도록 접근을 제한하는 통제 방법
- 일반적으로 읽기는 사용자의 등급이 접근하는 데이터 객체 등급과 같거나 높은 경우에만 허용됨
- 수정 및 등록은 사용자의 등급이 기록하려면 데이터 객체의 등급과 같은 경우만 허용함
- 높은 등급의 데이터가 사용자를 통해 의도적으로 낮은 등급의 데이터로 사용되거나 복사 되는 것을 방지하기 위함을 목적으로 함
- 데이터 분류 등급(Public, Confidential, Secret, Top Secret)과 보안 취급 등급을 사용하여, 시스템 관리자에 의해 설정된 보안 정책에 따라 사용자에게 접근 권한이 주어짐
- 최상위 보안 등급을 가진 자도 모든 자료의 열람은 불가능함
- Top Secret의 권한을 가졌다 하더라도 보안 취급 등급이 다르면 해당 정보에 접근할 수 없음
- 중앙에서 집중적으로 관리하기 때문에 안정적이지만, 정책을 결정하면 변경하기 어려움
- MAC 모델은 정부, 군대 등과 같이 복잡성과 비용과 관계없이 보안성이 요구되는 시스템에 주로 사용됨
- 모든 MAC 모델은 Bell & LaPadula Model을 근간으로 하고 있음
3) RBAC(Role-Based Access Control, 역할 기반 접근 통제) 정책
- 특정 역할들을 정의하고 각 역할에 따라 접근 권한을 지정하고 제어하는 방식
- 사용자에게 주어진 역할에 따라 어떤 접근이 허용되는지 말해주는 규칙들에 기반을 둠
- 조직의 사용자가 수행해야 하는 직무와 직무 권한 등급을 기준으로 객체에 대한 접근을 제어하고, 접근 권한은 직무에 허용된 연산을 기준으로 허용함으로 조직의 기능 변화에 따른 관리적 업무의 효율성을 높일 수 있음
- 사용자가 적절한 직무에 할당되고, 직무에 적합한 접근 권한이 할당된 경우에만 접근할 수 있음
- 사용자가 아닌 역할이나 임무에 권한을 부여하기 때문에 사용자가 자주 변경되는 환경에서 유용한 모델
- 최소한의 권한을 부여함으로써 권한의 남용을 방지할 수 있으며, 직무에 따라 허가를 결정하므로 직원이 자주 변경되는 구조에서 유리한 정책
4) MAC, DAC, RBAC의 비교
정책 | MAC | DAC | RBAC |
---|---|---|---|
권한 부여 | 시스템 | 데이터 소유자 | 중앙 관리자 |
접근 결정 | 보안 등급(Label) | 신분(Identity) | 역할(Role) |
정책 변경 | 고정적(변경 어려움) | 변경 용이 | 변경 용이 |
장점 | 안정적, 중앙 집중적 | 구현 용이, 유연함 | 관리 용이 |
5) MAC(Multi-level Access Control, 다중 등급 접근 통제) 정책
- Bell-LaPadula(BLP) Model
- 군대의 보안 레벨처럼 정보의 기밀성을 강조하는 최초의 수학적 모델로서 널리 알려진 모델이지만 무결성과 가용성은 대처하지 않음
- 시스템 보안을 위한 규칙 준수 규정과 주체의 객체 접근 허용 범위를 규정하고 있음
- 자신의 권한보다 낮은 보안 레벨 권한을 가진 경우에는 높은 보안 레벨의 문서를 읽을 수 없고 자신의 권한보다 낮은 수준의 문서만 읽을 수 있음
- 자신의 권한보다 높은 보안 레벨의 문서에는 쓰기가 가능하지만 보안 레벨이 낮은 문서의 쓰기 권한은 제한함
- 단순 기밀성 규칙 : 높은 보안 수준 읽기 금지(No-Read-Up)
- 자기 자신은 높은 보안 수준의 객체를 읽어서는 안 된다는 보안 정책
- 자기 자신은 자신과 같거나 낮은 보안 수준의 객체를 읽을 수 있음
- 자기 자신은 높은 보안 수준의 중요 정보를 열람하지 못하게 함으로써 정보의 기밀성을 보호하고자 하는 정책
- 스타(*) 기밀성 규칙 : 낮은 보안 수준 쓰기 금지(No-Write-Down)
- 자기 자신은 낮은 보안 수준의 객체에 쓰거나 수정하지 못하게 하는 보안 정책
- 자신과 같거나 높은 보안 수준의 객체에만 쓸 수 있음
- 낮은 보안 수준으로 중요 정보를 복사하여 유출 시키는 행위를 금지하여 정보의 기밀성을 보호하고자 하는 정책
- Biba Integrity Model
- 정보의 무결성 보호에 중점을 두어 비인가자의 데이터 수정을 방지하기 위해 설계된 모델
- 주체와 객체, 보안 등급 등과 같이 Bell-LaPadula 모델과 유사하게 설계되었음
- 단순 무결성의 규칙 : 높은 보안 수준 쓰기 금지(No-Write-Up)
- 자기 자신은 높은 보안 수준에 쓰거나 수정을 할 수 없도록 하는 정책
- 자기 자신은 자신과 같거나 높은 보안 수준의 객체를 읽을 수 있음
- 높은 보안 수준의 정보 오염을 방지하여 무결성을 지키기 위한 정책
- 스타(*) 무결성 규칙 : 낮은 보안 수준 읽기 금지(No-Read-Down)
- 자기 자신은 낮은 보안 수준의 객체를 읽어서는 안 된다는 보안 정책
- 자신과 같거나 낮은 보안 수준의 객체에만 쓸 수 있음
- 낮은 보안 수준으로 중요 정보를 잘못 읽어 변조하는 행위를 금지하여 정보의 무결성을 보호하고자 하는 정책
- Chinese Wall Model(= 만리장성 모델)
- 어떤 회사의 특정 업무에서 일했던 사람이 다른 회사의 같은 영역의 자료에 접근을 금지하는 모델
- 데이터에 접근하여 관심 분야의 이익 충돌을 유발할 수 있는 사용자에 대하여 데이터를 보호하는 것으로, 사용자의 이력에 따라 접근 제어를 할 수 있음
- Clark-Wilson Model
- 정보의 무결성을 강조한 모델로서 Biba Integrity 모델보다 향상된 모델
- 정보의 노출 방지보다 변조 방지가 더 중요한 금융기업과 같은 상업용 보안 구조 요구사항을 충족하는 범용 모델
- 인가자의 부적절한 등급 수정을 방지하기 위하여 업무를 분리함(직무 분리)
- 접근 권한을 가지고 있지 않은 사용자뿐만 아니라 정당한 사용자 또한 접근을 제어함(변경 가능한 안내문 제시)
05. 접근 제어 기법과 자원 보호 기법
1) 접근 제어 기법
- 사용자에 따라 공유데이터에 접근할 수 있는 권한을 제한하는 방법
- 컴퓨터 시스템을 사용할 수 있는 자격을 가지고 있는 사용자만 컴퓨터 시스템에서 보유하고 있는 자원 혹은 객체에 접근할 수 있도록 제어하는 기법
2) 자원 보호(Conservation of Resources) 기법
1. 접근 제어 행렬(ACM : Access Control Matrix)
- 접근 제어 행렬은 주체를 열에, 객체를 행에 표시하여 각각에 권한을 부여하는 방법으로 주체와 객체가 커지면 행렬 유지가 어려움
- 객체의 사용 권한을 사용자 리스트와 함께 표시하는 행렬
2. 접근 제어 리스트(ACL : Access Control List)
- 객체와 그 객체에 허용된 사용자의 권한 리스트
- 접근 제어 행렬에서 권한이 없는 사용자가 많을 경우 메모리 낭비가 매우 심하다는 단점을 보완한 것
3. 자격 리스트(Capability List)
- 사용자 개개인에게 허용된 권한 리스트
- 사용자마다 객체의 권한을 독립적으로 부여하는 방법
'정보처리기사 > 정보 시스템 구축 관리' 카테고리의 다른 글
보안 공격 및 예방 2 (0) | 2023.06.02 |
---|---|
보안 공격 및 예방 1 (0) | 2023.06.02 |
시스템 보안 구축 4 (0) | 2023.06.02 |
시스템 보안 구축 3 (0) | 2023.06.02 |
시스템 보안 구축 2 (0) | 2023.06.02 |