"파일 하나의 권한 설정이 서버 전체 보안 수준을 바꿀 수 있습니다."
1. 취약점 점검 기준
/etc/hosts 파일은 로컬에서 도메인과 IP를 매핑하는 핵심 시스템 파일입니다. 이 파일이 외부 사용자에게 노출되거나 수정 가능할 경우, 악성 서버로 트래픽을 유도하는 등 심각한 보안 문제가 발생할 수 있습니다.
- 양호기준: /etc/hosts 파일의 소유자가 root이고, 권한이 600인 경우 양호합니다. - 취약기준: /etc/hosts 파일의 소유자가 root가 아니거나, 권한이 600이 아닌 경우 취약합니다.
| 항목 | 기준 |
|---|---|
| 파일 경로 | /etc/hosts |
| 권한 | 600 (rw-------) |
| 소유자 | root |
| 취약 기준 | 600 초과 권한 (예: 644, 666) |
특히 일반 사용자 읽기 권한이 포함된 경우에도 취약으로 판단합니다. 이는 내부 네트워크 정보 노출 및 공격 경로 분석이 가능해지기 때문입니다.
2. 취약점 점검 방법 (리눅스 기준)
리눅스 환경에서 취약점 점검은 수동 점검과 자동 점검으로 나눌 수 있습니다.
✔ 2-1. 수동 점검 방법
ls -l /etc/hosts
출력 결과 예시:
-rw-r--r-- 1 root root 123 Apr 27 /etc/hosts
위와 같이 644 권한일 경우 취약 상태입니다.
정상 상태는 -rw------- 입니다.
✔ 2-2. 상세 권한 점검
stat -c "%a %n" /etc/hosts
출력 값이 600 초과이면 취약으로 판단합니다.
✔ 2-3. 자동 점검 스크립트
#!/bin/bash perm=$(stat -c "%a" /etc/hosts) owner=$(stat -c "%U" /etc/hosts) if [ "$perm" -gt 600 ] || [ "$owner" != "root" ]; then echo "취약: 권한=$perm, 소유자=$owner" else echo "양호: 설정 정상" fi
해당 스크립트는 권한과 소유자를 동시에 점검하여 보다 정확한 보안 상태를 확인할 수 있습니다.
✔ 2-4. 시스템 전체 취약점 점검 방법
단일 파일뿐 아니라 서버 전체 취약점을 점검할 때는 아래와 같은 방법을 사용합니다.
- find 명령어로 위험 권한 파일 탐색
- 보안 점검 스크립트 활용 (Lynis 등)
- 정기 점검 cron 등록
find /etc -type f -perm /022
이 명령어는 그룹/기타 사용자에게 쓰기 권한이 있는 파일을 탐지합니다.
3. 취약점 조치 방법
취약 상태로 확인되면 즉시 권한 및 소유자를 수정해야 합니다.
chmod 600 /etc/hosts chown root:root /etc/hosts
이 설정을 통해 root만 접근 가능하도록 제한할 수 있습니다.
추가적인 보안 강화 방법은 다음과 같습니다.
- cron 기반 자동 복구
- 파일 변경 감시 (auditd)
- 보안 정책 문서화
#!/bin/bash chmod 600 /etc/hosts chown root:root /etc/hosts
윈도우에서 서버를 원격 관리할 경우 배치 파일로도 적용 가능합니다.
ssh user@server "chmod 600 /etc/hosts && chown root:root /etc/hosts"
이러한 조치를 통해 DNS 변조, 트래픽 우회, 내부 정보 노출을 효과적으로 차단할 수 있습니다.


