Hacking/infra 진단

[Linux] U-16 (상) /dev에 존재하지 않는 device 파일 점검

알거음슴 2021. 8. 23. 16:35
취약점 개요
점검 내용 존재하지 않는 device 파일 존재 여부 점검
점검 목적 실제 존재하지 않는 디바이스를 찾아 제거함으로써 root 파일 시스템 손상 및 다운 등의 문제를 방지하기 위함
보안 위협 공격자는 rootkit 설정파일들을 서버 관리자가 쉽게 발견하지 못하도록 /dev device 파일인 것처럼 위장하는 수법을 많이 사용함
참고 /dev 디렉터리: 논리적 장치 파일을 담고 있는 /dev 디렉터리는 /devices 디렉터리에 있는 물리적 장치 파일에 대한 심볼릭 링크임. 예를 들어 rmt0 rmto로 잘못 입력한 경우 rmto 파일이 새로 생성되는 것과 같이 디바이스 이름 입력 오류 시 root 파일시스템이 에러를 일으킬 때까지 /dev 디렉터리에 계속해서 파일을 생성함
/dev 디렉터리 내 불필요한 device 파일이 존재할 시 삭제 권고
점검대상 및 판단 기준
대상 LINUX
판단기준 양호 : dev에 대한 파일 점검 후 존재하지 않은 device 파일을 제거한 경우
취약 : dev에 대한 파일 미점검 또는, 존재하지 않은 device 파일을 방치한 경우
조치 방법 major, minor number를 가지지 않는 device 파일 제거

 

점검 및 조치
점검 dev에 존재하지 않는 device 파일 점검
#find /dev –type f –exec ls –l {} \;
“services” 파일의 소유자가 root가 아니거나 파일의 권한이 644가 아닌 경우 아래의
보안설정방법에 따라 설정을 변경함
조치 Step 1) /dev 디렉터리 파일 점검
 #find /dev -type f -exec ls -l {} \;
Step 2) major, minor number를 가지지 않는 device일 경우 삭제

 

점검 스크립트

#!/bin/bash

. function.sh

BAR
CODE [U-16] /dev에 존재하지 않는 device 파일 점검
cat << EOF >> $RESULT
[양호]: dev에 대한 파일 점검 후 존재하지 않은 device 파일을 제거한 경우.
[취약]: dev에 대한 파일 미점검 또는, 존재하지 않은 device 파일을 방치한 경우.
EOF
BAR

TMP=$(mktemp)

find /dev -type f -exec ls -l {} \; > $TMP

if [ -s $TMP ] ; then
	WARN 파일이 존재합니다. 
	INFO $TMP를 확인하십시오.
    INFO "고객사와 상의하여 존재하지 않는 디바이스 파일이 존재하는 지 확인하세요."
    INFO "존재하지 않는 디바이스 파일이 존재한다면 해당 파일을 삭제한다."
else
	OK 파일이 존재하지 않습니다. 
fi

cat $RESULT