본문 바로가기

Hacking/[Infra] 인프라 취약점 점검

[UNIX] U-02 / 패스워드 복잡성 설정

시스템 정책에 사용자 계정(root 및 일반 계정 모두 해당) 패스워드 복잡성 관련 설정이 되어 있는지 점검한다.

 

판단기준은 영문, 숫자, 특수문자를 조합해 2종류 조합 시 10자리 / 3종류 조합 시 8자리 이상, 공공기관은 9자리 이상

 

솔라리스

/etc/default/passwd의 내용에서 다음 정책을 체크한다

maxweeks = 4 (최대 사용 기간 설정)

minwekks = 3 (최소 사용 기간 설정)

passlength = 8 (최소 길이 설정)

 

솔라리스 10부터는 추가로 적용된 설정값이 존재한다.

HISTORY=10 (패스워드 기억 개수)

MINDIFF=4 (이전 암호와 차이)

MINALPHA=1 (최소 문자 요구, 알파벳)

MINNONALPHA=1 (알파벳 이외 최소 숫자 또는 특수문자 요구, DIGIT/SPECIAL 설정되있을 경우 설정 불가)

MINUPPER=1 (최소 대문자 요구)

MINLOWER=1 (최소 소문자 요구)

MAXREPEATS=0 (연속문자 사용 허용, 0 or 1)

MINSPECIAL=1 (최소 특수문자 요구)

MINDIGIT=1 (최소 숫자 요구)

 

리눅스

RHEL5(/etc/pam.d/system-auth, /etc/login.defs)

/etc/pam.d/system-auth

password requisite /lib/security/$ISA/pam_cracklib.so retry=3 minlen=8 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1

lcredit=-1 소문자 최소 1글자 이상
ucredit=-1 대문자 최소 1글자 이상
dcredit=-1 숫자 최소 1글자 이상
ocredit=-1 특수문자 최소 1글자 이상
minlen=8 패스워드 길이 최소 8자리 이상 설정
retry=3 패스워드 입력 실패 3번까지 재입력 가능
difok=N 이전 패스워드와 비교(기본값 10(50%))

/etc/login.defs

pass_warn_age=7 패스워드 만료 7일 전 패스워드 변경 알림
pass_max_days=60 패스워드 설정일로부터 60일까지 사용 가능
pass_min_day=1 패스워드 설정 후 최소 1일 경과 후 패스워드 변경이 가능

RHEL7(/etc/security/pwquality.conf,/etc/login/defs)

/etc/security/pwquality.conf

password requisite pam_cracklib.so try_first_pass retry=3 minlen=8 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1

# try_first_pass는 이전단계에서 입력받은 패스워드가 있다면 그것으로 검증하는 것을 의미함.

lcredit=-1 소문자 최소 1글자 이상
ucredit=-1 대문자 최소 1글자 이상
dcredit=-1 숫자 최소 1글자 이상
ocredit=-1 특수문자 최소 1글자 이상
minlen=8 패스워드 길이 최소 8자리 이상 설정
retry=3 패스워드 입력 실패 3번까지 재입력 가능
difok=N 이전 패스워드와 비교(기본값 10(50%))

/etc/login/defs

pass_warn_age=7 패스워드 만료 7일 전 패스워드 변경 알림
pass_max_days=60 패스워드 설정일로부터 60일까지 사용 가능
pass_min_day=1 패스워드 설정 후 최소 1일 경과 후 패스워드 변경이 가능

HP-UX

/etc/default/security

INACTIVITY_MAXDAY=100 100일동안 계정 사용이 없을 경우 만료 시킴
PASSWORD_MINDAYS=1 패스워드 변경 후 최소 1일 경과 후 패스워드 변경 가능
PASSWORD_MAXDAYS=90 해당 패스워드 최대 90일까지 사용 가능
PASSWORD_WARNDAYS=15 패스워드 만료 15일 전부터 패스워드 만료 알림이 나온다
MIN_PASSWORD_LENGTH=8 최소 패스워드 길이는 8자 이상이다
PASSWORD_MIN_UPPER_CASE_CHARS=1 패스워드에 최소 1개 이상의 대문자를 포함시켜야 한다.
PASSWORD_MIN_LOWER_CASE_CHARS=1 패스워드에 최소 1개 이상의 소문자를 포함시켜야 한다.
PASSWORD_MIN_DIGIT_CHARS=1 패스워드에 최소 1개 이상의 숫자를 포합시켜야 한다.
PASSWORD_MIN_SPECIAL_CHARS=1 패스워드에 최소 1개 이상의 특수문자를 포함시켜야 한다.

