보안 실습

[서버 진단] Unix 계정 관리 점검

1학년 2024. 8. 6. 18:44

"주요정보통신기반시설 기술적 취약점 진단 가이드"의 Unix 서버 가이드를 통해 

Rocky linux 취약점 진단을 하고자한다.

 

분류 : 계정관리

코드 : U-01

중요도 : 상

점검항목 : root 계정 원격접속 제한

판단기준 양호 : 원격 터미널 서비스를 사용하지 않거나, 사용 시 root 직접 접속을 차단한 경우
취약 : 원격 터미널 서비스 사용 시 root 직접 접속을 허용한 경우
cat sshd_config

 

sshd_config 설정

#PermitRootLogin prohibit-password
telnet 비활성화

 

yes : root 로그인 허용

no : root 로그인 금지

prohibit-password : key 파일을 통한 root 로그인 허용

 

진단 : /etc/ssh/sshd_config 파일 내 PermitRootLogin 항목이 주석 처리가 되어있어 로그인이 가능한 상태

진단 결과 : 취약

 

 

 

코드 : U-02

중요도 : 상

점검항목 : 패스워드 복잡성 설정

판단기준 양호 : 패스워드 최소길이 8자리 이상, 영문·숫자·특수문자 최소 입력 기능이 설정된 경우
취약 : 패스워드 최소길이 8자리 이상, 영문·숫자·특수문자 최소 입력 기능이 설정된 경우
vi /etc/security/pwquality.conf
difok =1
minlen =8
dcredit =0
ucredit =0
lcredit =0
ocredit =0

 

진단 : /etc/security/pwquality.conf 파일 내 패스워드 복잡도 설정이 되어있지 않은 상태

진단 결과 :  취약

 

 

 

코드 : U-03

중요도 : 상

점검항목 : 계정 잠금 임계값 설정

판단기준 양호 :계정 잠금 임계값이 10회 이하의 값으로 설정되어 있는 경우
취약 :계정 잠금 임계값이 설정되어 있지 않거나, 10회 이하의 값으로 설정되지 않은 경우
vi /etc/pam.d/system-auth
pam_tally 설정 값 x

 

진단 : /etc/pam.d/system-auth 파일 내 임계값 잠금 해제 시간이 설정되어 있지 않은 상태

진단 결과 : 취약

 

 

 

코드 : U-04

중요도 : 상

점검항목 : 패스워드 파일 보호

판단기준 양호 : 쉐도우 패스워드를 사용하거나, 패스워드를 암호화하여 저장하는 경우
취약 : 쉐도우 패스워드를 사용하지 않고, 패스워드를 암호화하여 저장하지 않는 경우
cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
rocky:x:1000:1000:rocky:/home/rocky:/bin/bash

 

진단 :/etc/passwd 파일 내 로그인 가능한 계정 (root, rocky)의 패스워드가 암호화 되어있는 상태

진단 결과 : 양호

 

 

 

코드 : U-44

중요도 : 중

점검항목 : root 이외의 UID가 '0' 금지

판단기준 양호 : root 계정과 동일한 UID를 갖는 계정이 존재하지 않는 경우
취약 :  root 계정과 동일한 UID를 갖는 계정이 존재하는 경우
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
rocky:x:1000:1000:rocky:/home/rocky:/bin/bash

 

진단 : /etc/pam.d/system-auth파일 내 root 계정이외에 UID가 ‘0’인 계정 없음

진단 결과 : 양호

 

 

 

코드 : U-45

중요도 : 하

점검항목 : root 계정 su 제한

판단기준 양호 : su 명령어를 특정 그룹에 속한 사용자만 사용하도록 제한되어 있는 경우
취약 : su 명령어를 모든 사용자가 사용하도록 설정되어 있는 경우
cat /etc/group
cat /etc/pam.d/su | grep “auth”
ls –l /usr/bin/su
wheel:X:10:
#auth required pam_wheel.so use_uid
-rwsr-xr-x. 1 root root 57056 Apr 21 03:24 /usr/bin/su

 

진단 : su 명령어 사용 그룹 설정, su 파일 권한값 설정등 su 명령어 사용 제한과 관련된 설정이 되어있지 않음

진단 결과 : 취약

 

 

 

코드 : U-46

중요도 : 중

점검항목 : 패스워드 최소 길이 설정

판단기준 양호 : 패스워드 최소 길이가 8자 이상으로 설정되어 있는 경우
취약 : 패스워드 최소 길이가 8자 미만으로 설정되어 있는 경우
cat /etc/login.defs | grep “PASS_MIN_LEN”
#PASS_MIN_LEN Minimum acceptable password length

