OS 보안 관리 - 리눅스

틈메이러·2024년 9월 6일

필기

목록 보기
6/16

리눅스 보안

참고자료: KISA 클라우드 취약점 점검 가이드 2024
점검 가이드는 실무에서는 다르게 적용될 수도 있고, 맞지 않는 부분이 있을 수도 있으니 참고만 하는 것이 좋다

root 계정 원격 접속 제한

root 계정으로 직접 로그인을 하도록 허용하면 불법적인 침입자의 목표가 될 수 있으므로 root 계정 원격 접속을 금지해야 한다.
또한, 일반 사용자 계정 접속 후 관리자 계정으로 변경 시 로그가 남지만, 관리자 계정으로 바로 접속하는 경우 어느 사용자가 접속했는지 알 수 없으므로 문제 발생 시 책임소재 파악이 용이하지 않다.

🆗양호
root 계정의 원격 접속이 제한되어 있는 경우
취약
root 계정의 원격 접속이 제한되어 있지 않은 경우


패스워드 복잡도 설정

패스워드 복잡성 설정이 되어 있지 않은 사용자 계정이 존재할 경우 비인가자가 각종 공격(무작위 대입 공격, 사전 대입 공격 등)을 통해 사용자 계정의 패스워드 탈취가 가능하며, 해당 사용자 계정을 악용하여 시스템에 접근할 수 있는 위험이 존재한다.

🆗양호
패스워드 복잡도 설정(영문자(대문자, 소문자), 숫자, 특수문자 조합 중 3가지 조합 8자리 이상, 2가지 조합 10자리 이상)을 만족하는 경우
취약
패스워드가 영문자(대문자, 소문자), 숫자, 특수문자 조합 중 3가지 조합 8자리 이상, 2가지 조합 10자리 이상을 만족하지 않은 경우


계정 잠금 임계값 설정

로그인 실패 임계값이 설정되어 있지 않을 경우 반복된 로그인 시도를 차단하지 않아 각종 공격(무작위 대입공격, 사전 대입 공격, 추측 공격 등)에 취약하며, 비인가자에게 사용자 계정 패스워드를 탈취 당할 수 있다

🆗양호
계정 잠금 임계값이 5회 이하로 설정되어 있는 경우
취약
계정 잠금 임계값이 5회 이하로 설정되어 있지 않은 경우


패스워드 최대 사용 기간 설정

패스워드 최대 사용 기간을 설정하지 않은 경우, 유출된 패스워드로 일정 기간 경과 후에도 접속이 가능하다.
악의적인 사용자로부터 노출된 패스워드를 이용한 접속을 차단하기 위해 패스워드 최대 사용 기간을 설정하여 주기적으로 변경해야 한다.

🆗양호
보안 정책에 따른 최대 사용 기간(90일 이내)이 설정되어 있는 경우
취약
보안 정책에 따른 최대 사용 기간이 설정되어 있지 않거나, 90일 초과인 경우


패스워드 파일 보호

/etc/passwd 파일은 일반 사용자도 읽기 권한이 있으므로 passwd 파일에 계정의 비밀번호가 포함되어 있을 경우, 크랙을 통해 root 비밀번호를 취득할 수 있다, 따라서 보안에 취약한 passwd 파일이 아닌, 특별 권한이 있는 사용자만 접근 가능한 shadow 파일에 패스워드를 저장하여 관리해야 한다.

🆗양호
패스워드가 /etc/shadow 파일에 저장되어 있는 경우
취약
패스워드가 /etc/passwd 파일에 저장되어 있는 경우


root 홈, 패스 디렉터리 권한 패스 설정

root 계정의 PATH 환경변수"." (현재 디렉터리 지칭)이 포함되어 있으면, root 계정의 인가자로 인해 비의도적으로 현재 디렉터리에 위치하고 있는 명령어가 실행될 수 있다. 즉 "."이 /usr/bin이나 /bin, /sbin 등
명령어들이 위치하고 있는 디렉터리보다 우선하여 위치하고 있을 경우, root 계정의 인가자가 특정 명령을 실행하면, 비인가자가 불법적으로 위치시킨 파일을 실행하여 예기치 않은 결과를 가져올 수 있다. 잘못된 PATH의 우선순위 등이 침해 사고에 이용될 수 있으므로 "." 뿐만 아니라 비인가자가 불법적으로 생성한 디렉터리를 우선으로 가리키지 않도록 설정한다.

🆗양호
PATH 환경변수에 “.”이 맨 앞이나 중간에 포함되지 않은 경우
취약
PATH 환경변수에 “.”이 맨 앞이나 중간에 포함되어 있는 경우


파일 및 디렉터리 소유자 설정

소유자나 그룹이 존재하지 않는 파일 및 디렉터리는 현재 권한이 없는 자(퇴직자 등)의 소유였거나, 관리 소홀로 인해 생긴 파일일 가능성이 있다. 중요 파일 및 디렉터리의 소유자 및 그룹이 존재하지 않는 경우 문제가 발생할 수 있으므로 관리가 필요하다.

