본문 바로가기

Infra/리눅스 서버

[Linux 보안] 리눅스 계정관리 - root 이외의 UID가 '0' 금지

[Linux 보안] 리눅스 계정관리 - root 이외의 UID가 '0' 금지



■ 대상 OS : SunOS, Linux, AIX, HP-UX


■ 취약점 개요

    - root(UID=0)와 동일한 *UID(User Identification)를 가진 계정 존재 시 root 권한으로 시스템 접근이 가능하므로 root의 UID를 가진 계정이 존재하지 않도록 확인하여야 함

    - root 뿐만 아니라 사용자 간 UID 중복 시에도 권한 중복으로 인한 사용자 감사 추적이 어렵게 되는 문제가 발생하므로 계정 및 UID 확인이 필요함


* UID(User Identification) : 여러 명의 사용자가 동시에 사용하는 시스템에서 사용자가 자신을 대표하기 위해 쓰는 이름


■ 보안대책

    - 양호 : root 계정과 동일한 UID를 갖는 계정이 존재하지 않는 경우

    - 취약 : root 계정과 동일한 UID를 갖는 계정이 존재하는 경우


■ 조치방법

    - UID가 0인 계정 존재 시 변경할 UID를 확인 후 다른 UID로 변경 및 불필요 시 삭제, 계정이 사용 중이면 명령어로 조치가 안되므로 /etc/passwd 파일 설정 변경


■ 보안설정 방법

    ◆ OS별 점검 파일 위치 및 점검 방법

       #cat /etc/passwd

         root:x:0:0:root:/root:/bin/bash

         bin:x:1:1:bin:/bin:/sbin/nologin

         deamon:x:2:2:deamon:/sbin:/sbin/nologin


      "/etc/passwd" 파일 내 UID 확인 (세 번째 필드 값)

       root 이외의 계정이 "UID=0" 인 경우 0이 아닌 적절한 UID 부여


    ◆ 위에 제시한 설정이 해당 파일에 적용되지 않은 경우 아래의 보안설정 방법에 따라 설정


SunOS, Linux, HP-UX

    1. Usermod 명령으로 UID가 0인 일반 계정의 UID를 100 이상으로 수정

       - SunOS, HP-UX의 경우 100 이상

       - Linux의 경우 500 이상


       (예 : test 계정의 UID를 2002 로 바꿀 경우

        #usermod -u 2002 test


※ 각 OS별로 사용자 UID 체계가 달라 시스템 계정 및 일반 사용자 계정이 부여받는 값의 범위에 차이가 있으며, 공통적으로 관리자는 "UID=0"을 부여받음


■ AIX

    1. chuser 명령으로 UID가 0인 일반 계정의 UID 100 이상으로 수정

       (예 : test 계정의 UID를 2002로 바꿀 경우

       #chuser id=2002 test


 passwd 파일 구조


    root:    x:       0:       1:    Super-User:                       /:        /usr/bin/ksh

loginID:    x:    UID:    GID:      comment:    home_directory:        login_shell


  (예)  root:x:0:0:root:/root:/bin/bash

         bin:x:1:1:bin:/bin:/sbin/nologin

         deamon:x:2:2:deamon:/sbin:/sbin/nologin

         adm:x:3:4:adm:/var/adm:/sbin/nologin

         sync:x:5:0:sync:/sbin:/bin/sync

         shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

         halt:x:7:0:halt:/sbin:/sbin/halt

         mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

         nobody:x:99:99:Nobody:/:/sbin/nologin


  위의 예는 /etc/passwd 파일의 내용으로 ":"을 사용하여 필드를 구분함

  세 번째 필드(UID)가 "0"인 경우 슈퍼유저 권한을 갖으며, "0"이외의 계정은 일반 계정으로 볼 수 있음


■ 조치 시 영향

    - 해당 계정에 관리자 권한이 필요하지 않으면 일반적으로 영향 없음




※ 문의 사항은 메일 : jyuhm@sntkor.com 이나 070-8611-4853


문의 사항 남기기