현재 선택한 정보보안 과정

정보보안기사 필기 이론 학습

이론 목록으로 돌아가기

접근통제 정책과 기법

주체·객체·권한, ACL·Capability와 DAC·MAC·RBAC·ABAC를 비교합니다.

예상 읽기 4

1. 접근통제의 기본 요소

  • 주체(subject): 자원에 접근을 요청하는 사용자·프로세스·서비스
  • 객체(object): 파일·DB 행·프로그램·장치·API 같은 접근 대상
  • 동작(action): 읽기·쓰기·실행·삭제·승인·관리
  • 권한(permission): 특정 주체·역할이 객체에 수행할 수 있는 동작

식별·인증·인가·감사를 구분한다.

  1. 식별: 누구라고 주장하는가
  2. 인증: 그 주장이 맞는가
  3. 인가: 어떤 행위를 허용할 것인가
  4. 감사: 누가 무엇을 했는지 기록·추적

2. 핵심 설계 원칙

최소 권한

업무 수행에 필요한 최소 권한만 부여한다. 필요할 수 있으니 미리 관리자 권한을 준다는 최소 권한에 어긋난다.

알 필요성

보안등급이나 직급이 높더라도 실제 업무상 필요가 있는 정보만 접근하도록 한다.

직무 분리

중요 업무를 여러 역할로 나눠 한 사람이 요청·승인·집행·감사를 모두 수행하지 못하게 한다.

  • 정적 직무 분리: 상충 역할을 동시에 배정하지 않음
  • 동적 직무 분리: 같은 거래·세션에서 상충 역할을 동시에 활성화하지 않음

기본 거부

명시적으로 허용되지 않은 접근은 거부한다. 정책 정보가 누락되거나 오류가 발생했을 때 무조건 허용하는 방식은 위험하다.

책임 추적성

공유 계정 대신 개인별 계정을 사용하고 권한 변경·특권 사용을 기록한다.

3. 접근통제 행렬

접근통제 행렬은 행에 주체, 열에 객체를 놓고 각 칸에 권한을 표현한다.

주체 \ 객체보고서급여 DB결재 기능
일반 직원읽기없음없음
인사 담당읽기읽기·수정없음
관리자읽기·수정관리승인

실제 시스템에서는 희소한 행렬 전체를 저장하기보다 ACL 또는 Capability List로 표현한다.

ACL(Access Control List)

객체마다 누가 어떤 권한을 가지는가를 기록한다.

CODE코드 영역 안에서 좌우로 이동할 수 있습니다.
급여 DB ACL = { 인사담당: read/write, 감사자: read }

특정 객체의 접근자를 확인·회수하기 쉽다. Capability는 권한을 나타내는 위조 불가능한 참조·증표여야 하며 단순히 사용자가 작성한 권한 목록이 아니다.

Capability List

주체마다 어떤 객체에 어떤 권한을 가지는가를 기록한다.

CODE코드 영역 안에서 좌우로 이동할 수 있습니다.
인사담당 capability = { 급여DB: read/write, 보고서: read }

주체가 가진 권한을 한눈에 보기 쉽지만 capability의 위조·복사·전달을 안전하게 통제해야 한다.

좌우로 이동해 그림을 확인하세요.그림 크게 보기
같은 권한을 보는 두 방향
같은 권한을 보는 두 방향

4. DAC

DAC(Discretionary Access Control)는 객체 소유자나 권한 보유자의 재량으로 접근권한을 부여·전달할 수 있는 방식이다.

  • 장점: 유연하고 일반 운영체제 파일 권한에 적용하기 쉽다.
  • 단점: 사용자가 권한을 잘못 전달하거나 악성 프로그램이 사용자의 권한으로 정보를 유출할 수 있다.

5. MAC

MAC(Mandatory Access Control)은 중앙 정책과 보안 레이블에 따라 접근을 강제한다. 사용자가 임의로 레이블 정책을 변경하거나 권한을 전달할 수 없다.

  • 주체: 허가 등급·범주
  • 객체: 보안 등급·범주
  • 결정: 중앙 정책의 레이블 비교

여기서 MAC은 Message Authentication Code가 아니라 강제적 접근통제라는 점에 주의한다.

6. RBAC

RBAC(Role-Based Access Control)는 사용자에게 권한을 직접 나열하기보다 역할에 권한을 부여하고 사용자를 역할에 배정한다.

CODE코드 영역 안에서 좌우로 이동할 수 있습니다.
사용자 → 역할 → 권한 → 객체

장점:

  • 인사이동 시 사용자-역할 관계만 바꾸어 관리 가능
  • 역할 계층으로 공통 권한 상속 가능
  • 직무 분리 제약을 표현하기 쉬움

주의점:

  • 역할을 지나치게 세분화하면 역할 폭증이 발생한다.
  • 역할에 과도한 권한이 누적되면 최소 권한이 깨진다.

7. ABAC

ABAC(Attribute-Based Access Control)는 주체·객체·행위·환경 속성을 정책 규칙에 대입해 결정한다.

예:

CODE코드 영역 안에서 좌우로 이동할 수 있습니다.
허용 조건 =
  사용자.부서 == 문서.소유부서
  AND 사용자.직급 >= 문서.최소직급
  AND 접속시간은 업무시간
  • 장점: 시간·위치·장치·금액 같은 동적 조건을 세밀하게 반영
  • 단점: 속성 품질과 정책 규칙이 복잡해질 수 있음

수평 권한 상승은 다른 사용자의 같은 수준 자원에, 수직 권한 상승은 관리자 같은 상위 기능에 무단 접근하는 경우다. 화면에서 버튼을 숨기는 것만으로 권한이 집행되지 않는다. 서버에서 주체·객체·동작을 확인하고, 퇴사·역할 변경 시 남은 권한도 회수한다.

스스로 확인하기

개념 확인 문제

문제를 누르면 바로 아래에서 정답과 해설을 확인할 수 있습니다.

01객체별로 누가 어떤 권한을 갖는지 저장하는 것과 주체별로 어떤 객체 권한을 갖는지 표현하는 것은?
정답 및 해설

앞은 ACL, 뒤는 Capability List의 관점이다. 실제 Capability는 사용자가 임의로 위조할 수 없는 참조·권한 증표로 통제되어야 한다.

02역할을 기준으로 권한을 연결하는 정책과 부서·시간·객체 속성을 함께 판단하는 정책은?
정답 및 해설

앞은 RBAC, 뒤는 ABAC다. 소유자의 재량은 DAC, 중앙 레이블 규칙의 강제는 MAC으로 구분한다.