UNIX/Linux 계정 관련 취약점
① root 이외의 UID가 0 금지
- root(uid=0) 계정과 동일한 uid를 가진 계정 존재 시, 일반 사용자 계정도 root 권한으로 시스템 접근이 가능하므로 uid 주기적 점검 필요
[문제상황]
[보안설정]# useradd -o 옵션을 통해 root 계정과 동일한 Uid=0인 일반사용자 holly 생성 useradd -o -u 0 -g 0 -d /home holly # 생성한 일반 사용자 계정 holly 확인 id holly uid=0(root) gid=0(root) groups=0(root) cat /etc/passwd ... holly:x:0:0::/root:/bin/bash # 생성한 일반사용자 holly로 원격 터미널 접속 # holly 계정으로 telnet 접속 시 root권한으로 접속됨.
(1) cat /etc/passwd -> 사용자 계정 uid 점검
(2) 사용자 계정 UID 변경
운영체제 명령어 SOLARIS
LINUX
HP-UXusermod -u [0이 아닌 유일값] -g [0이 아닌 유일값] -d /home/계정명 [계정명]
ex. usermod -u 131 -g 232 -d /home/holly hollyAIX chuser id=[0이 아닌 유일값] [계정명
ex. chuser id=100 holly
② 패스워드 정책 설정
(1) 패스워드 복잡성 설정
- 패스워드 복잡성 : 영문,숫자,특수문자가 혼합된 일정 길이 이상으로 패스워드를 설정하는 방법
[보안설정]
부적절한
패스워드 유형- 사전에 나오는 단어나 이들의 조함
- 길이가 너무 짧거나 공백(null)인 패스워드
- 키보드 자판 일련 순
- 사용자 정보에서 유추할 수 있는 단어패스워드
관리법- 다음 문자 종류 중 2종류 이상을 조합하여 최소 10자리 이상 or 3종류 이상 조합하여 최소 8자리 이상의 길이로 구성
(1) 영문 대문자
(2) 영문 소문자
(3) 숫자
(4) 특수문자
- 시스템마다 다른 패스워드 사용, 패스워드 기록 시 변형해서 기록패스워드
복잡도 설정법- system-auth 서비스 PAM 설정 파일을 이용하여 패스워드 복잡도 설정
- 설정파일 경로 : /etc/pam.d/syste-auth
- pamcracklib.so 모듈 : 패스워드 설정 시 복잡성 검사를 위해 사용하는 PAM 모듈
# cat /etc//pam.d/system-auth
password requisite pam_cracklib.so try_first_pass retry=3 minlen=8 lcredit=-1 dcredit=-1 ocredit=-1 difok=5
# Pamcracklib.so 모듈 인수 권장 설정
# lcredit = -1 // 최소 소문자 요구 // 최소 1자 이상의 소문자 요구
# ucredit = -1 // 최소 대문자 요구 // 최소 1자 이상의 대문자 요구
# dcredit = -1 // 최소 숫자 요구 // 최소 1자 이상의 숫자 요구
# ocredit = -1 // 최소 특수문자 요구 // 최소 1자 이상의 특수문자 요구
# minlen = 8 // 최소 패스워드 길이 요구 // 최소 8자 이상의 요구
# difok = N // 기존 패스워드와 비교 // 새 비밀번호가 이전 비밀번호와 달라야 하는 문자 수(N)
(2) 패스워드 최소 길이 설정
- 패스워드 문자열이 짧은 겨우 유추 가능
[보안설정]
os별 점검 파일 위치 및 점검 방법
- 패스워드 최소길이 8자 이상SOLARIS # cat /etc/default/passwd
PASSLENGTH=8LINUX # cat /etc/login.defs
PASS_MIN_LEN 8AIX # cat /etc/security/user
minlen=8HP-UX # cat /etc/default/security
MIN_PASSWORD_LENGTH=8
(3) 패스워드 최대 사용기간 설정
- 기간 제한이 없으면 장기적으로 공격해 패스워드 뚫는다.
[보안설정]
os별 점검 파일 위치 및 점검 방법
- 패스워드 최대 사용 기간 90일(12주) 이하로 설정SOLARIS # cat /etc/default/passwd
# 단위 : 주
MAXWEEKS=12LINUX # cat /etc/login.defs
# 단위 : 일
PASS_MAX_DAYS 90AIX # cat /etc/security/user
# 단위 : 주
maxage=12HP-UX # cat /etc/default/security
#단위 : 일
PASSWORD_MAXDAYS=90
(4) 패스워드 최소 사용기간 설정
- 설정하지 않으면 최근 암호 기억이 무력화 되어 자주 사용하는 패스워드를 재사용 할 수 있다.
[보안설정]
os별 점검 파일 위치 및 점검 방법
- 패스워드 최소 사용 기간 1일(1주) 이상으로 설정SOLARIS # cat /etc/default/passwd
# 단위: 주
MINWEEKS=1LINUX # cat /etc/login.defs
# 단위 : 일
PASS_MIN_DAYS 2AIX # cat /etc/security/user
# 단위 : 주
minage=1HP-UX #cat /etc/default/secruity
# 단위 : 일
PASSWORD_MINDAYS=1
③ 패스워드 파일 보호
- 패스워드를 평문으로 저장하는 경우, 정보 유출 피해가 발생하므로 암호화 필요
- shadow 정책을 적용한다. ( passwd 파일이 아닌 shadow 파일에 암호화된채로 패스워드 적용)
[보안설정]
os별 점검 파일 위치 및 점검 방법 SOLARIS (1) shadow 파일에 패스워드 암호화 존재 확인
(2) /etc/passwd 파일 내 두번째 필드가 'x'로 표시되어 있는지 확인
(3) 패스워드 정책 변경 명령어
pwconv : shadow 정책 적용
pwunconv: 일반 패스워드 정책 적용LINUX AIX '/etc/security/passwd' 파일 내 패스워드 암호화 여부 확인
-기본적으로 AIX 는 '/etc/security/passwd' 파일에 패스워드 암호화함HP-UX (1) Trust Mode로 전환하면 패스워드를 암호화 하여 /tcb/files/auth 디렉터리에 계정 이니셜과 계쩡 이름에 따라 파일로 저장/관리 한다. (ex. /tcb/files/auth/KYJ/holly
(2) Trust Mode tjfwjd duqn ghkrdls
- /tcb 디렉터리 존재 여부 확인
- /etc/passwd 파일 내 두번째 필드가 'x'로 되어있는지 확인
(3) Trust Mode 관련 명령어(Root계정으로 실행)
- 설정 : /etc/tsconvert
- 해제 : /etc/tsconvert -r2
④ Session Timeout 설정
- 사용자가 접속된 상태로 방치하면 권한 이 없는 사용자에게 시스템이 노출되어 악의적인 목적으로 사용 가능하다.
- 일정 시간 이후 어떠한 이벤트도 발생하지 않으면 연결을 종료하는 Session Timeout 설정이 필요하다.
[보안설정]
os별 점검 파일 위치 및 점검 방법
- session Timeout 을 10분 이내로 설정한다.SOLARIS
LINUX
AIX
HP-UX<sh, ksh, bash 사용 시>
# cat /etc/profile(.profile) // 모든 사용자 계정의 로그인 시 적용되는 환경설정파일
# 단위: 초 (600=10분)
# export : 환경 변수로 설정하여 모든 자식쉘에게 적용되게 한다.
(1)
TMOUT=600
export TMOUT
(2)
TMOUT=600; export TMOUT
(3)
export TMOUT=600
<csh 사용 시)
# cat /etc/csh.login 또는 cat /etc/csh.cshrc
set autologout=10
윈도우 계정 관련 취약점
① Administrator 계정 이름 변경 또는 보안성 강화
- 윈도우 최상위 관리자 계정인 Administrator 계정은 컴퓨터 전체에 대한 모든 권한을 가진 계정으로 특별한 관리가 필요
- 그래서 Administrator 이름을 변경하지 않거나 보안이 강화된 비밀번호를 적용하지 않으면 패스워드 크래킹 공격에 쉽게 노출
[보안설정]
(1) 계정명 확인
- 제어판 > 관리도구 > 컴퓨터 관리 > 로컬 사용자 및 그룹 > 사용자에서 계정명 확인
- ('컴퓨터관리' 단축 명령) 실행(윈도우키+R) > compmgmt.msc 입력
- ('로컬 사용자 및 그룹' 단축 명령) 실행 > lusrmgr.msc 입력
(2) 계정명 변경
- 제어판 > 관리 도구 > 로컬 보안 정책 > 로컬 정책 > 보안 옵션의 '계정:Administrator 계정 이름 바꾸기'를 통해 계정명 변경
- ('로컬 보안 정책' 단축 명령) 실행 > secpol.msc 입력
② Guest 계정 비활성화
- Guest 계정은 시스템에 임시접근이 필요한 사용자를 위해 만들어졌으며, 악의적으로 사용될 우려가 있음.
- 삭제할 수 없는 Built-in 계정이므로 반드시 비활성화 처리 필요
[보안설정]
(1) Guest 계정 비활성화 적용
- 제어판 > 관리 도구 > 컴퓨터 관리 > 로컬 사용자 및 그룹 > 사용자에서 Guest 계정 선택 후 '계정 사용 안 함' 적용
③ 불필요한 계정 제거
- 퇴직, 전직, 휴직 등의 사유로 더이상 사용하지 않는 불필요한 계정 발생
- 장기간 패스워드가 변경되지 않아 패스워드 크래킹 공격에 쉽게 노출
[보안설정]
(1) 불필요한 계정 삭제 또는 '계정 사용 안 함' 적용
- 제어판 > 관리 도구 > 컴퓨터 관리 > 로컬 사용자 및 그룹 > 사용자 에서 불필요한 계정 '삭제' 또는 '계정 사용 안 함' 선택
④ 관리자 그룹에 최소한의 사용자 포함
- 관리자 그룹(Administrators)에 속한 구성원은 컴퓨터 시스템에 대한 제한 없는 엑세스 권한을 가지게 됨
- 관리 권한 계정과 일반 권한 계정을 분리하여 운영
- 시스템 관리자는 원칙적으로 1명 이하로 유지하고 부득이하게 2명 이상의 관리자를 유지해야 할 때는 관리자 그룹에 최소환의 사용자만 포함되도록 함.
[보안설정]
(1) 관리자 그룹(Administrators)에 속한 계정 확인
- 제어판 > 관리 도구 > 컴퓨터 관리 > 로컬 사용자 및 그룹 > 그룹에서 'Administrators' 그룹 선택 후 불필요한 계정 확인
(2) 불필요한 계정 선택 후 제거
⑤ 패스워드(암호) 정책 설정
- 패스워드(암호) 정책 : 사용자에게 패스워드를 정기적으로 변경하게 하고 암호의 최소 길이를 지정하며 암호가 특정 복잡성을 만족시키도록 하는 등 암호 설정을 강제하여 컴퓨터를 보호하는 정책
[보안설정]
(1) 암호 정책 확인
- 제어판 > 관리 도구 > 로컬 보안 정책(secpol.msc) > 계정 정책 > 암호 정책 선택 (
(2) 패스워드 복잡성 설정
- '암호는 복잡성을 만족해야함'을 '사용'으로 설정
- 윈도우 운영체제의 복잡성 기준 = 리눅스와 동일
(3) 최근 패스워드(암호) 기억 설정
- 사용자가 현재 또는 최근에 사용했던 패스워드와 동일한 새 패스워드를 만드는 것을 방지
- (권장값) 4개 이상
(4) 패스워드 최대 사용 기간 설정
- (권장값) 90일 이하
- 계정 속성의 '암호 사용 기간 제한 없음' 해제
(5) 패스워드 최소 사용 기간 설정
- (권장값) 1일 이상
(6) 패스워드 최소 길이 설정
- (권장값) 8자 이상
(7) 해독 가능한 암호화 사용 설정
- '사용 안 함' 설정
⑥ 계정장금 정책
- 계정 잠금 정책 : 해당 계정이 시스템으로부터 잠기는 환경과 시간을 결정하는 정책으로 '계정 잠금 임계값', '계정 잠금 기간', '다음 시간 후 계정 잠금 수를 원래대로 설정'의 세 가지 하위 정책이 있다.
[보안설정]
(1) 계정 잠금 정책 확인
- 제어판 > 관리 도구 > 로컬 보안 정책(secpol.msc) > 계정 정책 > 계정 잠금 정책 선택
(2) 계정 잠금 임계값 설정
- 사용자 계정이 잠기는 로그온 실패 횟수 설정
- (권장값 ) 5 이하
- Administrator 계정은 잠기지 않으며 일반 사용자 계정에만 적용된다.
(3) 계정 잠금 기간 설정
- 로그온 실패 횟수가 임계값에 도달했을 때, 계정 잠금 시간 설정
- (권장값) 60분 이상
(4) 다음 시간 후 계정 잠금 수를 원래대로 설정
- 실패한 로그온 시도 후 실패한 로그온 시도 횟수가 0으로 초기화될 때 까지 지나야 하는 시간을 설정하는 정책
- (권장값) 60분 이상
'정보보안 > 시스템 보안' 카테고리의 다른 글
[시스템 취약점] 윈도우 서비스 & 로그 관리 (0) | 2024.11.12 |
---|---|
[시스템 취약점] 파일 및 디렉터리 관리 (0) | 2024.11.12 |
[UNIX/Linux 기본학습] 시스템 해킹 (0) | 2024.11.12 |
[UNIX/Linux 기본학습] 서버보안4 (3) | 2024.11.12 |
[UNIX/Linux 기본학습] 서버보안3 (0) | 2024.11.11 |