DB 접근제어 (MAC, DAC, RBAC)

I. 개인정보보호를 위한, DB 접근제어

가. DB 접근제어의 개념

  • 사용자가 DBMS 로그인, SQL 수행 시 미리 정의된 보안규칙에 따라 권한 여부를 판단하여 통제하는 솔루션

나. DB 접근제어의 필요성

사용자 식별– 계정 단위의 개별적 관리 요구 증대
DBMS 추가보안– DBMS 기본기능만으로 관리 어려움
DBMS 통합관리– 여러 종류의 DBMS를 통합하여 관리

 

II. DB 접근제어 모델

가. 강제 접근제어 (MAC, Mandatory Access Control)

  • 강제 접근제어 주요 특징
개념– 보안등급기반 데이터, 사용자 분류 보안
활용– 다단계 보안 요구 많은 군이나 정부기관
– 강력한 보호 필요한 대량 정보 적용
No read-up– 자신의 접근 등급 이하인 객체만 판독
No write-down– 자신의 접근 등급 이상인 객체만 기록
보안 등급– 1급(TS, Top Sec.), 2급(S, Sec.), 3급(C, Confi.)
  • Bell-Lapadula 모델
개념– 다단계 보안을 위해 자주 사용되는 모델
주체– 사용자, 계정, 프로그램
객체– 릴레이션, 튜플, 애트리뷰트, 뷰, 연산
접근제어– 각 주체와 객체를 보안 등급에 따라 분류
– 주체 보안등급(S), 객체 등급 (O)로 표시
– C(S) >= C(O) 가 아니면 S는 O에 읽기X
– C(S) <= C(O) 가 아니면 S는 O에 쓰기X
  • 다단계 관계형 스키마 (Multilevel Relation Schema)
외관상 키– 단일 단계 관계 기본키로 구성된 집합
filtering– 사용자 보안 등급에 따라 튜플 값 보여줌
polyinstantiation– 분류 등급이 다른 사용자에게 다른 값 뷰

나. 임의 접근제어 (DAC, Discretionary Access Control)

  • 임의 접근제어 특징
개념– 객체에 대한 소유 권한 명시, 권한부여
특징– 사용자가 객체 접근 권한 허가/철회 가능
– 대부분 DBMS 임의접근제어 방식 사용
사례– 권한 부여 규칙 정의 Grant, Revoke 등
  • 임의 접근제어 권한 유형
계정 레벨– 사용자계정 위한 권한식별자 사용
스키마/테이블 생성 (CREATE, ALTER 등)
테이블 레벨– DB 관계나 뷰를 접근하는 권한 제어
– 각 릴레이션에 대한 owner account 할당
– 자기 소유 권한을 다른 사용자에 위임가능
권한– SELECT, UPDATE, DELETE, INSERT 권한

다. 사용자 역할 접근제어 (RBAC, Role Based Access Control)

개념– 권한-역할 연관되어 사용자 역할을 지정
특징– 권한관리: 사용자 권한 할당/회수
– 계층적 역할: 역할에 계층을 두어 상속
– 최소권한: 사용자에 최소의 권한만 부여
역할기반
접근제어 방법

– CREATE ROLE, DESTROY ROLL로 생성/제거
– 임의 접근제어 grant와 revoke로 관리 가능

 

III. DB 접근제어 모델 비교

항목MACDACRBAC
권한
부여
시스템데이터 소유자중앙 관리자
접근
결정
보안 등급
(Label)
신분
(Identity)
역할
(Role)
정책
변경
고정적
(변경 어려움)
변경
용이
변경
용이
장점안정적
중앙집중적
구현 용이
유연함
관리 용이
단점구현 및 운영
어려움, 고비용
트로이목마, 아이디 도용 공격에 취약유연성DAC↓
안정성MAC↓
사례방화벽
UNIX/Linux
Access
Control List
상용SW
DBMS

 

IV. DB 보안 모델

보안 모델설명
벨라파둘라
(Bell-Lapadula)
– 낮은 등급쪽으로 정보가 흐르지 않게 함
– 보안 등급 아래로 읽기, 위로 쓰기 특성
비바 (Biba)– 벨라파둘라 모델을 유지하며, 자신 보다 무결성 등급이 높은 데이터 수정 금지
클락-윌슨 (CWM)– 무결성을 중심으로 한 모델
– 무결성 등급을 격자로 사용
만리장성
(Chinese Wall)
– 자유 재량과 강제적 접근 개념 사용
– 이해 충돌을 방지하기 위한 모델

 

콘텐츠 사용 시 출처 표기 부탁 드리고, 궁금한 점이나 의견은 댓글 남겨주세요^^