□ 주요정보통신기반시설 기술적 취약점 분석 평가
- 과학기술정보통신부 및 한국인터넷진흥원에서 발행한 가이드로, IDC, ISP 등 민간, 공공시설을 불문하고 침해사고 등이
발생할 경우 경제사회와 국가안정에 미치는 영향이 큰 시설들을 말하며, 이 시설들을 보호하기 위해 내부에 존재하는 취약점을 파악 및 조치하는 방법을 기술해놓은 가이드로, 국내 많은 기업들이 해당 가이드를 토대로 점검 및 조치를 진행하고 있다.
- 주요정보통신기반시설 기술적 취약점 분석 평가에는 주요 점검 대상으로 유닉스, 윈도우즈, 보안장비, 네트워크 장비, 데이터베이스, 웹 등을 다루고 있으며 해당 챕터에서는 유닉스(리눅스)서버를 다룰 예정
- 해당 가이드는 한국인터넷진흥원 가이드라인에서 참고
- https://www.kisa.or.kr/2060204/form?postSeq=12&page=1
□ 유닉스(리눅스) 서버 점검 항목
- Unix(Linux) 서버 점검 항목으로 크게 계정 관리, 파일 및 디렉터리 관리, 서비스 관리, 패치 관리, 로그 관리 등을 다루고 있다.
- 계정 관리의 경우, root 계정 원격 접속 제한, 계정 잠금 등에 대한 부분을 다루고 있으며, 파일 및 디렉터리 관리에서는 root 홈, 패스 디렉터리 권한 설정, UMASK 설정 등을 다루고 있으며, 서비스에서는 보안상 취약한 서비스(ex, finger) 비활성화 등을 다루고 있으며, 패치 관리는 최신 보안 패치 여부를 점검하며, 로그 관리는 정기적으로 로그를 검토 및 점검하고 있는지 여부를 확인하고 있다.
- 해당 챕터에서는 CentOS 7.9 버전에서 진행하였으며, CentOS 이외에 다른 OS 점검 방법은 상기에 기재된 가이드 참고
□ /etc/shadow 파일 소유자 및 권한 설정
점검 내용
- /etc/shadow 파일 권한 적절성 점검
- (양호) /etc/passwd 파일의 소유자가 root이고, 권한이 400 이하인 경우
- (취약) /etc/passwd 파일의 소유자가 root가 아니거나, 권한이 400 이하가 아닌 경우
보안 위협
- shadow파일은 패스워드를 암호화하여 저장하는 파일이며 해당 파일의 암호화된 해쉬값을 복호화하여(크래킹) 비밀번호를 탈취할 수 있음
점검 방법 확인 명령어
1. /etc/shadow 파일의 소유자가 root로 설정되어 있는지 확인
ls -al /etc/shadow | awk '{print $3, $4}'
2. /etc/shadow 파일의 권한이 400보다 높게 설정되어 있는지 확인
- stat 명령을 사용하여 권한 상태 확인
stat -c "%a" /etc/shadow
/etc/shadow 파일 소유자 및 권한 설정 스크립트 코드
#!/bin/bash
FILE="U-08.txt"
# /etc/shadow 에서 소유자와 그룹 값을 변수로 지정
PERM=$(ls -al /etc/shadow | awk '{print $3, $4}')
OWNER=$(echo $PERM | awk '{print $1}')
GROUP=$(echo $PERM | awk '{print $2}')
# 상태값 변수로 지정
STATUS="양호"
echo "U-08. /etc/shadow 파일 권한 적절성 점검" >> $FILE 2>&1
echo "======================================================================================" >> $FILE 2>&1
echo "" >> $FILE 2>&1
echo "/etc/shadow 파일의 소유자가 root 여부 및, 권한이 400 이하로 설정되어 있는지 확인" >> $FILE 2>&1
echo "======================================================================================" >> $FILE 2>&1
echo "" >> $FILE 2>&1
if [ "$OWNER" = "root" ] && [ "$GROUP" = "root" ]; then
echo "/etc/shadow 파일이 400 이하로 설정되어 있는지 확인 필요합니다." >> $FILE 2>&1
echo "======================================================================================" >> $FILE 2>&1
echo "" >> $FILE 2>&1
if [ `stat -c "%a" /etc/shadow` -le 400 ]; then
echo "/etc/shadow 파일이 400 권한보다 낮게 설정되어 있습니다." >> $FILE 2>&1
echo "======================================================================================" >> $FILE 2>&1
echo "" >> $FILE 2>&1
else
echo "/etc/shadow 파일의 권한이 400보다 높게 설정되어 있습니다." >> $FILE 2>&1
echo "======================================================================================" >> $FILE 2>&1
echo "" >> $FILE 2>&1
STATUS="취약"
fi
else
echo "/etc/shadow 파일의 소유자가 root로 설정되어 있지 않습니다." >> $FILE 2>&1
echo "======================================================================================" >> $FILE 2>&1
echo "" >> $FILE 2>&1
STATUS="취약"
fi
if [ "$STATUS" == "취약" ]; then
echo "해당 항목 취약합니다." >> $FILE 2>&1
echo "======================================================================================" >> $FILE 2>&1
echo "" >> $FILE 2>&1
else
echo "해당 항목 양호합니다." >> $FILE 2>&1
echo "======================================================================================" >> $FILE 2>&1
echo "" >> $FILE 2>&1
fi
'인프라 진단 > 주•통기반 리눅스 서버 점검' 카테고리의 다른 글
U-09. /etc/hosts 파일 소유자 및 권한 설정 (0) | 2024.06.27 |
---|---|
U-07. /etc/passwd 파일 소유자 및 권한 설정 (0) | 2024.06.27 |
U-06. 파일 및 디렉터리 소유자 설정 (0) | 2024.06.26 |
U-05. root홈, 패스 디렉터리 권한 및 패스 설정 (0) | 2024.06.26 |
U-04. 패스워드 파일 보호 (0) | 2024.06.23 |