Better Technology, Better Tomorrow.

Cloud 기술팀 개인 포스팅 자료

Security

보안취약점 점검 가이드 및 조치 방법

ProLinux 2020. 11. 18. 15:42

 

 

US

no.

점검항목

점검 방법

위험도

점검결과

조치사항

계정 관리

/etc/passwd, /etc/group

조치 필요

sync, halt, shutdown 계정 nologin 처리

비밀번호 관리

/etc/passwd,

/etc/shadow,

/etc/login.defs

조치 필요

login.defs 수정 조치

로그인 통제

/etc/pam.d/password-auth

/etc/pam.d/system-auth

조치 필요

system-auth 조치

관리자 계정(root) 원격 접속 통제

/etc/ssh/sshd_config

/etc/securetty

/etc/pam.d/login

조치 필요

sshd 포트 변경 및 PermitRootLogin 옵션, /etc/pam.d/login 조치

일반 사용자의 SU 명령 사용 제한

/usr/bin/su

/etc/group

/etc/pam.d/su

조치 필요

wheel 그룹에 **** 추가

PAM모듈 wheel 주석제거

서버연결 타임아웃 설정

/etc/profile

조치 필요

TMOUT=300

export TMOUT

IP 기반 네트워크 접근 통제

/etc/hosts.allow

/etc/hosts.deny

조치 필요

기존 시스템과 동일하게 적용

UMASK, PATH 설정

/etc/profile

해당 없음

필요 시 각 계정 profile
umask 022 적용

디렉터리 권한 설정

/etc/passwd

/home/cssa

/sbin, /etc, /bin, /usr/bin, /usr/sbin

/tmp, /var/tmp

해당 없음

기 조치된 사항 확인

장치 디렉터리 점검

/dev

해당 없음

해당 내용 없음

소유자가 없는 파일/디렉터리 점검

 

해당 없음

해당 내용 없음

시스템 파일 접근 권한

$HOME/.bashrc

$HOME/.cshrc

$HOME/.tcshrc

$HOME/.bash_profile

/etc/at.deny

조치 필요

권고사항에 적힌 권한 조치

SUID, SGID 설정 파일 점검

#chmod 755 /usr/sbin/unix_chkpwd

#chmod 755 /usr/bin/newgrp

#chmod 755 /usr/bin/at

조치 필요

해당 파일 s권한 제거

스케줄링 점검

 

해당 없음

등록된 스케줄링 없음

서비스 보안 설정

 

해당 없음

사용 중인 대상서비스 없음

NFS, RPC 서비스 관리

systemctl stop rpcbind

systemctl disable rpcbind.socket

조치 필요

RPC port mapper(111) 및 서비스 종료 조치

(x)Inetd.d 데몬 보안 설정

 

해당 없음

기동중인 슈퍼 데몬 없음

웹서버 기본 보안 설정

 

해당 없음

웹서버 운용하지 않음

주요 로그 관리

/etc/rsyslog.conf

조치 필요

alert 내용 추가 조치

보안패치 적용

 

해당 없음

ProLinux7.53.10.0-862

 

서버용 백신 프로그램 운용

 

해당 없음

별도 서버 백신 필요

IPv6 비사용 조치

 

 

 

 


Call Center:1544-5533 http://technet.tmaxsoft.com

Better Technology, Better Tomorrow

 

 

US No.1

계정 관리

조치 방법

/etc/passwd 파일에서 halt, shutdown, sync 계정에 대하여 /sbin/nologin 처리

 

참고 사항

 

 

US No.2

비밀번호 관리

조치 방법

/etc/group/etc/shadow에 대한 변동은 없음. 기본적으로 보안 조치 되어 있음

/etc/login.defs 수정 조치 필요

PASS_MIN_LEN 5 -> 9

PASS_MAX_DAYS 99999 -> 31

PASS_MIN_DAYS 0 -> 1

참고 사항

 

 

US No.3

로그인 통제

조치 방법

/etc/pam.d/password-auth

/etc/pam.d/system-auth에서

 

auth required /usr/lib64/security/pam_tally2.so deny=5 unlock_time=120

account required /usr/lib64/security/pam_tally2.so 

 

 

참고 사항

no_magic_root 및 reset 옵션은 Redhat 계열 7버전부터 사용하지 않는 옵션. default로 적용되었기 때문.
그리고 가장 각 문단의 첫 째줄에 위치해야함.

 

US No.4

