U-49 불필요한 계정 제거
항목중요도 : 하
1. 취약점 개요
▶ 점검내용 : 시스템 계정 중 불필요한 계정(퇴직, 전직, 휴직 등의 이유로 사용하지 않는 계정 및 장기적으로 사용하지 않는 계정 등)이 존재하는지 점검
▶ 점검목적 : 불필요한 계정이 존재하는지 점검하여 관리되지 않은 계정에 의한 침입에 대비하는지 확인하기 위함
▶ 보안위협
· 로그인이 가능하고 현재 사용하지 않는 불필요한 계정은 사용중인 계정보다 상대적으로 관리가 취약하여 공격자의 목표가 되어 계정이 탈취될 수 있음
※ 퇴직, 전직, 휴직 등의 사유발생시 즉시 권한을 회수
▶ 참고
※ Default 계정: OS나 Package 설치 시 기본적으로 생성되는 계정(예 lp, uucp, nuucp 등)
※ 불필요한 default 계정 삭제 시 업무 영향도 파악 후 삭제 권고
2. 점검대상 및 판단 기준
▶ 대상 : SOLARIS, LINUX, AIX, HP-UX 등
▶ 판단기준
· 양호 : 불필요한 계정이 존재하지 않는 경우
· 취약 : 불필요한 계정이 존재하는 경우
▶ 조치방법 : 현재 등록된 계정 현황 확인 후 불필요한 계정 삭제
3. LINUX 초기 설정값
※ 테스트한 LINUX의 버전은 AWS로 구성된 CentOS 9 입니다.
확인방법
1) 미사용 계정 및 의심스러운 계정 존재 여부 확인
# 전체 계정
$ cat /etc/passwd
# UID가 1000 이상인 계정
$ awk -F: '$3 >= 1000' /etc/passwd
2) 사용하지 않는 Default 계정 점검
$ cat /etc/passwd | egrep "lp|uucp|nuucp"
확인방법 대로 점검을 해보겠습니다.
# 1) 미사용 계정 및 의심스러운 계정 존재 여부 확인
[ec2-user@localhost ~]$ awk -F: '$3 >= 1000' /etc/passwd
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin
ec2-user:x:1000:1000:Cloud User:/home/ec2-user:/bin/bash
it-mskim:x:1001:1001::/home/it-mskim:/bin/bash
test1:x:1002:1002::/home/test1:/bin/bash
user1:x:1003:1003::/home/user1:/bin/bash
# 2) 사용하지 않는 Default 계정 점검
$ cat /etc/passwd | egrep "lp|uucp|nuucp"
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
flatpak:x:983:982:User for flatpak system helper:/:/sbin/nologin
1번에서 이야기하는 미사용 계정 및 의심서르운 계정의 존재 여부 확인의 경우 실제 사용하지 않는 계정을 확인합니다.
ec2-user
it-mskim
test1
user1
총 4개의 계정이 있는데 아무리 봐도 test1, user1과 같은 계정이 의심스럽습니다.
실제로도 테스트를 목적으로 만든 계정입니다.
2번의 경우 사용하지 않는 default 계정 점검입니다.
가이드에서는 lp, uucp, nuucp 3개를 확인하라고 되어있는데 계정 삭제 시 업무 영향도 파악 후 삭제 권고하고 있습니다.
- lp: 인쇄 작업을 관리, lpd(라인 프린터 데몬)와 같은 인쇄 서비스가 프린터와 상호작용하는 데 필요한 권한을 제공
- uucp: Unix-to-Unix Copy Protocol의 약자로, 원거리 시스템 간에 파일을 전송, 이메일을 교환하는 데 사용됩니다. 네트워크를 통해 데이터를 전송하는 데 필요한 권한을 가짐
- nuucp: uucp의 네트워크 확장 버전, 특히 TCP/IP 네트워크 환경에서 파일 전송 및 이메일 전송을 위한 것으로 현대적인 네트워크 환경에 맞게 최적화되어 있음
우선 불필요한 계정이존재하므로 취약입니다.
4. 조치
조치를 해보겠습니다.
불필요한 계정을 삭제 합니다.
# 계정 삭제 명령어
$ userdel <user_name>
$ userdel -r <user_name>
제가 보유하고 있는 계정 중 test1, user1 이 불필요하다고 보고 삭제를 진행하겠습니다.
삭제 명령어는 2개를 사용했습니다.
# userdel 명령어로 계정 삭제
# /etc/passwd와 /etc/shadow 파일에서 사용자 정보가 제거됩니다.
# 사용자의 홈 디렉토리나 관련 파일(예: 메일 스풀 등)은 삭제되지 않습니다.
[ec2-user@localhost ~]$ sudo userdel test1
userdel: user test1 is currently used by process 130596
# userdel -r 명령어로 계정 삭제
# /etc/passwd와 /etc/shadow 파일에서 사용자 정보가 제거됩니다.
# 사용자의 홈 디렉토리와 그 안의 모든 파일이 삭제됩니다.(관련 메일 스풀도 함께 삭제)
[ec2-user@localhost ~]$ sudo userdel -r user1
test1, user1 계정을 삭제했습니다.
5. 결과
삭제된 계정을 확인해보겠습니다.
[ec2-user@localhost ~]$ awk -F: '$3 >= 1000' /etc/passwd
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin
ec2-user:x:1000:1000:Cloud User:/home/ec2-user:/bin/bash
it-mskim:x:1001:1001::/home/it-mskim:/bin/bash
삭제가 전부 완료되어 2개의 계정만 남아있는 것을 확인 할 수 있습니다.
문제는 위의 두개의 삭제방법에서 나왔듯이
userdel -> passwd 파일에서 계정삭제됨, 홈디렉토리 삭제안됨!
userdel -r -> passwd 파일에서 계정삭제됨, 홈디렉토리 삭제됨!
이 두개의 차이점이 있었습니다.
확인해보겠습니다.
# home 디렉토리로 이동하여 확인
[ec2-user@localhost ~]$ cd /home
[ec2-user@localhost home]$ ll
total 0
drwx------. 3 ec2-user ec2-user 111 Sep 26 23:04 ec2-user
drwx------. 4 it-mskim it-mskim 109 Sep 24 16:01 it-mskim
drwx------. 6 1002 1002 154 Sep 27 02:24 test1
user1의 홈디렉토리는 정상 삭제되었지만 test1의 경우 삭제가 되지 않았습니다.
홈파일의 사용자계정만 삭제되어 뜨지 않는 것을 확인 할 수 있습니다.
home/test1 까지 삭제를 하고 싶으시다면 아래 명령어로 삭제를 해주면됩니다.
# 파일 삭제 명령어
$ sudo rm -rf /home/test1
# 삭제 예시
[ec2-user@localhost home]$ sudo rm -rf /home/test1
[ec2-user@localhost home]$ ll
total 0
drwx------. 3 ec2-user ec2-user 111 Sep 26 23:04 ec2-user
drwx------. 4 it-mskim it-mskim 109 Sep 24 16:01 it-mskim
삭제가 완료되었습니다.
※ 계정을 삭제했는데도 불구하고 /etc/passwd 파일에는 아직 남아있다면 시간이 조금 지나면 사라집니다.
아마 시간이 조금 걸리는 경우가 있는 것 같습니다.
Linux를 마스터하는 그날까지
화이팅!
'취약점 진단 > UNIX 취약점 진단' 카테고리의 다른 글
[UNIX] U-51 계정이 존재하지 않는 GID 금지 (1) | 2024.10.03 |
---|---|
[UNIX] U-50 관리자 그룹에 최소한의 계정 포함 (0) | 2024.10.03 |
[UNIX] 번외. 기존계정 패스워드 최대/최소 사용기간 설정하는 방법 (1) | 2024.09.30 |
[UNIX] U-48 패스워드 최소 사용기간 설정 (0) | 2024.09.29 |
[UNIX] U-47 패스워드 최대 사용기간 설정 (0) | 2024.09.29 |