본문으로 바로가기

- Linux 보안 개발시 고려사항 


SELinux(RBAC(Role-Based Access Control))

sudo CMD, /etc/sudoers

File ACL(getfacl/setfacl)

lsattr/chattr CMD


> 모두 접근을 제어 할 수 있는 기능들을 가지고 있다. 


- 비교 


 

목적

Target(Object) 

권한상승 

 

 

SELinux 

허용 

File(user, role, process, security level) 

 

 

 sudo CMD

허용 

File (CMD 제어) 

 

 

File ACL 

허용 

File (user/group) 

△ 

 

 

 lsattr/chattr CMD

차단 

File (mode (a,i)) 

 


> SELinux 는 보통 프로세스의 접근을 제어한다. 

> sudo는 일반 사용자가 root의 권한을 가지고 CMD를 실행하게 하는 것으로 권한상승이 된다.

> File ACL 은 user와 group 의 권한을 각각 부여하는 것으로 root 권한으로 상승하는 것은 아니지만 기존의 권한 이상의 것을 할 수 있게 한다.

> chattr CMD는 root의 접근 또한 막는 차단의 목적을 둔 명령어 이다. 


- 예

user01 -----> File ( /etc/shadow)

> /etc/shadow 는 root 사용자만 r 권한을 갖는다. user01 사용자가 권한을 얻기 위해서는 File ACL로 user01만 추가적인 r권한을 부여하든지 

  sudo cat /etc/shadow 명령어를 user01이 입력하면 root의 권한으로 실행되게 하는 방법을 사용하면 된다. 


user01 ----->  CMD ( /sbin/dump)

> /sbin/dump 는 root 사용자만 사용가능한 명령어로 user01 사용자가 사용하기 위해서는 sudo 설정을 통해 root 권한을 얻는 방법이 있다.

> dump 명령어에 user01이 실행권한을 부여하는 File ACL을 설정하더라도 내부에 uid가 root인지를 확인하는 구문이 있어 실행이 불가능하다.


process/port -----> File (/var/www/html)

> 프로세스나 포트가 /var/www/html에 접근하는 제한을 두기 위해서는 SELinux의 기능이 필요하다. 

> 다른 접근 제한은 프로세스나 포트의 접근은 막을 수 없다.