관리자 계정(root) 원격 접속 통제

조치 방법

1. /etc/pam.d/login 파일 최하단에

auth required /usr/lib64/security/pam_securetty.so 추가

 

2. /etc/ssh/sshd_config 파일에서

#PermitRootLogin yes의 주석을 해제하고 yes -> no 처리

참고 사항

/etc/securettypts/0 ~ pts/x는 기본적으로 설정되어 있지 않음

 

US No.5

일반 사용자의 SU 명령 사용 제한

조치 방법

1. /etc/group에서 wheel 그룹에 ‘****’ 계정을 추가함

#chgrp wheel /usr/bin/su

#chmod 4750 /usr/bin/su

 

2. /etc/pam.d/su에서 6번행

#auth required pam_wheel.so use_uid 의 주석 처리를 주석 해제 적용

참고 사항

 

 

US No.6

서버연결 타임아웃 설정

조치 방법

/etc/profile 파일 최하단에

TMOUT=300

export TMOUT

기입 조치

참고 사항

 

 

 

 

US No.7

IP 기반 네트워크 접근통제

조치 방법

/etc/hosts.allow , /etc/hosts.deny의 경우

기 조치된 설정을 적용함

참고 사항

TCP Wrapper 설정 파일

 

US No.8

UMASK, PATH 설정

조치 방법

각 계정별 umask 설정이 필요하다면, /home/계정명/.bash_profile

umask 022

export umask 추가한 후 source /home/****/.bash_profile 적용

umask 명령을 통해 현재 umask 값 확인 가능

참고 사항

PATH 내의 “.” 혹은 “::” 내용의 취약점은 없었음

root UMASK = 022, 일반계정 UMASK = 002 처리가 되어있음을 확인

 

US No.9

디렉터리 권한 설정

조치 방법

#chmod o-w /home/****

#chmod o-w /sbin /etc /bin /usr/bin /usr/sbin

#chmod 1777 /tmp /var/tmp

참고 사항

default로 설정이 되어 있는 상태를 확인

 

US No.10

장치 디렉터리 점검

조치 방법

#find /dev type f exec ls al {} \;

참고 사항

취약점으로 작용할만한 디바이스 없음을 확인

 

US No.11

소유자가 없는 파일/디렉터리 점검

조치 방법

#find / -nouser print

#find / -nogroup -print

참고 사항

소유자 혹은 소유그룹이 없는 불필요 파일 없음을 확인

 

US No.12

시스템 파일 접근 권한

조치 방법

권고안에 해당하는 파일들을 Prolinux 7.5 기준으로 점검한 결과,

chmod 600 권한으로 변경해야 할 리스트는 다음과 같음

$HOME/.bashrc

$HOME/.cshrc

$HOME/.tcshrc

$HOME/.bash_profile

 

chmod 640 권한으로 변경해야 할 리스트는 다음과 같음

/etc/at.deny

 

위 사항 이외의 파일은 사용하지 않거나, 보다 높은 권한으로 조치 되어 있음을 확인

참고 사항

ProLinux 기본 파일에 속하지 않는 inetd.conf, xinetd.conf, hosts.lpd, cron.allow는 별도 점검 필요

 

US No.13

SUID, SGID 설정 파일 점검

조치 방법

#find / -user root -type f \( -perm -04000 -o -perm -02000 \) -xdev -exec ls -al {} \;

 

-r-xr-sr-x. 1 root tty 15440 Apr 12 2019 /usr/bin/wall

-rwxr-sr-x. 1 root tty 19624 May 21 2019 /usr/bin/write

---x--s--x. 1 root nobody 382328 Apr 12 2019 /usr/bin/ssh-agent

-rwx--s--x. 1 root slocate 40592 Apr 9 2019 /usr/bin/locate

-rwxr-sr-x. 1 root root 7216 May 28 2019 /usr/sbin/netreport

-rwx--s--x. 1 root lock 11296 Apr 9 2019 /usr/sbin/lockdev

-rwxr-sr-x. 1 root postdrop 218632 May 21 2019 /usr/sbin/postdrop

-rwxr-sr-x. 1 root postdrop 260104 May 21 2019 /usr/sbin/postqueue

-rwx--s--x. 1 root utmp 15648 May 21 2019 /usr/lib64/vte-2.91/gnome-pty-helper

-rwx--s--x. 1 root utmp 11288 Apr 12 2019 /usr/libexec/utempter/utempter

