반응형
https://www.kisa.or.kr/public/laws/laws3.jsp
보안 가이드라인 - 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개의 특수문자 필요
반응형
'공부 > KISA' 카테고리의 다른 글
패스워드 파일 보호 - KISA 주요정보통신기반시설 기술적 취약점 분석ㆍ평가 방법상세가이드 (0) | 2020.07.31 |
---|---|
계정 잠금 임계값 설정 - KISA 주요정보통신기반시설 기술적 취약점 분석ㆍ평가 방법상세가이드 (0) | 2020.07.30 |
root 계정 원격 접속 제한 - KISA 주요정보통신기반시설 기술적 취약점 분석ㆍ평가 방법상세가이드 (0) | 2020.07.24 |
취약한 API 사용 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.22 |
DNS lookup에 의존한 보안결정 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.22 |
댓글