본문 바로가기
Hacking/infra 진단

[Linux] U-12 (상) /etc/services 파일 소유자 및 권한 설정

by 알거음슴 2021. 8. 23.
취약점 개요
점검 내용 /etc/services 파일 권한 적절성 점검
점검 목적 /etc/services 파일을 관리자만 제어할 수 있게 하여 비인가자들의 임의적인 파일 변조를 방지하기 위함
보안 위협 services 파일의 접근권한이 적절하지 않을 경우 비인가 사용자가 운영 포트번호를 변경하여 정상적인 서비스를 제한하거나, 허용되지 않은 포트를 오픈하여 악성 서비스를 의도적으로 실행할 수 있음
참고 /etc/services : 서비스 관리를 위해 사용되는 파일. 해당 파일에 서버에서 사용하는 모든 포트(port)들에 대해 정의되어 있으며, 필요시 서비스 기본사용 포트를 변경하여 네트워크 서비스를 운용할 수 있음
점검대상 및 판단 기준
대상 LINUX
판단기준 양호 : /etc/services 파일의 소유자가 root(또는 bin, sys)이고, 권한이 644 이하인 경우
취약 : /etc/services 파일의 소유자가 root(또는 bin, sys)가 아니거나, 권한이 644 이하가 아닌 경우
조치 방법 “/etc/ services” 파일의 소유자 및 권한 변경 (소유자 root(또는 bin, sys), 권한 644 이하)

 

점검 및 조치
점검 /etc/services” 파일의 소유자 및 권한 확인
#ls –l /etc/services
rw-r--r-- root <services 파일>
“services” 파일의 소유자가 root가 아니거나 파일의 권한이 644가 아닌 경우 아래의
보안설정방법에 따라 설정을 변경함
조치 “/etc/services” 파일의 소유자 및 권한 변경 (소유자 root, 권한 644)
 #chown root /etc/services
 #chmod 644 /etc/services

 

점검 스크립트

#!/bin/bash

. function.sh

BAR
CODE [U-12] "/etc/services" 파일 소유자 및 권한 설정
cat << EOF >> $RESULT
[양호]: etc/services 파일의 소유자가 root(또는 bin, sys)이고, 권한이 644 이하인 경우
[취약]: etc/services 파일의 소유자가 root(또는 bin, sys)가 아니거나, 권한이 644 이하가 아닌 경우
EOF
BAR

FILE=/etc/services
USER=root
PERM=644

FILEUSER=$(ls -al $FILE | awk '{print $3}')
FILEPERM=$(stat -c '%a' /etc/services)

if [ $FILEUSER != $USER ] ; then
    VULN "/etc/services 파일의 소유자가 root가 아닙니다. "
else
    if [ $FILEPERM != $PERM ] ; then
        VULN "권한이 644가 아닙니다. 보안 설정 방법에 따라 권한을 변경하세요."
    else
        OK "/etc/services 파일의 소유자가 root이고, 권한이 644 이하인 경우"
    fi
fi

cat $RESULT