---x--s--x. 1 root ssh_keys 465848 Apr 12 2019 /usr/libexec/openssh/ssh-keysign

 

해당 그룹에만 SGID 권한을 유지시키고 이 외의 파일에는 chmod s 파일명으로 s권한 삭제.

 

#chmod 755 /usr/sbin/unix_chkpwd

#chmod 755 /usr/bin/newgrp

#chmod 755 /usr/bin/at

 

혹은 #chmod s 위 세 개 파일 처리하여 SUID 삭제

 

참고 사항

 

 

US No.14

스케줄링(Scheduling) 점검

조치 방법

점검 결과 등록된 스케줄링이 없음을 확인.

참고 사항

#crontab l 크론탭에 등록된 스케줄이 없음을 확인.

 

US No.15

서비스 보안 설정

조치 방법

사용하는 서비스 중 점검대상 서비스가 없음

추후 서비스를 사용 시 별도의 점검이 필요할 수 있음

참고 사항

SNMP, FTP, Sendmail, DNS Zone Transfer, NIS+, automountd 점검을 위해

#ps -ef | egrep “snmp|ftp|sendmail|name|ypserv|ypbind|ypxfrd|auto”

 

US No.16

NFS, RPC 서비스 관리

조치 방법

RPC 관련 서비스 기동 종료

#systemctl stop rpcbind

#systemctl disable rpcbind

#systemctl stop rpcbind.socket

#systemctl disable rpcbind.socket

 

/etc/servicesrpc관련 포트를 확인 후

#netstat anp | grep 111(기본설정포트)을 통해 rpc LISTEN port가 사용 중인지 점검

rebooting #rpcinfo p를 통해 portmapper가 기동중지 된 것을 확인

참고 사항

#ps -ef | egrep “nfsd|mountd|lockd|statd” 점검 결과 해당 서비스 이용하지 않음을 확인

/etc/exports 파일을 통해 NFS 설정에 나열된 공유 항목을 조사한 결과 없음을 확인

 

US No.17

(x)Inetd.d 데몬 보안 설정

조치 방법

cat /etc/inetd.conf

cat /etc/xinetd.conf

ls -al /etc/inetd.d

ls -al /etc/xinetd.d

참고 사항

점검 결과 슈퍼 데몬 실행 해당 없음을 확인

 

US No.18

웹 서버 기본 보안 설정

조치 방법

#ps ef | grep httpd를 통해 웹서버를 사용하지 않음을 확인

만약, 웹서버 설치 이후 보안 조치가 필요하다면 가이드 서적에 따라

httpd.conf 파일 설정, .htaccess 파일 생성이 필요할 수 있음

참고 사항

웹서버를 사용하지 않음을 확인

 

US No.19

주요 로그 관리

조치 방법

/etc/rsyslog.conf에서 set nu기준 65번 행(cron.**.emerg 사이)

# DIDC Secure

*.alert /dev/console

위 행을 추가하여 알림 로그 조치 완료

 

#ps ef|grep rsyslog

#kill HUP [PID]를 통해 Syslog 데몬 재기동

참고 사항

 

 

US No.20

보안 패치 적용

조치 방법

RHEL 7.6 3.10.0-957 적용 여부 판단

ssh : OpenSSH7.4p1

ssl : OpenSSL 1.0.2k-fips

bash : 4.2.46

참고 사항

ProLinux 7.5는 커널 3.10.0-862 버전임을 안내

 

US No.21

서버용 백신 프로그램 운용

참고 사항

ViRobot은 기본 제공 백신이 아니므로 별도 백신 운용 필요

별도 조치 1

IP ver.6 비활성화 조치

조치 방법

 

/etc/sysctl.conf 에 다음 3행 추가

 

#IPv6 Disable

net.ipv6.conf.all.disable_ipv6 = 1

net.ipv6.conf.default.disable_ipv6 = 1

net.ipv6.conf.lo.disable_ipv6 = 1

 

 

#sudo sysctl p

 

참고 사항

 

 

'Security' 카테고리의 다른 글

PAM 모듈 정리  (0) 2021.01.12
Linux 로그인 시 Login Incorrect가 반복되는 현상  (0) 2020.12.29
pam.d 모듈 설명  (0) 2020.12.17
OpenSSH 8.1 패치  (0) 2020.11.22
pam_tally2.so 모듈 설정 관련 주의사항  (0) 2020.11.16