U-44 root 이외의 UID가 ‘0’ 금지
항목중요도 : 중
1. 취약점 개요
▶ 점검내용 : 사용자 계정 정보가 저장된 파일(예 /etc/passwd)에 root(UID=0) 계정과 동일한 UID(User Identification)를 가진 계정이 존재하는지 점검
▶ 점검목적 : root 계정과 동일한 UID가 존재하는지 점검하여 root권한이 일반 사용자 계정이나 비인가자의 접근 위협에 안전하게 보호되고 있는지 확인하기 위함
▶ 보안위협
· root 계정과 동일 UID가 설정되어 있는 일반사용자 계정도 root 권한을 부여받아 관리자가 실행 할 수 있는 모든 작업이 가능함(서비스 시작, 중지, 재부팅, root 권한 파일 편집 등)
· root와 동일한 UID를 사용하므로 사용자 감사 추적 시 어려움이 발생함
▶ 참고
※ UID(User Identification): 여러 명의 사용자가 동시에 사용하는 시스템에서 사용자가 자신을 대표하기 위해 쓰는 이름
2. 점검대상 및 판단 기준
▶ 대상 : SOLARIS, LINUX, AIX, HP-UX 등
▶ 판단기준
· 양호 : root 계정과 동일한 UID를 갖는 계정이 존재하지 않는 경우
· 취약 : root 계정과 동일한 UID를 갖는 계정이 존재하는 경우
▶ 조치방법 : UID가 0인 계정 존재 시 변경할 UID를 확인 후 다른 UID로 변경 및 불필요 시 삭제, 계정이 사용 중이면 명령어로 조치가 안 되므로 /etc/passwd 파일 설정 변경
3. LINUX 초기 설정값
※ 테스트한 LINUX의 버전은 AWS로 구성된 CentOS 9 입니다.
확인방법
$cat /etc/passwd
“/etc/passwd” 파일 내 UID 확인 (세 번째 필드 값)
root 이외의 계정이 “UID=0”인 경우 취약입니다.
root가 있는 열의 세번째 필드 값 숫자 0과 동일한 위치에 있는 0이 있는지 확인해야합니다.
없습니다.
[ec2-user@ip-172-31-8-135 etc]$ cat /etc/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
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/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
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin
systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
tss:x:59:59:Account used for TPM access:/dev/null:/sbin/nologin
sssd:x:998:995:User for sssd:/:/sbin/nologin
chrony:x:997:994:chrony system user:/var/lib/chrony:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/usr/share/empty.sshd:/sbin/nologin
systemd-oom:x:992:992:systemd Userspace OOM Killer:/:/usr/sbin/nologin
ec2-user:x:1000:1000:Cloud User:/home/ec2-user:/bin/bash
it-mskim:x:1001:1001::/home/it-mskim:/bin/bash
(이하 생략)
양호입니다.
4. 조치
혹시라도 동일한 숫자로 구성되어있다면 아래와같이 변경해주면 됩니다.
1) LINUX의 경우 usermod 명령으로 UID가 0인 일반 계정의 UID를 500 이상으로 수정
(예) test 계정의 UID를 500 로 바꿀 경우
$ usermod –u 500 test
UID 권한 참고
- UID 0: 최고 권한(루트 사용자)
- UID 1-99: 시스템 및 서비스 계정
- UID 100-999: 일반 사용자 계정(주로 시스템 사용)
- UID 1000 이상: 일반 사용자 계정(사용자가 생성한 계정)
5. 결과
UID가 root와 동일한 0이 이없다면 양호입니다.
!!참고!!
user id 를 0으로 변경하려 할 경우 아래와 같이 에러메세지가 표출됩니다.
아마 쉽게 변경할 수는 없는 구조인 것 같습니다.
[ec2-user@ip-172-31-8-135 etc]$ sudo usermod -u 0 test1
usermod: UID '0' already exists
Linux를 마스터하는 그날까지
화이팅!
'취약점 진단 > UNIX 취약점 진단' 카테고리의 다른 글
[UNIX] U-46 패스워드 최소 길이 설정 (2) | 2024.09.26 |
---|---|
[UNIX] U-45 root 계정 su 제한 (1) | 2024.09.26 |
[UNIX] U-04 패스워드 파일 보호 (1) | 2024.09.25 |
[UNIX] U-02 패스워드 복잡성 설정 (0) | 2024.09.22 |
[UNIX] U-01 root 계정 원격접속 제한 (0) | 2024.09.20 |