SRV-069 비밀번호 관리정책 설정 미비
【 상세설명 】
사용자 비밀번호에 대한 관리정책 설정이 미흡할 경우 유추하기 쉬운 비밀번호 설정, 주기적인 비밀번호 미변경 등 비인가자에 의한 계정 탈취 가능성이 높아지는 위협이 존재하므로 적절한 비밀번호 관리정책이 설정되어 있는지 여부를 점검
【 판단기준 】
[Linux]
- 양호 : 비밀번호 관련 정책들이 설정되어 있을 경우
- 취약 : 비밀번호 관련 정책들이 설정되어 있지 않을 경우
[AIX]
- 양호 : /etc/security/user 파일의 default: 섹션 밑의 비밀번호 관련 정책들이 설정되어 있을 경우
- 취약 : /etc/security/user 파일의 default: 섹션 밑의 비밀번호 관련 정책들이 설정되어 있지 않을 경우
[HP-UX]
- 양호 : /etc/default/security 파일에 비밀번호 관련 정책들이 설정되어 있을 경우
- 취약 : /etc/default/security 파일에 비밀번호 관련 정책들이 설정되어 있지 않을 경우
[SORALIS]
- 양호 : /etc/default/passwd 파일에 비밀번호 관련 정책들이 설정되어 있을 경우
- 취약 : /etc/default/passwd 파일에 비밀번호 관련 정책들이 설정되어 있지 않을 경우
※ 정책 기준: 영문 숫자 특수문자 2개 조합 시 10자리 이상, 3개 조합 시 8자리 이상, 패스워드 변경 기간 90일 이하
【 판단방법 】
■ Linux
1. 모든 활성 계정의 패스워드 변경 기간 확인
# chage -l <account_name>
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
※ Minimum number of days between password change(단위: 일) : 비밀번호 변경 후 비밀번호를 사용해야 하는 최소 일수(최소 일수가 지나야 비밀번호 변경 가능)
※ Maximum number of days between password change(단위: 일) : 비밀번호 변경 후 비밀번호 사용가능한 최대 일수(최대 일수가 지나면 비밀번호 변경해야 로그인 가능)
2. 비밀번호 길이 및 복잡도 정책 설정 확인 : "minlen" , "lcredit", "ucredit", "dcredit", "ocredit" 설정 확인
# cat /etc/pam.d/common-password | grep pam_unix.so
password [success=2 default=ignore] pam_unix.so obscure sha512 minlen=8
또는
password requisite pam_cracklib.so try_first_pass retry=3 type= minlen=8 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1
또는
password requisite pam_pwquality.so try_first_pass retry=3 minlen=8 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1
3. 비밀번호 변경 정책 설정 확인 : "/etc/login.defs" 설정 확인
# cat /etc/login.defs
# PASS_MIN_LEN 0
# PASS_MAX_DAYS 0
# PASS_MIN_DAYS 0
※ PASS_MIN_LEN : PAM 설정을 사용하지 않는 경우 설정(같이 설정된 경우 PAM 설정 적용)
■ RHEL
1. 모든 활성 계정의 패스워드 변경 기간 확인
# chage -l <account_name>
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
※ Minimum number of days between password change(단위: 일) : 비밀번호 변경 후 비밀번호를 사용해야 하는 최소 일수(최소 일수가 지나야 비밀번호 변경 가능)
※ Maximum number of days between password change(단위: 일) : 비밀번호 변경 후 비밀번호 사용가능한 최대 일수(최대 일수가 지나면 비밀번호 변경해야 로그인 가능)
2. PAM 모듈 설정 확인
# cat /etc/pam.d/passwd
auth include system-auth
account include system-auth
password substack system-auth
※ RHEL 계열에서 설정 미적용 시 계정 관리 솔루션 등 사용으로 include 된 정책이 변경되어 있거나 주석 처리 여부 확인 후 include 된 정책이나 계정 관리 솔루션 등에서 정책 적용 필요
※ RHEL 계열은 "/etc/pam.d/passwd" 에서 include 하는 파일의 정책 적용(Default : include system-auth)
3. 비밀번호 길이 및 복잡도 정책 설정 확인 : "minlen", "lcredit", "ucredit", "dcredit", "ocredit" 설정 확인
[RHEL 6]
# cat /etc/pam.d/system-auth | grep pam_cracklib.so
password requisite pam_cracklib.so try_first_pass retry=3 type= minlen=8 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1
[RHEL 7, 8, 9]
# cat /etc/pam.d/system-auth | grep pam_pwquality.so
password requisite pam_pwquality.so try_first_pass local_users_only retry=3
# cat /etc/security/pwquality.conf | egrep "minlen|dcredit|ucredit|lcredit|ocredit|minclass"
# minlen = 8
# dcredit = 0
# ucredit = 0
# lcredit = 0
# ocredit = 0
# minclass = 0
※ RHEL 7 이상 버전은 pam_cracklib.so 라이브러리가 pam_pwquality.so 라이브러리로 변경되면서 pwquality.conf 파일 사용해서 비밀번호 관리 정책 설정 가능
※ system-auth 과 pwquality.conf 파일에 동일한 비밀번호 정책을 다른 값으로 설정하면 system-auth 설정 값으로 적용
3. 비밀번호 변경 정책 설정 확인 : "/etc/login.defs" 설정 확인
# cat /etc/login.defs
# PASS_MIN_LEN 0
# PASS_MAX_DAYS 0
# PASS_MIN_DAYS 0
※ PASS_MIN_LEN : PAM 설정을 사용하지 않는 경우 설정(같이 설정된 경우 PAM 설정 적용)
※ Linux / RHEL 비밀번호 길이 및 복잡도 설정
- minlen : 비밀번호 최소 길이
- lrcredit : 최소 영어 소문자 포함 수
- urcredit : 최소 영어 대문자 포함 수
- drcredit : 최소 숫자 포함 수
- orcredit : 최소 특수 문자 포함 수
- minclass : 최소 문자 조합 수
■ AIX
1. 비밀번호 길이 및 복잡도 정책 설정 확인 : "minage", "maxage", "minalpha", "minother", "minlen" 등 설정 확인
# cat /etc/default/user
default:
minage = 1
maxage = 12
maxexpired = -1
minalpha = 1
minloweralpha = 1
minupperalpha = 0
minother = 2
mindigit = 1
minspecialchar = 1
minlen = 8
...
root:
minage = 0
maxage = 8
...
※ default 설정 보다 각 계정별 비밀번호 정책 우선 적용(예시 기준 root 계정은 minage = 0, maxage = 8 설정이 적용)
※ AIX 비밀번호 길이 및 복잡도 설정
- minage : 비밀번호 최소 사용 기간(단위 : 주)
- maxage : 비밀번호 최대 사용 기간(단위 : 주)
- maxexpired : maxage 이후 비밀번호를 변경할 수 있는 최대 기간(단위 : 주)
- minalpha : 최소 영문자 포함 수
- minloweralpha : 최소 영어 소문자 포함 수
- minupperalpha : 최소 영어 대문자 포함 수
- minother : 최소 영문자를 제외한 다른 문자(숫자, 특수문자 등) 포함 수
- mindigit : 최소 숫자 포함 수
- minspecialchar : 최소 특수 문자 포함 수
- minlen : 비밀번호 최소 길이
※ minloweralpha, minupperalpha, mindigit, minspecialchar 설정
- AIX 7.1(7100-00-00) 이상 버전에서만 추가 설정 가능
- minloweralpha, minupperalpha 의 합은 minalpha 보다 클 수 없으며 큰 경우 "minupperalpha = minalpha – minloweralpha" 로 값 적용
- mindigit, minspecialchar 의 합은 minother 보다 클 수 없으며 큰 경우 "minspecialchar = minother – mindigit" 로 값 적용
■ HP-UX
1. 비밀번호 길이, 복잡도 및 변경 정책 설정 확인 : "MIN_PASSWORD_LENGTH", "PASSWORD_MIN_UPPER_CASE_CHARS", "PASSWORD_MIN_LOWER_CASE_CHARS", "PASSWORD_MIN_DIGIT_CHARS", "PASSWORD_MIN_SPECIAL_CHARS", "PASSWORD_MINDAYS", "PASSWORD_MAXDAYS" 등 설정 확인
# cat /etc/default/security
MIN_PASSWORD_LENGTH=8
PASSWORD_MIN_UPPER_CASE_CHARS=1
PASSWORD_MIN_LOWER_CASE_CHARS=1
PASSWORD_MIN_DIGIT_CHARS=1
PASSWORD_MIN_SPECIAL_CHARS=1
PASSWORD_MAXDAYS=99999
※ HP-UX 비밀번호 길이 및 복잡도 설정
- MIN_PASSWORD_LENGTH : 비밀번호 최소 길이
- PASSWORD_MIN_UPPER_CASE_CHARS : 최소 영어 대문자 포함 수
- PASSWORD_MIN_LOWER_CASE_CHARS : 최소 영어 소문자 포함 수
- PASSWORD_MIN_DIGIT_CHARS : 최소 숫자 포함 수
- PASSWORD_MIN_SPECIAL_CHARS : 최소 특수 문자 포함 수
- PASSWORD_MINDAYS : 비밀번호 최소 사용 기간(단위 : 일)
- PASSWORD_MAXDAYS : 비밀번호 최대 사용 기간(단위 : 일)
2. Trust Mode 여부 확인
# /usr/lbin/getprdef -r
System is not trusted.
3. (Trust Mode 인 경우) Trust Mode 설정 파일에서 비밀번호 길이, 복잡도 및 변경 정책 설정 확인
# cat /tcb/files/auth/system/default
# cat /usr/newconfig/tcb/files/auth/system/default
default:\
...
:u_minchg#0:u_maxlen#8:u_exp#15724800:u_life#16934400:\
:u_pw_expire_warning#604800:u_pswduser=root:u_pickpw:u_genpwd:\
:u_restrict@:u_nullpw@:u_genchars@:u_genletters:\
:u_suclog#0:u_unsuclog#0:u_maxtries#3:u_lock:\
:\
:t_logdelay#2:t_maxtries#10:t_login_timeout#0:\
:chkent:
※ HP-UX Trust Mode 설정
- u_minchg : 비밀번호 최소 사용 기간(단위 : 초)
- u_maxlen : 비밀번호 최소 길이
- u_exp : 비밀번호 최대 사용 기간(Default : 15724800초 = 182일)
- u_life : 비밀번호 최대 수명(Default : 16934400초 = 196일)
- u_maxtries : 계정 잠금 임계 값
※ HP-UX Trust Mode 관련
- HP-UX 는 일반 모드에서 비밀번호가 6 ~ 8자까지만 설정 가능하며 "LongPassword11i3" Bundle 설치 후 "/etc/default/security" 에 "LONG_PASSWORD=1" 설정하면 비밀번호 255자까지 설정 가능(Trust Mode 는 비밀번호를 6 ~ 80자까지 설정 가능)
- HP-UX 11.2 버전 이하에서는 Trusted Mode 가 아닌 경우 계정 잠금 임계 값 설정 불가능
- HP-UX 11.3 버전 이상, Security 버전에서는 "/etc/default/security" 에서 계정 잠금 임계 값 설정 가능
- HP-UX 를 일반 모드에서 Trusted Mode 로 변경하는 경우 파일 시스템 등이 변경되므로 정보시스템 운영 환경 및 영향도 고려하여 적용 필요
■ SOLARIS 9 이하
1. 비밀번호 길이 및 변경 정책 설정 확인
# cat /etc/default/passwd
MAXWEEKS=12
MINWEEKS=1
WARNWEEKS=4
PASSLENGTH=8
■ SOLARIS 10, 11
1. 비밀번호 길이 및 복잡도 정책 설정 확인
# cat /etc/default/passwd
MAXWEEKS=12
MINWEEKS=1
WARNWEEKS=4
PASSLENGTH=8
MINALPHA=2
#MINNONALPHA=1
MINUPPER=1
MINLOWER=1
MINSPECIAL=1
MINDIGIT=1
※ "MINNONALPHA" 설정은 "MINSPECIAL" 또는 "MINDIGIT" 설정과 동시에 설정 불가
※ Solaris 비밀번호 길이 및 복잡도 설정
- MAXWEEKS : 비밀번호 최대 사용 기간(단위 : 주)
- MINWEEKS : 비밀번호 최소 사용 기간(단위 : 주)
- WARNWEEKS : 비밀번호 만료 전 경고 기간(단위 : 주)
- PASSLENGTH : 비밀번호 최소 길이
- MINALPHA : 최소 영문자 포함 수
- MINNONALPHA : 최소 영문자를 제외한 다른 문자(숫자, 특수문자 등) 포함 수
- MINUPPER : 최소 영어 대문자 포함 수
- MINLOWER : 최소 영어 소문자 포함 수
- MINSPECIAL : 최소 특수 문자 포함 수
- MINDIGIT : 최소 숫자 포함 수
【 조치방법 】
1. 비밀번호 길이 및 복잡도 정책 설정
2. 비밀번호 변경 정책 설정
2024-01-13 : (조치과정 삭제)
'인프라 진단 > 전자금융기반시설(서버) - Linux' 카테고리의 다른 글
SRV-070 취약한 패스워드 저장 방식 사용 (0) | 2024.01.03 |
---|---|
SRV-066 DNS Zone Transfer 설정 미흡 (0) | 2024.01.03 |
SRV-064 취약한 버전의 DNS 서비스 사용 (0) | 2024.01.03 |