본문 바로가기
공부/KISA

패스워드 복잡성 설정 - KISA 주요정보통신기반시설 기술적 취약점 분석ㆍ평가 방법상세가이드

by Skogkatt의 개인 블로그 2020. 7. 27.
반응형

 https://www.kisa.or.kr/public/laws/laws3.jsp

 

기술안내서 가이드 < 관련법령·기술안내서 < 자료실 : 한국인터넷진흥원

기술안내서 가이드 한국인터넷진흥원 기술안내서 가이드 입니다. 게시판 목록 보기 기술안내서 가이드 표 대분류 소분류 기술안내서 가이드 대상 수준 인터넷 진흥 및 이용 활성화 인터넷 진흥

www.kisa.or.kr


보안 가이드라인 - UNIX 서버 - 계정관리(기본사항) - 패스워드 복잡성 설정

취약점 개요

점검 내용

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

점검 목적

  • 패스워드 복잡성 관련 정책이 설정되어 있는지 점검하여 비인가자의 공격(무작위 대입 공격, 사전 대입 공격 등)에 대비가 되어 있는지 확인하기 위함

보안 위협

  • 패스워드 복잡성 설정이 되어 있지 않은 사용자 계정 패스워드 존재 시 비인가자가 각종 공격(무작위 대입 공격, 사전 대입 공격 등)을 통해 취약한 패스워드가 설정된 사용자 계정의 패스워드를 획득하여 획득한 사용자 계정 정보를 통해 해당 사용자 계정의 시스템에 접근할 수 있는 위험이 존재함

참고

  • 패스워드 복잡성: 사용자 패스워드 설정 시 영문(대문자, 소문자) 숫자, 특수문자가 혼합된 패스워드로 설정하는 방법
  • 공공기관인 경우 국가정보보안 기본지침에 의해 패스워드를 9자리 이상의 길이로 설정해야 함

점검대상 및 판단기준

대상

  • SOLARISE, LINUX, AIX, HP-UX 등

판단기준

양호
  • 영문-숫자/특수문자를 조합하여 2종류 조합 시 10자리 이상, 3종류 이상 조합 시 8자리 이상의 패스워드가 설정된 경우 (공공기관 9자리 이상)
취약
  • 영문-숫자/특수문자를 조합하지 않거나 2종류 조합 시 10자리 미만, 3종류 이상 조합 시 8자리 미만의 길이가 패스워드로 설정된 경우 (공공기관 9자리 미만)

조치방법

  • 계정과 유사하지 않은 8자 이상의 영문, 숫자, 특수문자의 조합으로 암호 설정 및 패스워드 복잡성 옵션 설정

점검 및 조치 사례

OS별 점검 파일 위치 및 점검 방법

  • OS별 점검 파일을 열어 패스워드를 확인한 후 아래의 보안설정 방법에 따라 설정을 변경함
SOLARIS, LINUX, HP-UX 
  • /etc/shadow 파일 내 설정된 패스워드 점검
AIX
  • /etc/security/passwd

부적절한 패스워드 유형

  • 사전에 나오는 단어나 이들의 조합
  • 길이가 너무 짧거나, NULL(공백)인 패스워드)
  • 키보드 자판의 일련의 나열 예) qwfp, arst, zxcv
  • 사용자 계정 정보에서 유추 가능한 단어 및 정보 예) 지역명, 부서명, 계정명, 이니셜 등

패스워드 관리 방법

  • 영문, 숫자, 특수문자를 조합하여 계정명과 상이한 8자 이상의 패스워드 설정
  • 시스템마다 상이한 패스워드 사용
  • 패스워드를 기록해 놓을 경우 변형하여 기록
  • 가급적 자주 패스워드를 변경할 것

패스워드 설정 파일 정리

SOLARIS

Step 1) 패스워드 복잡성 설정

- #/etc/default/passwd 내용을 내부 정책에 맞도록 편집

  • maxweeks = 4 (최대 사용기간 설정)
    최대 4주까지 설정된 패스워드 사용 가능
  • minweeks = 3 (최소 사용기간 설정)
    최소 3주까지 설정된 패스워드 사용 가능

