DAC
DAC(Discretionary Access Control, 임의적 접근통제)는 시스템 자원에 대한 접근을 사용자 또는 그룹의 신분에 기반해 제한하는 접근 통제 방식이다. 자원의 *소유자(Owner)*가 자신의 재량으로 타인에게 권한을 부여하거나 회수할 수 있다는 점이 가장 큰 특징이다.
핵심 개념
- 주체(Subject): 자원에 접근하려는 사용자·프로세스
- 객체(Object): 파일·디렉터리 등 보호 대상 자원
- 신분 기반: 사용자가 누구인가에 따라 권한 결정
- 소유자 재량: 자원 소유자가 권한을 자유롭게 조절
대표 구현
- Unix/Linux 파일 권한: rwx × (owner/group/other)
- Windows NTFS ACL: 접근 제어 목록으로 사용자별 권한 지정
- DB 권한:
GRANT/REVOKE명령
장점
- 유연성: 소유자가 필요에 따라 권한을 조정
- 직관성: 소유/공유 개념이 사람들에게 익숙
- 구현 단순: 대부분 OS에 기본 탑재
단점과 한계
- 일관성 부족: 소유자가 과도하게 권한을 풀어주면 전사적 보안 정책이 무력화
- 트로이 목마 취약: 악성 프로그램이 소유자 권한으로 권한 전파
- 관리 복잡: 자원이 많아지면 개별 권한 추적이 어려움
다른 모델과의 비교
| 모델 | 권한 결정 주체 | 기준 |
|---|---|---|
| DAC | 자원 소유자 | 사용자 신분 |
| MAC | 시스템/관리자 | 보안 등급(Label) |
| RBAC | 조직 정책 | 역할 |
MAC이 가장 엄격하고, DAC는 가장 유연하다. RBAC는 실무 운영의 균형점으로 널리 쓰인다.
언제 DAC가 적합한가
- 자원 소유자가 명확하고 소규모 팀
- 협업 중심 환경(파일 공유 등)
- 엄격한 보안 등급이 필요 없는 일반 서비스