본문 바로가기

카테고리 없음

vada 취약점 점검 대응 /etc/hosts 등 외2

서버 취약점 조치 가이드

🔒 서버 취약점 조치 가이드

작성일: 2026-01-07  |  대상: Linux 서버  |  점검 항목: U-13, U-51

1. U-13 SUID, SGID 설정 파일점검

취약 내용

구분 파일 경로 현재 상태
취약1 /sbin/unix_chkpwd 퍼미션 중 4000 (SUID) 설정됨
취약2 /usr/bin/newgrp 퍼미션 중 4000 (SUID) 설정됨

조치 방법

SUID 비트를 제거하여 권한을 755로 변경합니다.
sudo chmod 755 /sbin/unix_chkpwd
sudo chmod 755 /usr/bin/newgrp

2. U-51 계정이 존재하지 않는 GID 금지

취약 내용

취약: /etc/group에 소유자가 존재하지 않는 그룹 22개 존재

취약 그룹 목록 (22개)

그룹명 GID 용도
mem8메모리 접근
kmem9커널 메모리
cdrom11CD-ROM 장치
man15man 페이지
dialout18시리얼 포트
floppy19플로피 드라이브
games20게임
tape33테이프 장치
video39비디오 장치
lock54잠금 파일
audio63오디오 장치
utmp22로그인 기록
utempter35utmp 헬퍼
input999입력 장치
kvm36가상화
render998GPU 렌더링
systemd-journal190저널 로그
printadmin994프린터 관리
ssh_keys101SSH 키
sgx987Intel SGX
brlapi985점자 디스플레이
slocate21파일 검색

조치 방법

취약 대상 그룹의 멤버 필드에 현존하는 사용자 계정(cloud)을 부여합니다.

사전 작업: 백업

sudo cp /etc/group /etc/group.bak

조치 명령어 (복사하여 실행)

sudo usermod -aG mem cloud
sudo usermod -aG kmem cloud
sudo usermod -aG cdrom cloud
sudo usermod -aG man cloud
sudo usermod -aG dialout cloud
sudo usermod -aG floppy cloud
sudo usermod -aG games cloud
sudo usermod -aG tape cloud
sudo usermod -aG video cloud
sudo usermod -aG lock cloud
sudo usermod -aG audio cloud
sudo usermod -aG utmp cloud
sudo usermod -aG utempter cloud
sudo usermod -aG input cloud
sudo usermod -aG kvm cloud
sudo usermod -aG render cloud
sudo usermod -aG systemd-journal cloud
sudo usermod -aG printadmin cloud
sudo usermod -aG ssh_keys cloud
sudo usermod -aG sgx cloud
sudo usermod -aG brlapi cloud
sudo usermod -aG slocate cloud

결과 확인

grep -E "^(mem|kmem|cdrom|man|dialout|floppy|games|tape|video|lock|audio|utmp|utempter|input|kvm|render|systemd-journal|printadmin|ssh_keys|sgx|brlapi|slocate):" /etc/group

3. /etc/hosts 파일 권한 설정 (600)

취약 내용

취약: /etc/hosts 파일 권한이 644로 설정되어 일반 사용자가 읽기 가능

문제점

⚠️ 단순 chmod 600 적용 시 문제 발생
systemd-resolved가 root가 아닌 권한으로 동작하므로, 단순히 600으로 변경하면 DNS name resolution이 실패할 수 있습니다.

조치 방법: dnsmasq 로컬 DNS 서버 활용

/etc/hosts는 600으로 정책 준수하고, 실제 호스트 해석은 dnsmasq를 통해 처리합니다.

1) dnsmasq 설치 확인

# 설치 확인
rpm -qa | grep dnsmasq

# 없으면 설치
sudo yum install dnsmasq -y

2) dnsmasq 설정

sudo vi /etc/dnsmasq.conf
# /etc/hosts 안 읽음
no-hosts

# 별도 hosts 파일 지정 (644 권한)
addn-hosts=/etc/dnsmasq.hosts

# 로컬에서만 동작
listen-address=127.0.0.1
bind-interfaces

# 상위 DNS
server=8.8.8.8
server=168.126.63.1

3) 별도 hosts 파일 생성

sudo vi /etc/dnsmasq.hosts
127.0.0.1 localhost
172.30.142.245 myserver.example.com
sudo chmod 644 /etc/dnsmasq.hosts

4) resolv.conf 수정

sudo vi /etc/resolv.conf
nameserver 127.0.0.1

5) dnsmasq 시작

sudo systemctl enable dnsmasq
sudo systemctl start dnsmasq

6) /etc/hosts 권한 변경

sudo chmod 600 /etc/hosts

동작 원리

애플리케이션 (JEUS 등)
    ↓ DNS 질의 (gethostbyname)
/etc/resolv.conf → nameserver 127.0.0.1
    ↓
dnsmasq (root로 실행)
    ↓
/etc/dnsmasq.hosts 읽어서 응답

조치 결과

항목 상태 비고
/etc/hosts 600 정책 준수
/etc/dnsmasq.hosts 644 서비스용 hosts 파일
시스템 DNS 해석 정상 dnsmasq 경유

4. 주의사항

⚠️ ssh_keys 그룹 주의
ssh_keys 그룹은 보안에 민감할 수 있습니다. 필요시 별도의 서비스 계정(예: sshd)으로 지정하는 것을 권장합니다.
sudo usermod -aG ssh_keys sshd
  • 조치 전 반드시 /etc/group 파일을 백업하세요.
  • 조치 후 재점검을 통해 취약점 해소 여부를 확인하세요.
  • 서버 용도에 따라 불필요한 그룹은 삭제를 검토할 수 있습니다.