- 사용자에게 3~4주 사이에 암호를 변경하도록 요구

  • passlengh = 8 (최소 길이 설정)

- 아래 설정값은 솔라리스 10부터 추가 적용된 설정값

  • HISTOR = 10 (패스워드 기억 개수)
    10개의 암호를 기억함
  • MINDIFF = 4 (이전 암호화의 차이)
    이전 암호화 4자 이상 차이를 요구
  • MINALPHA= 1 (최소 문자 요구)
    최소 1자 이상의 문자 요구
  • MINNONALPHA = 1 (최소 숫자 또는 특수문자 요구)
    최소 숫자 또는 특수문자 1자 이상 요구

- DIGIT이나 SPECIAL 이 설정되어 있을 경우 NONALPHA 설정 안 됨

  • MINUPPER = 1 (최소 대문자 요구)
    최소 1자 이상의 대문자 요구
  • MINLOWER = 1 (최소 소문자 요구)
    최소 1자 이상의 소문자 요구
  • MAXREPEATS = 0 (연속 문자 사용 허용 여부)
    0일 경우 문자 연속 사용이 불가능
  • MINSPECIAL = 1(최소 특수문자 요구)
    최소 1자 이상의 특수문자 요구
  • MINDIGIT = 1 (최소 숫자 요구)
    최소 1자 이상 숫자 요구
LINUX - RHEL5 

Step 1) 패스워드 복잡성 설정 파일 확인
    #/etc/pam.s/system-auth, /etc/login.defs 내용을 내부 정책에 맞도록 편집

Step 2) /etc/pam.d/system

패스워드 정책 설정 예)
password requisite  /lib/security/$ISA/pam_cracklib.so retry=3 min=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%))

Step 3) /etc/login.defs 파일 설정

  • pass_warm_age = 7 (패스워드 기간 만료 경고)
    7일이 남은 시점부터 패스워드 변경 알림
  • pass_max_day = 60 (최대 패스워드 사용 기간 설정)
    설정일로부터 60일까지 사용 가능
  • pass_min_day = 1 (최소 패스워드 변경 기간 설정)
    최소 1일 경과 후 패스워드 변경 가능
AIX

Step 1) 패스워드 복잡성 설정 파일 확인

#/etc/security/user 파일 내용을 내부 정책에 맞도록 설정

  • dictionlist = (패스워드에 unix 명령어가 포함되지 않게 함)
    dictionlist = /usr/share/dict/words으로 설정
  • histexpire = 26 (몇 주 후에 동일한 패스워드가 재사용될 수 있는지 설정)
    26주 후에 동일한 패스워드 사용 가능
  • histsize = 20 (최근 사용된 패스워드를 몇 개 까지 재사용할 수 없게 할지를 설정)
    최근 20개 패스워드는 재사용할 수 없음
  • maxage = 4 (패스워드가 몇 주 동안 유효할 수 있는지 정의)
    최대 패스워드 사용 기간 4주로 설정
  • minage = 1 (패스워드를 바꾸기 위해서 경과되어야 하는 최소한의 시간)
    최소 1주 이후에 패스워드 변경 가능
  • maxepired = 2(maxage가 지난 다음에 expire 된 패스워드를 변경할 있는 최대 주)
    최대 패스워드 사용 기간 경과 후 2주 이내에 패스워드 변경 가능
  • maxrepeats = 2 (패스워드에 반복 가능한 동일 문자의 최대 수)
    최대 2자까지 반복 사용 가능
  • minalpha = 2 (최소 몇 개의 알파벳 문자를 포함해야 하는지 설정)
    최소 2개 영문자 포함
  • mindiff = 4 (이전 패스워드와 신규 패스워드 사이에 최소한의 다른 문자 수)
    최소 4개 문자 반복 금지
  • minlen = 8 (패스워드 최소 길이)
    패스워드 최소 8자리
  • pwdwarntime = 5 (패스워드 변경이 필요함을 며칠 전부터 알릴지 설정)
    5일 전부터 패스워드 변경 알림
HP-UX

Step 1) 패스워드 복잡성 설정

#/etc/default/security 내용을 내부 정책에 맞도록 편집

  • INACTIVITY_MAXDAYS = 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개의 특수문자 필요
반응형

댓글