C & Docker & LINUX

리눅스 - 프로세스 실행권한

로픽 2017. 10. 28. 12:00
300x250

리눅스 - 프로세스 실행권한

출처 : 알기사 정보보안기사/산업기사 실기 대비 1권

* 리눅스 시스템에서 프로세스의 자원에 대한 접근권한을 판단하기 위해 부여하는 ID로 
  RUID, RGID, EUID, EGID가 있다.

 - RUID : 프로세스를 실행시킨 사용자의 UID
 - RGID : 프로세스를 실행시킨 사용자의 GID
 - EUID : 프로세스가 실행중인 동안에만 부여되는 UID로 자원 접근권한을 판단하기 위한 UID
 - EGID : 프로세스가 실행중인 동안에만 부여되는 GID로 자원 접권권한을 판단하기 위한 GID

* SUID, SGID는 프로세스가 실행중인 동안에 해당 실행파일의 소유자, 소유그룹의 권한으로 자원에 접근할 수 있도록 하는 권한 설정
  - S아이디가 설정되지 않은 프로세스는 R아이디와 동일하게 설정된다.
  - 따라서 실행시킨 사용자의 권한으로 자원에 접근하게 된다.

* S아이디가 설정된 프로세스를 실행시키면 R아이디는 실행시킨 사용자의 UID,GID로 설정되고 E아이디는 실행파일 소유자의 UID,GID로 설정된다.
  - 즉, 실행시킨 사용자에 상관없이 소유자의 권한으로 자원에 접근하게 된다.


* 특수 권한 비트(SUID, SGID) 설정
  특수권한 user group other     -  3 3 3 3

  - root 소유의 자원에 대해 일반 사용자의 직접 접근을 차단하면서 기능상 필요한 부분만을 접근하도록 허용할 필요가 있는 경우
  - root 권한이 필요없는 프로그램에 소유주가 root로 되어 있으면서 setuid가 설정된 경우는 보안상으로 매우 취약하다.
  - 주기적으로 SUID, SGID가 설정된 프로그램을 확인할 필요가 있다.

네트워크 보안
 1) 보안 쉘(ssh)

  - 보안 쉘이란 암호 통신을 이용하여 네트워크상의 다른 컴퓨터에 접속하여 원격으로 명령을 실행하거나 파일을 조작하는 응용 프로그램, 프로토콜
    * 암호화된 원격 터미널 서비스 제공
    * 암호화된 파일 송수신 서비스 제공
  - 기존의 rsh, rlogin, Telnet, FTP 등 평문 송수신 서비스의 취약점을 대체하기 위해 설계되었으며 디폴트로 22/tcp 포트를 사용한다.

 2)슈퍼 서버(inetd 데몬)

  - 서비스를 제공하는 프로세스를 제외하고는 클라이언트의 접속 요청이 있을 때까지 대기하다가 요청이 들어오면 해당 요청을 처리할 서비스 프로세스를  실행 는 형태이다.
  - 클라이언트 요청은 슈퍼 데몬이 모두 처리하고 개별 서비스를 호출해주는 방식을 생각해볼 수 있는데 이러한 방식이 슈퍼데몬 방식

  - stand-alone 방식 : 개별 서비스별로 서버 프로세스가 동작하는 방식으로 속도가 빠른 장점이 있지만 서버 리소스도 많이 점유하고 있는 단점이 있다
  - inetd(xinetd) 방식 : 슈퍼 데몬을 이용하여 개별 서비스를 동작시키는 방식으로 상대적으로 속도가 느리지만 서버 리소스를 절약할 수 있다.

 - inetd 데몬은 n개의 개별 서버를 하나로 통합하여 클라이언트로부터 서비스 요청이 올 때마다 해당 서비스에 관련된 실행 모듈을 실행해준다.            (/etc/inetd.conf파일에 정의 되어있다.)
 
 - inetd.conf 파일에 실행할 서비스를 활성화한 후 inetd 데몬을 재시작한다.


불필요한/취약한 서비스 비활성화
  1) 불필요하고 보안상 취약한 다음 서비스들은 비활성화 한다.
      - DOS 공격에 취약한 simple tcp 서비스 : echo(7/tcp), discard(9/tcp), daytime(13/tcp),  chargen(19/tcp) 등
      - r 계열 서비스 : rlogin, rsh, rexec 등, r계열 서비스는 인증없이 관리자의 원격접속을 가능하게 하는 명령어들로 이기종 운영체제간 백업 등의 용도로
  사용되는 경우가 있으나 보안상 매우 취약하기 때문에 사용하지 말아야 한다.
   2) 불필요한/취약한 서비스 확인 및 비활성화 처리
      - inetd.conf 파일에서 취약한 서비스를 grep하여 활성화되어 있으면 이를 주석 처리하여 비활성화한다.
      - inetd.conf 설정을 적용하기 위해 inetd 서비스를 재시작 한다.


반응형