진단 : /etc/login.defs 파일 내에 PASS_MIN_LEN 설정값이 없는 상태 (신규 삽입해야함)

진단 결과 : 취약

 

 

 

코드 : U-47

중요도 : 중

점검항목 : 패스워드 최대 사용 기간 설정

판단기준 양호 : 패스워드 최대 사용기간이 90일(12주) 이하로 설정되어 있는 경우
취약 : 패스워드 최대 사용기간이 90일(12주) 이하로 설정되어 있지 않는 경우
cat /etc/login.defs | grep “PASS_MAX_DAYS”
PASS_MAX_DAYS 99999

진단 : /etc/login.defs 파일 내 PASS_MAX_DAYS 설정 값이 최대 사용기간이 99999일로 기준 90일(12주)보다 높게 설정되어있음

진단 결과 : 취약

 

 

 

코드 : U-48

중요도 : 중

점검항목 : 패스워드 최소 사용기간 설정

판단기준 양호 : 패스워드 최소 사용기간이 1일 이상 설정되어 있는 경우
취약 : 패스워드 최소 사용기간이 설정되어 있지 않는 경우
cat /etc/login.defs | grep “PASS_MIN_DAYS”
PASS_MIN_DAYS 0

진단 : /etc/login.defs 파일 내 PASS_MIN_DAYS 설정 값이 최소 사용기간 0일로 기준 1일보다 낮게 설정되어 있음

진단 결과 : 취약

 

 

 

코드 : U-49

중요도 : 하

점검항목 : 불필요한 계정 제거

판단기준 양호 : 불필요한 계정이 존재하지 않는 경우
취약 :  불필요한 계정이 존재하는 경우
cat /etc/passwd
cat /etc/passwd | egrep “lp|uucp|nuucp”
root:x:0:0:root:/root:/bin/bash
rocky:x:1000:1000:rocky:/home/rocky:/bin/bash
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

진단 : 사용 가능한 계정으로는 불필요한 계정은 없는 상태이고 lp 같은 경우에는 nologin 상태

진단 결과 : 양호

 

 

 

코드 : U-50

중요도 : 하

점검항목 : 관리자 그룹에 최소한의 계정 포함

판단기준 양호 : 관리자 그룹에 불필요한 계정이 등록되어 있지 않은 경우
취약 :  관리자 그룹에 불필요한 계정이 등록되어 있는 경우
cat /etc/group
root:x:0:

진단 : /etc/passwd 파일 확인 결과 root 그룹에 추가된 계정이 없는 상태

진단 결과 : 양호

 

 

 

코드 : U-51

중요도 : 하

점검항목 : 계정이 존재하지 않는 GID 금지

판단기준 양호 : 시스템 관리나 운용에 불필요한 그룹이 삭제 되어있는 경우
취약 :  시스템 관리나 운용에 불필요한 그룹이 존재할 경우
cat /etc/group | grep “root\|rocky”
root:x:0:
rocky:x:1000:

진단 : /etc/group 파일 내 root와 rocky 계정의 그룹이 모두 존재하는 상태

진단 결과 : 양호

 

 

 

코드 : U-52

중요도 : 중

점검항목 : 동일한 UID 금지

판단기준 양호 : 동일한 UID로 설정된 사용자 계정이 존재하지 않는 경우
취약 : 동일한 UID로 설정된 사용자 계정이 존재하는 경우
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
rocky:x:1000:1000:rocky:/home/rocky:/bin/bash

진단 : /etc/passwd 파일에 UID가 같은 계정 없음

진단 결과 : 양호

 

 

 

코드 : U-53

중요도 : 하

점검항목 : 사용자 shell 점검

판단기준 양호 : 로그인이 필요하지 않은 계정에 /bin/false(/sbin/nologin) 쉘이 부여되어 있는 경우
취약 : 로그인이 필요하지 않은 계정에 /bin/false(/sbin/nologin) 쉘이 부여되지 않은 경우
cat /etc/passwd |egrep
“^daemon|^bin|^sys|^adm|^listen|^nobody|^nobody4|
^noaccess|^diag|^operator|^games|^gopher”
| grep –v “admin”
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
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin

진단 : /etc/passwd 파일에 검색한 계정들이 nologin 설정 되어있는 것을 확인 

진단 결과 : 양호

 

 

 

코드 : U-54

중요도 : 하

점검항목 : Session Timeout 설정

판단기준 양호 : Session Timeout이 600초(10분) 이하로 설정되어 있는 경우
취약 :  Session Timeout이 600초(10분) 이하로 설정되지 않은 경우
cat /etc/profile | grep “TMOUT”
x

진단 : /etc/profile 파일 내에 TMOUT 설정이 안되어 있는 것을 확인 

진단 결과 : 취약