🆗양호
소유자나 그룹이 존재하지 않는 파일 및 디렉터리가 없는 경우
취약
소유자나 그룹이 존재하지 않는 파일 및 디렉터리가 있는 경우


/etc/passwd 파일 소유자 및 권한 설정

관리자(root) 외 사용자가 "/etc/passwd" 파일의 변조가 가능할 경우 shell 변조, 사용자 추가/삭제, root를 포함한 사용자 권한 획득 시도 등 악의적인 행위가 가능하다.

🆗양호
/etc/passwd 파일의 소유자가 root이고, 권한이 644(-rw-r--r--) 이하인 경우
취약
/etc/passwd 파일의 소유자가 root가 아니거나, 권한이(-rw-r--r--) 644 초과인 경우


/etc/shadow 파일 소유자 및 권한 설정

해당 파일에 대한 권한 관리가 이루어지지 않을 시 ID 및 패스워드 정보가 외부로 노출될 수 있다.

🆗양호
/etc/shadow 파일의 소유자가 root이고, 권한이 400(-r--------) 이하인 경우
취약
/etc/shadow 파일의 소유자가 root가 아니거나, 권한이 400(-r---------)
초과인 경우


/etc/hosts 파일 소유자 및 권한 설정

hosts 파일에 비인가자 쓰기 권한이 부여된 경우, 공격자는 hosts파일에 악의적인 시스템을 등록하여 정상적인 DNS를 우회하는 등 악성사이트로 접속을 유도하는 파밍(Pharming)공격에 악용될 수 있다.

🆗양호
/etc/hosts 파일의 소유자가 root이고, 권한이 644(-rw-r--r--) 이하인 경우
취약
/etc/hosts 파일의 소유자가 root가 아니거나, 권한이 644(-rw-r--r--) 초과인 경우


/etc/(x)inetd.conf 파일 소유자 및 권한 설정

(x)inetd.conf 파일에 비인가자의 쓰기 권한이 부여되어 있을 경우, 비인가자가 악의적인 프로그램을 등록하여 root 권한으로 불법적인 서비스를 실행할 수 있다.

(x)inetd.conf 파일은 최신 리눅스에는 없다

🆗양호
/etc/(x)inetd.conf 파일의 소유자가 root이고, 권한이 644(-rw-r--r--) 이하인 경우
취약
/etc/(x)inetd.conf 파일의 소유자가 root가 아니거나, 권한이 644(-rw-r--r--) 초과인 경우


/etc/(r)syslog.conf 파일 소유자 및 권한 설정

(r)syslog.conf 파일의 접근권한이 적절하지 않을 경우, 침해사고 및 장애 등 이슈상황을 파악하기 위한 시스템 로그가 정상적으로 기록되지 않을 수 있다.

🆗양호
/etc/(r)syslog.conf 파일의 소유자가 root이고, 권한이 644(-rw-r--r--) 이하인 경우
취약
/etc/(r)syslog.conf 파일의 소유자가 root가 아니거나, 권한이 644(-rw-r--r--) 초과인 경우


/etc/services 파일 소유자 및 권한 설정

services 파일의 접근권한이 적절하지 않을 경우, 비인가 사용자가 운영 포트 번호를 변경하여 정상적인 서비스를 제한하거나, 허용되지 않은 포트를 오픈하여 악성 서비스를 의도적으로 실행할 수 있다.

🆗양호
/etc/services 파일의 소유자가 root이고, 권한이 644(-rw-r--r--) 이하인 경우
취약
/etc/services 파일의 소유자가 root가 아니거나, 권한이 644(-rw-r--r--) 초과인 경우


SUID, SGID, Sticky bit 설정 파일 점검

SUID, SGID 파일의 접근권한이 적절하지 않을 경우 SUID, SGID 설정된 파일로 특정 명령어를 실행하여 root 권한 획득 및 정상 서비스 장애를 발생시킬 수 있다.

해당 파일의 접근권한의 설정 기준은 경우에 따라 달라질 수도 있고 애매하다.

🆗양호
주요 실행파일의 권한에 SUID와 SGID에 대한 설정이 부여되어 있지 않은 경우
취약
주요 실행파일의 권한에 SUID와 SGID에 대한 설정이 부여되어 있는 경우


사용자, 시스템 시작파일, 환경파일 소유자 및 권한 설정

홈 디렉터리 내의 사용자 파일 및 사용자별 시스템 시작파일 등과 같은 환경변수 파일의 접근권한 설정이 적절하지 않을 경우 비인가자가 환경변수 파일을 변조하여 정상 사용 중인 사용자의 서비스가 제한될 수 있다.

