취약점 진단 가이드/UNIX 서버 진단 가이드

U-02(상) 패스워드 복잡성 설정

H.J.World 2020. 8. 24. 13:29
728x90
반응형

주요정보통신기반시설 관리기관은 -정보통신기반 보호법- 제9조에 따라, 주요정보통신기반시설로 신규 지정된 후 6개월이내, 그리고 매년 취약점 분석/평가를 실시하여야 한다. 취약점 분석/평가는 453개의 관리적/물리적/기술적 점검항목에 대한 주요정보통신기반시설의 취약여부를 점검하여, 악성코드 유포, 해킹 등 사이버 위협 대응을 위한 종합적 개선과정이다.

주요정보통신기반시설 취약점 Unix 점검 항목

■ 취약점 개요

○ 점검개요 : 시스템 정책에 root 계정의 원격 터미널 접속 차단 설정이 적용 되어 있는지 점검

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

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

○ 점검대상 : SOLARIS, LINUX, AIX, HP-UX 등

○ 판단기준

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

■ 부적절한 패스워드 유형


○ 사전에 나오는 단어나 이들의 조합
○ 길이가 너무 짧거나, NULL(공백)인 패스워드
○ 키보드 자판의 일련의 나열
- (예)abed, qwert, etc
○ 사용자 계정 정보에서 유추 가능한 단어들
- (예)지역명, 부서명, 계정명, 사용자 이름의 이니셜, root, root root, root123, admin 등

■ 패스워드 관리 방법

○ 영문, 숫자, 특수문자를 조합하여 계정명과 상이한 8자 이상의 패스워드 설정
- 다음 각 목의 문자 종류 중 2종류 이상을 조합하여 최소 10자리 이상 또는, 3종류 이상을 조합하여 최소 8자리 이상의 길이로 구성(공공기관 9자리 이상)

(1)영문 대문자(26개)
(2)영문 소문자(26개)
(3)숫자(10개)
(4)특수문자(32개)

○ 시스템마다 상이한 패스워드 사용
○ 패스워드를 기록해 놓을 경우 변형하여 기록
○ 가급적 자주 패스워드를 변경할 것

■ 조치방안

○ SOLATIS

패스워드 복잡성 설정

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

ㆍ사용자에게 3주~4주 사이에 암호를 변경하도록 요구
maxweeks = 4(최대 사용 기간 설정)
minweeks = 3(최소 사용 기간 설정)

ㆍ최소 8자 이상의 암호를 요구
passlength = 8(최소 길이 설정)

ㆍSOLARIS 10부터 추가 적용된 설정값
HISTORY = 10(패스워드 기억 개수)
MINDIFF = 4 (이전 암호 글자 수 차이 요구)
MINALPHA = 1(최소 1자 이상 문자 요구)
MINNONALPHA = 1(최소 1자 이상 숫자 또는 특수문자 요구)

ㆍDIGIT 이나 SPECIAL 이 설정되어 있을 경우 NONALPHA 설정 불가
MINUPPER=1(최소 1자 이상 대문자 요구)
MINLOWER=1(최소 1자 이상 소문자 요구)
MAXREPEATS=0(연속문자 사용 불가)
MINSPECIAL=1(최소 1자 이상 특수문자 요구)
MINDIGIT=1(최소 1자 이상 숫자 요구)

○ LINUX

“/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

ㆍ각 변수에 대한 설명(각 항목에서 –1 값은 반드시 해당하는 문자를 포함시켜야한다는 의미)
credit=-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일 경과 후 패스워드 변경 가능)

○ AIX

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

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

dictionlist = /usr/share/dict/words 으로 설정
dictionlist = (패스워드에 unix 명령어가 포함되지 않도록 설정)
histexpire = 26(26주 후에 동일한 패스워드 사용 가능)
histsize = 20(최근 20개 패스워드는 재사용할 수 없음)
maxage = 4(최대 패스워드 사용 기간 4주로 설정)
minage = 1(최소 1주 이후에 패스워드 변경 가능)
maxexpired = 2(최대 패스워드 사용 기간 경과 후 2주 이내에 패스워드 변경 가능)
maxrepeats = 2(최대 2자까지 반복 사용 가능)
minalpha = 2(최소 2개 영문자 포함)
minother = 2(영문자 외 다른 문자 최소 2개 필요)
mindiff = 4(최소 4개 문자 반복 금지)
minlen = 8(패스워드 최소 8자리)
pwdwarntime = 5(5일전부터 패스워드 변경 알림)

○ HP-UX

패스워드 복잡성 설정

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

INACTMTY_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개의 특수문자 필요)

728x90
반응형