주요정보통신기반기설 기술적 취약점 분석 평가 방법 상세가이드/UNIX 서버 진단

1.5. root 이외의 UID가 ‘0’ 금지 [U-44] (중) - 주요정보통신기반시설 기술적 취약점 분석 평가 방법 상세 가이드(2021)

재민스 2021. 11. 5. 14:12

가. 취약점 개요

    내용 : 사용자 계정 정보가 저장된 파일( /etc/passwd)root(UID=0) 계정과 동일한 UID(User Identification)를 가진 계정이 존재하는지 점검

    목적 : root 계정과 동일한 UID가 존재하는지 점검하여 root권한이 일반 사용자 계정이나 비인가자의 접근 위협에 안전하게 보호되고 있는지 확인하기 위함

    보안 위협

-      root 계정과 동일 UID가 설정되어 있는 일반사용자 계정도 root 권한을 부여받아 관리자가 실행 할 수 있는 모든 작업이 가능함(서비스 시작, 중지, 재부팅, root 권한 파일 편집 등)

-      root와 동일한 UID를 사용하므로 사용자 감사 추적 시 어려움이 발생함

    참고  

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

 

나. 점검방법

    대상 : SOLARIS, LINUX, AIX, HP-UX

    판단기준

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

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

    점검 명령어

OS 점검 파일
SOLARIS, LINUX, AIX, HP-UX #cat /etc/passwd     (※ “passwd” 파일 구조: 부록 참조)
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
 
“/etc/passwd” 파일 내 UID 확인 (세 번째 필드 값)
root 이외의 계정이 “UID=0”인 경우 0이 아닌 적절한 UID 부여
위에 제시한 설정이 적용되지 않은 경우 아래의 보안설정방법에 따라 설정을 변경함

 

다. 조치방법

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

    SOLARIS, LINUX, HP-UX

    Step 1) usermod 명령으로 UID 0인 일반 계정의 UID 100 이상으로 수정

     SOLARIS, HP-UX의 경우 100 이상     

     LINUX의 경우 500 이상

    () test 계정의 UID 100 로 바꿀 경우

    #usermod –u 100 test

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

     AIX

    Step 1) chuser 명령으로 UID 0인 일반 계정의 UID100 이상으로 수정 () test 계정의 UID 100 로 바꿀 경우

        #chuser id=100 test

passwd 파일 구조
   
계정명        UID   GID                   홈디렉터리 위치
                                                           
Test  :  x  :  500  :  500  :  Gen-User :  /hom e/test  :  /usr/bin/bash
                                                           
패스워드                    설명(comment)                        지정된 쉘
 
() root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/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”이외의 계정은 일반 계정으로 볼 수 있음

  

라. 조치시 영향

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