2. 파일 및 디렉터리 관리
2.5 /etc/hosts 파일 권한 적절성 점검
2.5.1 취약점 개요
- 점검 내용 : /etc/hosts 파일 권한 적절성 점검
- 점검 목적 : /etc/hosts 파일을 관리자만 제아할 수 있게 하여 비인가자들의 임의적인 파일 변조를 방지하기 위함
- 보안위협 : hosts 파일에 비인가자 쓰기 권한이 부여된 경우, 공격자는 hosts 파일에 악의적인 시스템을 등록하여, 이를 통해 정상적인 DNS를 우회하여 악성사이트로의 접속을 유도하는 파밍(Pharming) 공격 등에 악용될 수 있음
2.5.2 점검대상 및 판단기준
- 대상 : Solaris, Linux, AIX, HP-UX 등
- 판단기준(양호) : /etc/hosts 파일의 소유자가 root이고, 권한이 600 이하인 경우
- 판단기준(취약) : /etc/hosts 파일의 소유자가 root가 아니거나, 권한이 600이 아닌 경우
- 조치방법 : "/etc/hosts" 파일의 소유자 및 권한 변경 (소유자 root, 권한 600)
2.5.3 OS별 점검 파일 위치 및 점검 방법
- Solaris
# ls -l /etc/hosts
r-- --- --- root <hosts 파일>
** "hosts" 파일의 소유자가 root가 아니거나 파일의 권한이 600이 아닌 경우 아래의 보안설정 방법에 따라 설정을 변경함
- Linux
# ls -l /etc/hosts
r-- --- --- root <hosts 파일>
** "hosts" 파일의 소유자가 root가 아니거나 파일의 권한이 600이 아닌 경우 아래의 보안설정 방법에 따라 설정을 변경함
- AIX
# ls -l /etc/hosts
r-- --- --- root <hosts 파일>
** "hosts" 파일의 소유자가 root가 아니거나 파일의 권한이 600이 아닌 경우 아래의 보안설정 방법에 따라 설정을 변경함
- HP-UX
# ls -l /etc/hosts
r-- --- --- root <hosts 파일>
** "hosts" 파일의 소유자가 root가 아니거나 파일의 권한이 600이 아닌 경우 아래의 보안설정 방법에 따라 설정을 변경함
2.5.4 조치 방법
- Solaris
Step 1) "/etc/hosts" 파일의 소유자 및 권한 변경(소유자 root, 권한600)
# chown root /etc/hosts
# chmod 600 /etc/hosts
- Linux
Step 1) "/etc/hosts" 파일의 소유자 및 권한 변경(소유자 root, 권한600)
# chown root /etc/hosts
# chmod 600 /etc/hosts
- AIX
Step 1) "/etc/hosts" 파일의 소유자 및 권한 변경(소유자 root, 권한600)
# chown root /etc/hosts
# chmod 600 /etc/hosts
- HP-UX
Step 1) "/etc/hosts" 파일의 소유자 및 권한 변경(소유자 root, 권한600)
# chown root /etc/hosts
# chmod 600 /etc/hosts
2.4.5 조치 시 영향
- 일반적인 경우 영향 없음
2.4.6 기타 (Linux Command)
- /etc/hosts : IP 주소와 호스트네임을 매핑하는파일, 일반적으로 인터넷 통신 시 주소를 찾기 위해 도메인 네임 서비스(DNS)보다 hosts 파일을 먼저 참조함. hosts 파일은 문자열 주소로부터 IP 주소를 수신받아 DNS 서버와는 달리, 파일 내에 직접 문자열 주소와 IP 주소를 매칭하여 기록하며, DNS 서버 접근 이전에 확인하여 해당 문자열 주소가 목록에 존재할 시 그 문자열 주소에 해당하는 IP 주소로 연결함
- 파밍(Pharming) : 사용자의 DNS 또는 hosts 파일을 변조함으로써 정상적인 사이트로 오인하여 좁속하도록 유도한 뒤 개인정보를 훔치는 새로운 컴퓨터 범죄 수
- gunzip : 압축 풀때 사용
형식 : gunzip [압축 해제할 파일명]
- find : 파일 찾기, 주어진 파일명과 동일한 파일을 찾고, 그 경로를 출력
- which : 특정명령어의 위치를 찾아주는 명령어
- whereis : 명령어의 실행파일위치, 소스위치, man 페이지파일의 위치를 찾아주는 명령어
- finger : 사용자의 계정정보를 확인하는 명령어
[옵션]
-s : 사용자의 로그온 이름, 실제이름, 터미널 이름, 로그온 시간 등을 보여줌
-l : -s 옵션 정보에 몇 가지를 추가하여, 여러 줄에 걸쳐서 보여줌
-p : -l 옵션 정보에서 .plan과 .project 파일을 보이지 않음
옵션이 주어지지 않으면, 기본적으로 -l 옵션을 사용한 것으로 간주
- who : 호스트에 로그인한 사용자의 정보를 출력하는 명령어
형식 : who [옵션]... [파일\ 인수1 인수2]
- ps : 프로세서에 관한 리스트
- kill : 실행되어 있는 프로세서 ID를 입력해서 프로세서를 종료하는 명령
- pstree : 프로세스의 상관관계(부모-자식 관계)를 트리 형태로 출력해주는 명령어
형식 : pstree [옵션]... [pid|user]
- shutdown : 종료와 재부팅의 대표적인 콘솔 명령어
- Init : 종료와 재부팅의 콘솔 명령어
[옵션]
0 : 종료모드
1 : 단일 사용자 모드(시스템 복구 시 사용)
2 : 다중 사용자 모드 (NFS 사용 불가로 서버와 공유 안됨. 인터넷도 안됨)
3 : 다중 사용자 모드 (텍스트 로그인)
4 : 사용 안 함
5 : 다중 사용자 모드 (X윈도우 로그인)
6 : 재가동 모드(재부팅)