아래 내용은 CentOS 6.6 버전을 기준으로 작성/실습하였습니다.
▨ 설명
중요도 상에 해당하는 취약점으로, 원격 터미널로 접속할 수 있는 서비스를 차단하여 외부로부터 root 계정으로의 접근을 막아야 합니다. Brute Force Attack이나 Dictionary Attack 등으로 비인가자가 root 계정을 획득할 경우 시스템 계정 정보 유출, 파일/디렉터리 변조 등의 침해사고가 발생할 수 있습니다.
- root 계정
- 여러 사용자가 사용하는 컴퓨터에서 전체적으로 관리할 수 있는 총괄 권한을 가진 유일한 특별 계정
- UNIX 시스템의 root는 시스템 관리자인 Super User로서, 윈도우의 Administrator에 해당
- 사용자 계정 생성/소프트웨어 설치/환경 설정 변경 등 시스템의 동작을 감시 및 제어할 수 있음
- Brute Force Attack
- 무작위 대입 공격
- 특정 암호나 비밀번호를 풀기 위해 가능한 모든 값을 대입하는 공격법
- Dictionary Attack
- 사전 대입 공격
- 사전에 있는 단어를 입력해 암호를 알아내거나 해독하는 공격법
▨ 설정
(1) /etc/securetty 파일에서 pts/0 ~ pts/x 설정을 제거하거나 추석 처리
/etc/securetty 파일은 Telnet 접속 시 root 접근을 제한하는 설정 파일로, 파일 내 *pts/x 관련 설정이 존재하는 경우 PAM 모듈 설정과 관계없이 root 계정 접속을 허용하게 되므로 취약합니다. 따라서 꼭 pts/x 관련 설정을 제거해주어야 합니다.
cat /etc/securetty
- tty(terminal-teletype): 서버와 연결된 모니터/키보드 등을 통해 사용자가 콘솔로 직접 로그인
- pts(pseudo-terminal): Telnet, SSH 등 가상 터미널을 이용해 접속
(2) /etc/pam.d/login 파일을 수정 또는 삽입
(수정 전)
cat /etc/pam.d/login
(수정 후) 'auth required /lib/security/pam_securetty.so' 이라는 구문을 삽입합니다.
▨ 설명
중요도 상에 해당하는 취약점으로, 비인가자의 공격에 대비하여 패스워드 복잡성 관련 정책을 확인해야 합니다. 각종 공격을 통해 비인가자가 패스워드를 획득하게 된다면 계정 정보를 통해 시스템에 접근할 수 있는 취약점이 발생합니다.
- 패스워드 복잡성
- 사용자 PW 설정 시 영문, 숫자, 특수문자가 혼합된 패스워드로 설정하는 방법
- 공공기관인 경우 국가정보보안기본지침에 의해 패스워드는 9자리 이상의 길이로 설정해야 함
▨ 설정
(1) 패스워드 복잡성 설정 파일 수정 - /etc/pam.d/system-auth
(수정 전)
cat /etc/pam.d/system-auth
(수정 후)
cat /etc/pam.d/system-auth
- lcredit=-1 (최소 소문자 요구) : 소문자 최소 1자 이상 요구
- ucredit=-1 (최소 대문자 요구) : 대문자 최소 1자 이상 요구
- dcredit=-1 (최소 숫자 요구) : 숫자 최소 1자 이상 요구
- ocredit=-1 (최소 특수문자 요구) : 특수문자 최소 1자 이상 요구
- minlen=8 (최소 패스워드 길이 설정) : 최소 8자리 이상으로 설정
- retry=3 (패스워드 입력 실패 시 재시도 횟수) : 패스워드 3번 재입력 가능
- difok=N (기존 패스워드와 비교, 기본값은 10(50%))
(2) 패스워드 복잡성 설정 파일 수정 - /etc/login.defs
- pass_warn_age=7 (패스워드 기간 만료 경고) : 7일이 남은 시점부터 패스워드 변경 알림
- pass_max_days=60 (최대 패스워드 사용 기간 설정) : 설정일로부터 60일까지 사용 가능
- pass_min_day=1 (최소 패스워드 변경 기간 설정) : 최소 1일 경과 후 패스워드 변경 가능
▨ 점검
(1) 아래 명령어를 수행하여 점검
cat /etc/shadow
- 부적절한 패스워드 유형
- 사전에 나오는 단어나 이들의 조합
- 너무 짧은 길이를 가지거나 NULL(공백)인 PW
- 키보드 자판의 나열 (ex. qwerty 등)
- 사용자 계정 정보에서 유추 가능한 단어 (ex. admin 등)
- 패스워드 관리
- 영문, 숫자, 특수문자 중 2종류 이상을 조합하여 최소 10자리 또는, 3종류 이상을 조합하여 최소 8~9자리 이상의 길이로 구성
- 시스템마다 다른 PW 사용
- PW를 기록할 경우 약간의 변형을 거쳐 기록
- 주기적인 PW 변경
▨ 설명
중요도 상에 해당하는 취약점으로, 사용자 로그인 실패 임계값을 설정하여 비인가자가 패스워드를 탈취하기 위한 공격 방법 등에 대비하는 방법입니다.
- 사용자 로그인 실패 임계 값
- 시스템에 로그인 시 몇 번의 로그인 실패에 로그인을 차단할 것인지 결정하는 값
▨ 설정
(1) /etc/pam.d/system-auth에 아래 구문 삽입 또는 주석 처리 해제
(수정 전)
cat /etc/pam.d/system-auth
(수정 후)
cat /etc/pam.d/system-auth
- no_magic_root : root에게는 PW 잠금 설정을 적용하지 않음
- deny=5 : 5회 입력 실패 시 PW 잠금
- unlock_time : 계정 잠김 후 마지막 계정 실패 시간부터 설정된 시간(단위: 초)이 지나면 자동 계정 잠김 해제
- reset : 접속 시도 성공 시 실패한 횟수 초기화
▨ 점검
(1) 아래 명령어를 수행하여 구문 존재 여부 점검
cat /etc/pam.d/system-auth
▨ 설명
중요도 상에 해당하는 취약점으로, 사용자 계정의 패스워드를 관리하는 /etc/passwd 파일에 평문으로 저장되지 않도록 암호화하여 관리하는 방법입니다. 그렇지 않으면 비인가자에 의해 평문으로 저장된 /etc/passwd 파일이 유출되어 시스템 사용자 계정의 패스워드 전체가 노출될 수 있습니다.
▨ 설정
/shadow 패스워드 정책을 적용하려면 아래 명령어 실행
pwconv
cat /etc/passwd
일반 패스워드의 정책을 적용하려면 아래 명령어 실행
pwunconv
cat /etc/passwd
▨ 점검
(1) /shadow 파일의 존재 확인 - 아래 명령어 입력 후 목록에 /shadow 파일의 여부 확인
ls /etc
(2) /etc/passwd 파일 내 두 번째 필드가 "x"인지 확인
cat /etc/passwd
'SYSTEM > UNIX|LINUX Server 보안' 카테고리의 다른 글
Linux Daemon - StandAlone vs. xinetd (inetd) (0) | 2021.03.25 |
---|---|
[CentOS 6.6] 1. 계정관리 (선택 사항) (0) | 2021.03.05 |
UNIX 기초 (4) RPC 서비스 종류 (0) | 2021.03.05 |
UNIX 기초 (3) 계정 설명, 불필요한 SUID/SGID (LINUX 기준) (1) | 2021.03.05 |
UNIX 기초 (2) /etc/passwd, /etc/shadow, /etc/group 파일 구조 (0) | 2021.03.05 |