🆗양호
사용자, 시스템 시작파일 및 환경 파일 소유자가 root 또는 해당 계정이고 권한이 644(-rw-r--r--)로 설정되어 있는 경우
취약
사용자, 시스템 시작파일 및 환경 파일 소유자가 root 또는 해당 계정이 아니거나 권한이 644(-rw-r--r--)로 설정되어 있지 않은 경우


world writable 파일 점검

시스템 파일(중요 파일)에 world writable 설정이 될 경우, 악의적인 사용자가 해당 파일을 마음대로 수정할 수 있어 시스템의 무단 접근 및 시스템 장애를 유발할 수 있다.

일반 사용자에게 쓰기 권한이 있는지 확인
find / -type f -perm -2 -exec ls -l {} \;
find / -type f -perm -2 -exec ls -l {} \; | grep -v"/prco"

🆗양호
world writable 파일이 존재하지 않거나, 존재 시 설정 이유를 확인하고 있는 경우
취약
world writable 파일이 존재하나 해당 설정 이유를 확인하고 있지 않는 경우


$HOME/.rhosts, hosts.equiv 사용 금지

rlogin, rsh 등과 같은 'r' command의 보안 설정이 적용되지 않은 경우, 원격지의 공격자가 관리자 권한으로
목표 시스템상의 임의의 명령을 수행시킬 수 있으며, 명령어 원격 실행을 통해 중요 정보 유출 및 시스템 장애를
유발시킬 수 있다. 또한 공격자 백도어 등으로도 활용될 수 있다.

🆗양호
login, shell, exec 서비스를 사용하지 않거나, 사용 시 아래와 같은 설정이 적용된 경우
/etc/hosts.equiv 및 $HOME/.rhosts 파일 소유자가 root 또는, 해당 계정인 경우
/etc/hosts.equiv 및 $HOME/.rhosts 파일 권한이 600(-rw-------) 이하인 경우
/etc/hosts.equiv 및 $HOME/.rhosts 파일 설정에 ‘+’ 설정이 없는 경우
/etc/hosts.equiv 파일 또는 .rhosts 파일이 존재하지 않을 경우
취약
login, shell, exec 서비스를 사용하거나, 사용 시 아래와 같은 설정이 적용되어 있지 않은 경우
/etc/hosts.equiv 및 $HOME/.rhosts 파일 소유자가 root 또는, 해당 계정인 경우
/etc/hosts.equiv 및 $HOME/.rhosts 파일 권한이 600(-rw-------) 이하인 경우
/etc/hosts.equiv 및 $HOME/.rhosts 파일 설정에 ‘+’ 설정이 없는 경우
/etc/hosts.equiv 파일 또는 .rhosts 파일이 존재하지 않을 경우


접속 IP 및 포트 제한

허용할 호스트에 대한 IP 및 포트제한이 적용되지 않은 경우, Telnet, FTP같은 보안에 취약한 네트워크 서비스를 통하여 불법적인 접근 및 시스템 침해사고가 발생할 수 있다.

🆗양호
접속을 허용할 특정 호스트에 대한 IP 주소 및 포트 제한을 설정한 경우
취약
접속을 허용할 특정 호스트에 대한 IP 주소 및 포트 제한을 설정하지 않은 경우


cron 파일 소유자 및 권한 설정

root 외 일반사용자에게도 crontab 명령어를 사용할 수 있도록 할 경우, 고의 또는 실수로 불법적인 예약 파일 실행으로 시스템 피해를 일으킬 수 있다.

🆗양호
/etc/crontab 파일의 소유자가 root이고,
권한이 640(-rw-r-----) 이하인 경우
취약
/etc/crontab 파일의 소유자가 root가
아니거나, 권한


Finger 서비스 비활성화

비인가자에게 사용자 정보가 조회되어 패스워드 공격을 통한 시스템 권한 탈취 가능성이 있으므로 Finger 서비스를 사용하지 않는다면 해당 서비스를 중지하여야 한다.

🆗양호
finger 서비스가 비활성화 되어 있는 경우
취약
finger 서비스가 활성화 되어 있는 경우


Anonymous FTP 비활성화

Anonymous FTP(익명 FTP)를 사용 시 anonymous 계정으로 로그인 후 디렉터리에 쓰기 권한이 설정되어 있다면 악의적인 사용자가 local exploit을 사용하여 시스템에 대한 공격을 가능하게 한다.

🆗양호
Anonymous FTP (익명 ftp) 접속을 차단한 경우
취약
Anonymous FTP (익명 ftp) 접속을 차단하지 않은 경우


r 계열 서비스 비활성화

서비스 포트가 열려있을 경우, 비인가자에 의한 중요 정보 유출 및 시스템 장애 발생 등 사고의 원인이 될 수 있다.

🆗양호
r 계열 서비스(rlogin, rsh, rexec)가 비활성화 되어 있는 경우
취약
r 계열 서비스(rlogin, rsh, rexec)가 활성화 되어 있는 경우

profile
나는야 멋쟁이 토마토

0개의 댓글