아래 내용은 CentOS 6.6 버전을 기준으로 작성/실습하였습니다.
▨ 설명
중요도 중에 해당하는 취약점으로, root 계정과 그 이외의 계정이 같은 UID를 가질 경우 비인가자는 root 계정 권한과 동일한 권한으로 시스템에 로그인하여 정보 유출, 파일 변조 등의 행위를 할 수 있습니다. 또한 root와 동일한 UID를 사용하므로 사용자 감사 추적 시에도 어려움이 발생합니다. 따라서 중복되는 UID를 제거/수정 해야 합니다.
-UID
- User IDentification
- 여러 명의 사용자가 동시에 사용하는 시스템에서 사용자가 자신을 대표하기 위해 쓰는 이름
▨ 설정
usermod 명령으로 UID가 '0'인 일반 계정의 UID를 500 이상으로 수정
usermod -u 2000 test
# test 계정의 UID를 2000으로 설정
▨ 점검
아래 명령어를 실행하여 /passwd 파일의 세 번째 필드값인 UID를 확인하고, root 이외 계정의 UID 값이 '0'이라면 수정
cat /etc/passwd
▨ 설명
중요도 하에 해당하는 취약점으로, root 계정으로 전환하는 명령어인 'su'를 실행할 수 있는 계정을 관리해야 합니다. su 관련 그룹만 su 명령어 사용 권한이 부여되어 있는지 점검하고, 그렇지 않는 계정이 포함되어 있다면 차단합니다. 모든 사용자가 su 명령어를 사용할 수 있게 설정되어 있다면, root 계정을 얻기 위해 각종 공격을 통해 root 계정 패스워드가 유출될 수 있습니다.
▨ 설정
(1) 명령어를 실행하여 아래 구문 삽입
vi /etc/pam.d/su
(2) 아래 명령어를 실행하여 su 명령어를 사용할 계정 추가
1) usermod 명령어를 통해 wheel 그룹에 su 명령어를 사용할 사용자를 추가
usermod -G wheel [계정명]
또는, 2) vi /etc/group 파일을 수정하여
# wheel 그룹이 존재하지 않는 경우 추가
group add wheel
vi /etc/group
wheel 그룹 뒤에 su 명령어를 사용할 계정 직접 추가
▨ 점검
(1) /etc/group 파일에 wheel 그룹 구성원이 존재하는지 확인
(2) /etc/pam.d/su 파일에 아래 구문이 있는지 확인
▨ 설명
중요도 중에 해당하는 취약점으로, 패스워드 최소 길이 정책을 설정하여 패스워드 유출을 막아야 합니다. 공공기관인 경우 국가정보보안기본지침에 의해 패스워드를 9자리 이상의 길이로 설정해야 합니다.
▨ 설정
아래 명령어를 실행하여 /etc/login.defs 파일에 패스워드 최소 길이 정책 값이 8 또는 9 이상인지 확인
cat /etc/login.defs
▨ 설명
중요도 중에 해당하는 취약점으로, 패스워드 최대 사용기간 정책을 설정하여 공격자의 장기적인 공격 가능성을 막습니다. 패스워드 최대 사용기간을 90일 이하로 설정합니다.
▨ 설정
아래 명령어를 실행하여 /etc/login.defs 파일에 패스워드 최대 사용기간 정책 값이 90(단위: 일) 이하인지 확인
cat /etc/login.defs
▨ 설정
중요도 중에 해당하는 취약점으로, 패스워드 최소 사용기간 정책을 통해 패스워드 최대 사용 기간으로 인해 패스워드 변경 후 즉시 사용자에게 익숙한 패스워드로 재변경이 가능하지 않게 합니다. 패스워드 변경 정책에 따른 주기적인 패스워드 변경이 무의미해지지 않게 하는 방법입니다. 더불어 최근 암호 기억 설정과 함께 변경 전 사용했던 패스워드를 재사용할 수 없게 합니다.
- 최근 암호 기억
- 사용자가 현재 또는 최근에 사용한 암호와 동일한 새 암호를 방지하는 설정
- 값 1은 마지막 암호만 기억한다는 의미
- 값 5는 이전 5개의 암호를 기억한다는 의미
▨ 설정
아래 명령어를 실행하여 /etc/login.defs 파일에 패스워드 최소 사용기간 정책 값이 1(단위: 일)로 설정되어 있는지 확인
cat /etc/login.defs
▨ 설명
중요도 하에 해당하는 취약점으로, Default로 생성되는 계정 및 불필요한 계정들을 막음으로써 비인가자의 공격에 의한 정보 유출을 막습니다.
- Default 계정
- OS나 Package 설치 시 기본적으로 생성되는 계정
- ex. lp, uucp, nuucp 등
- 불필요한 default 계정 삭제 시 업무 영향도 파악 후 삭제해야 함
▨ 설정
(1) 아래 명령어 실행을 통해 불필요한 계정이 있는지 확인 후 존재한다면 삭제
/etc/passwd 파일에서는 #을 통한 주석 처리가 안되므로 완전한 삭제가 필요합니다.
cat /etc/passwd
## 불필요한 계정이 존재한다면
userdel [계정명]
(2) 로그를 통해 최근 로그인하지 않은 계정 및 의심스러운 계정을 확인하여 삭제
cat /var/log/wtmp
cat /var/log/sulog
▨ 점검
중요도 하에 해당하는 취약점으로, 시스템을 관리하는 root 계정이 속한 그룹에 타 계정을 최소화하여 비인가자가 관리자 권한을 취득하여 이루어지는 여러 유출 및 변조 행위를 막습니다.
▨ 점검
아래 명령어 실행을 통해 root 그룹에 타 계정이 포함되어 있는지 확인 후 존재한다면 삭제
cat /etc/group
# 타 계졍이 root 그룹에 존재한다면 편집
vi /etc/group
▨ 설명
중요도 하에 해당하는 취약점으로 시스템에 불필요한 그룹이 존재할 경우 그룹 소유의 파일이 비인가자에게 노출될 수 있는 위험을 최소화합니다. 이 때 /etc/group 파일만으로 구성원이 없는 group이라 판단하기 힘드므로 /etc/passwd 파일과 /etc/group 파일을 같이 확인하여 판단해야 합니다.
▨ 점검
아래 명령어 실행을 통해 /gshadow와 /passwd 파일을 보았을 때 필요없는 그룹이라고 판단되면 삭제
cat /etc/gshadow
cat /etc/passwd
# 그룹 확인 후 구성원이 없거나 더 이상 사용하지 않는 그룹이 존재한다면 삭제
groupdel [그룹명]
- gshadow 파일
- 사용자 계정의 암호는 /shadow 파일이 관리하는 것처럼, 그룹의 암호 저장은 /gshadow 파일에 관련있음
- [그룹명:패스워드:관리자1, 관리자2, ...:멤버1, 멤버2, ...]의 형식으로 이루어짐
▨ 설명
중요도 중에 해당하는 취약점으로, /etc/passwd 내 UID가 동일한 사용자 계정이 있는지 확인하여 침해사고 발생 시 UID 중복으로 인한 권한 중복으로 사용자 감사 추적이 어려워지는 것을 방지해야 합니다.
▨ 점검
아래 명령어 실행을 통해 /passwd 파일의 세 번째 필드 (UID) 값이 같은 계정이 존재하는 지 확인하고, 존재한다면 UID 값을 변경하여 중복이 없게 함.
cat /etc/passwd
# UID가 중복되는 계정이 존재할 경우 UID 변경
usermod -u [변경할 UID값] [계정명]
▨ 점검
중요도 하에 해당하는 취약점으로, 기본 계정의 쉘을 차단해 로그인이 불필요한 기본 계정들을 통해 비인가자의 중요파일 유출이나 root 권한 획득할 수 있는 가능성을 막는 방법 입니다.
- Shell
- 쉘
- 대화형 사용자 인터페이스
- OS 가장 외곽계층에 존재하여 사용자의 명령어를 이해하고 실행함
▨ 점검
시스템에 불필요한 계정에 쉘 설정을 제거하여 로그인이 필요하지 않은 계정을 통한 명령어를 실행하지 못하도록 '/sbin/nologin' 설정이 되어 있는지 확인합니다.
▨ 설정
로그인이 필요하지 않은 계정에 쉘이 부여되어 있을 경우 /etc/passwd 파일을 편집하여 '/sbin/false' 또는 '/sbin/nologin'으로 수정하여 쉘 설정을 제거합니다.
▨ 설명
중요도 하에 해당하는 취약점으로 사용자의 고의 또는 실수로 시스템에 계정이 접속된 상태로 방치되어 비인가자의 시스템 접근 가능성을 막아야 합니다.
- session
- 프로세스들 사이 통신을 수행하기 위해 메시지 교환을 통해 서로를 인식한 이후부터 통신을 마칠 때까지의 시간
▨ 설정
(1) 사용 중인 쉘 확인
echo $SHELL
(2-1) sh, ksh, bash를 사용하는 경우
.bash_profile 파일에서 TMOUT이라는 변수를 600(단위: 초) 이상으로 설정합니다.
(2-2) csh를 사용하는 경우
/etc/csh.login 또는 /etc/csh.cshrc 파일에 autologout 이라는 변수를 10(단위: 분) 이상으로 설정합니다.
set autologout=10
'SYSTEM > UNIX|LINUX Server 보안' 카테고리의 다른 글
서비스 동작 방식 전환: StandAlone -> xinetd(inetd) (0) | 2021.03.25 |
---|---|
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 |