[42서울] 접근 통제

tamagoyakii·2022년 5월 5일
0

42seoul

목록 보기
5/19
post-thumbnail

❣️ 접근 통제(Access Control) ❣️

운영체제에서 접근 통제는 디렉터리나 파일, 네트워크 소켓 같은 시스템 자원을 적절한 권한을 가진 사용자나 그룹이 접근하고 사용할 수 있게 통제하는 것이다. 접근 통제에서는 시스템 자원을 객체(Object)라고 하며 자원에 접근하는 사용자나 프로세스는 주체(Subject)라고 정의한다. 접근 통제는 다음의 두 종류로 나뉜다.

1️⃣ DAC(Discretionary Access Control)

임의 접근 통제(DAC)는 시스템 객체에 대한 접근을 사용자 또는 그룹 신분을 기준으로 제한하는 방법이다. 사용자나 그룹이 객체의 소유자라면 다른 주체에 대해 이 객체에 대한 접근 권한을 설정할 수 있다. 여기서 "임의적"이라는 말은 소유자의 판단으로 권한을 부여할 수 있다는 의미이며, 구현이 용이하고 사용이 간편하기 때문에 전통적으로 유닉스, 리눅스, 윈도우 등 대부분의 운영체제의 기본 접근 통제 모델로 사용된다.

임의적 접근 통제는 사용자가 임의로 접근 권한을 지정하므로 사용자의 권한을 탈취당하면 사용자가 소유하고 있는 모든 객체의 접근 권한을 가질 수 있게 되는 치명적인 문제가 있다. 특히 루트 사용자는 전체 엑세스 제어 권한을 갖고 있으므로, 루트 액세스 권한을 탈취하면 시스템을 완벽하게 장악할 수 있다.

2️⃣ MAC(Mandatory Access Control)

강제 접근 통제(MAC)는 미리 정해진 정책과 보안 등급에 의거, 주체에게 허용된 접근 권한과 객체에게 부여된 허용 등급을 비교하여 접근을 통제하는 모델이다. 소유자라고 할 지라도 정책에 어긋나면 객체에 접근할 수 없으므로 강력한 보안을 제공한다. MAC 정책에서는 루트로 구동한 http 서버라도 접근 가능한 파일과 포트가 제한된다. 즉 httpd 권한을 획득했어도 /var/www/html, /etc/httpd 등의 사전에 허용한 폴더에만 접근 가능하며 80, 443, 8080 등 사전에 허용된 포트만 접근이 허용된다.

강한 접근 통제의 단점은 구현이 복잡하고 어렵다는 것이다. 모든 주체와 객체에 대한 보안 등급과 허용 등급을 부여해야 하기 때문에 시스템 관리자가 접근 통제 모델에 대해 잘 이해하고 있어야 한다.

서브젝트에서 요구하는 두 보안 모델인 SELinux와 AppArmor는 모두 강제 접근 통제 방법을 따른다. 위에서 전통적인 리눅스는 DAC 모델을 사용한다고 했다. 하지만 데비안의 AppArmor와 센토스의 SELinux는 모두 MAC 모델이다. 두 시스템에 대해 간단히 알아보자.

SELinux

  • SELinux(Security-Enhanced Linux)
  • 레드햇 계열(RHEL, Fedora, CentOS)의 운영체제에서 사용
  • 파일에 라벨을 적용하는 것에 기반
  • 시스템 전체에 대한 보안 설정

AppArmor

  • AppArmor(Application Armor)
  • 데비안 계열(Debian, Ubuntu), SUSE 계열(SUSE Linux)의 운영체제에서 사용
  • 파일 경로를 통해 작동
  • 개별 응응프로그램을 보호, 응용 프로그램 단위의 보안 모델 구현

❣️ 참고 ❣️

접근 통제
SeLinux
AppArmor

0개의 댓글