가. 취약점 개요
■ 내용 : 사용자 계정 정보가 저장된 파일(예 /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인 일반 계정의 UID를 100 이상으로 수정 (예) 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”이외의 계정은 일반 계정으로 볼 수 있음 |
라. 조치시 영향
■ 해당 계정에 관리자 권한이 필요하지 않으면 일반적으로 영향 없음