본문 바로가기
인프라 진단/전자금융기반시설(서버) - Linux

SRV-069 비밀번호 관리정책 설정 미비

by 49 BLOCK 2024. 1. 3.

 

notice

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 : (조치과정 삭제)