[ISSUE]

HP-UX에는 패스워드 최소 길이 이슈가 존재한다고 한다. (HP-UX B.11.31 기준)

공공기관에서의 9자리를 설정하기 위해 MIN_PASSWORD-LENGTH를 9로 설정했을 때 오류가 발생하는 문제이다.

HP-UX에는 Untrust모드,Trust 모드가 존재하는데 Untrust모드에서는 기본적으로 6~8자리까지만 설정할 수 있고 Trust에서는 6~80자리까지 설정 가능하다고 한다. 그래서 SAM에서는 /etc/default/security를 읽어오며, Untrust에서는 9자리 설정이 불가능하다.

하지만 root로 직접 passwd 명령어를 통해 각각 비번을 설정해주면 자릿수 제한 없이 설정이 가능하다고 한다.

결론은 주통기에서 공공기관에 조치를 해줄 때 MIN_PASSWORD_LENGTH의 9 설정은 의미가 없고  root 계정을 통해서 각 계정에 설정을 해주는게 좋을 것이라고 한다.

추가로 LongPass11i3을  설치하면 9자리 설정이 가능하다고 한다.

출처 : https://ziscuffine.tistory.com/154?category=829889 

 

주요정보통신기반시설 U-46 [HP-UX] 패스워드 최소 길이 설정 (9자리 가능한지, LongPass11i3 설치 및 사

대상 서버 : HP-UX B.11.31  (pwconv 명령어를 통해 shadow가 생성된 상태에서 테스트 스크린샷, 생성 전에도 결과는 같았다.) HP 서버에서 패스워드 최소자리 9자리 설정에 관한 이슈 사항이 있어서 테스

ziscuffine.tistory.com

 

 

AIX

/etc/security/user

dictionlist = (패스워드에 unix 명령어가 포함되지 않게 한다.)

dictionlist=/usr/share/dict/words으로 설정

histexpire=26 26주 후 동일한 패스워드 사용 가능
histsize=20 최근에 사용된 패스워드 20개에 대해 재사용 불가능
maxage=4 해당 패스워드의 사용기간은 최대 4주
minage=1 최소 1주일 경과 후 패스워드의 변경 가능
maxexpired=2 최대 패스워드 사용기간 경과 후 2주 이내 패스워드 변경 가능
즉, maxage(4주) 이후 2주간 패스워드 변경 가능
maxrepeats=2 패스워드에 동일한 문자 2글자까지 반복가능
minalpha=2 최소 2개의 영문자가 포함되어 있어야 한다
minother=2 최소 2개의 영문자 이외 다른 문자가 필요하다.
mindiff=4 이전 패스워드와 비교했을 때 이전패스워드의 최소 4개 문자 반복 금지
minlen=8 패스워드는 최소 8자리 이상이어야 한다.
pwdwarntime=5 패스워드 변경 알림을 패스워드 만료 5일전부터 알림

Q. /usr/share/dict/words는 따로 건들 필요가 없는가?

A. 패키지가 설정되어 있으면 확인~ 아니면 걍 냅두고~

상용화 유닉스는 CD로 소프트웨어 그룹을 판매하기때문에 따로 apt, yum을 설치하지 못한다고 함.

/usr/share/dict/words는 bos.data 같은 파일셋에 포함되어 있는녀석이라 그러한 파일셋이 없으면 패키지가 없는 것이니 패스

있다면 해당 위치에 파일이 있어야 한다.

그래서 결론은 해당 경로가 존재한다면 양호로 가고 없다면 따로 기준에 맞는 부분이 있는지를 봐야한다는 것같다.

 - Thanks yummyHit