UNIX/Linux 파일 및 디렉터리 관리
① root 홈, 패스 디렉터리 권한 및 PATH 설정
- root 계정의 PATH 환경변수에 '.'(현재 디렉터리 지칭)이 포함되어 있으면 root 계정으로 접속한 관리자가 의도하지 않은 현재 디렉터리에 있는 관리자 명령어가 실행될 수 있다.
- 즉, '.'이 /usr/bin, /bin, /sbin 등 관리자 명령어들이 있는 디렉터리보다 우선하여 PATH 환경변수에 있으면 현재 디렉터리에 변조된 관리자 명령어를 악의적으로 삽입하여 명령어 입력 시 변조된 명령어가 실행될 수 있다.
+ [시스템에서 사용자가 명령 실행 시 명령어를 찾는 절차]
(1) PATH 환경변수에 설정된 경로에 따라 순서대로 명령어를 찾음
(2) 명령어가 있으면 실행 권한 확인
(3) 실행 권한이 있다면, 명령어를 실행시킨 사용자 ID(UID)로 명령어 실행
(4) 실행파일에 setuid/setgid가 설정되어있다면 소유주/소유그룹 권한으로 명령어 실행
[문제상황]
(1) root 계정의 PATH 환경변수에 '.' 경로를 맨 앞에 추가
# root 계정의 PATH 환경분수에 '.' 경로를 맨 앞에 추가 #'/etc/profile 또는 root 홈디렉토리에 있는 '.bash_profile' 설정파일에서 설정 cat /root/.bash_profile PATH =.:$PATH # root 계정의 PATH 환경분수에 '.' 경로를 맨 앞에 추가
(2) 환경 설정 파일을 다시 로드한 후 echo 명령을 통해 PATH 경로의 맨 앞에 '.' 경로가 추가된 것을 확인한다.
. .bash_profile # 환경설정파일 로드 echo $PATH # PATH 환경변수 확인 .:/usr/lib........:..... # 구분자는 ':' 이며,'.'가 맨 앞에 있으므로 관리자 명령어 실행 시 현재 디렉터리부터 찾는다.
(3) 변조된 명령어(ps 명령어) 실행
[보안설정]ls - l /root/ps # 공격자에 의해 조작된 ps명령어가 root 홈디렉터리에 위치 -rwxr-xr-x 1 root root 5209 2024-02-05 16:12 which ps # 지정한 명령어의 위치를 찾아주는 명령어 ./ps # 현재 디렉터리에 공격자가 변조한 명령어 존재 ps # 명령 실행 시, 변조된 명령어 실행됨 PID TTY TIME CMD 14014 pts/0 00:00:00 bash 14014 pts/1 00:00:00 ps 변조된 명령어가 실행 되었습니다.
- Root 계정의 환경설정파일에서 PATH 환경변수를 확인하여 경로 맨 앞 또는 중간에 '.'이 포함되어 있으면 맨 뒤로 이동시키거나 불필요한 경우 삭제한다.
- Shell에 따라 참조되는 파일
/bin/sh /etc/profile, $HOME/.profile /bin/bash /etc/profile, $HOME/.bash_profile /bin/ksh /etc/profile, $HOME/.profile, $HOME/.kshrc /bin/csh /etc/.login, $HOME/.cshrc, $HOME/.login
② 파일 및 디렉터리 소유자/소유그룹 설정
- 소유자나 소유그룹이 존재하지 않는 파일이나 디렉터리가 있는 이유 -> 관리소홀,삭제된 사용자 계정,그룹 소유 파일
- 소유자나 소유그룹이 존재하지 않는 파일의 UID,GID로 악의적인 사용자의 ID 를 설정하면 해당 권한을 이용해 악용될 우려가 있음
[보안설정]
(1) 소유자나 소유그룹이 존재하지 않는 파일,디렉터리 검색
find / \(-nouser -o -nogroup\) -exc ls -al {}; -rw-r--r-- 1 1001 1001 4096 Nov 11 12:34 /var/tmp/orphaned_file.txt drwxr-xr-x 2 1002 1002 4096 Nov 10 10:20 /home/old_user/unowned_directory -rwxr-xr-x 1 1003 1003 2048 Nov 9 08:15 /usr
(2) 해당 파일 삭제 또는 소유자,소유그룹 변경
rm -f [파일명] #해당 파일 삭제 chown alice [파일명] #해당 파일의 소유자 변경 chgrp group [파일명] #해당 파일의 소유그룹 변경
③ world writable 파일 점검
- World writable 파일: 모든 사용자(others) 에 대해 쓰기(w) 권한이 허용된 파일
- 비인가자에 의해 악의적으로 파일이 변경될 수 있음.
(1) world writable 파일 검색
find . -type f -perm -2 -exec ls -al {} \; # -perm 2 = -perm 002, 22 = 022
(2) 불필요할 경우 삭제
rm - f [파일명]
(3) 필요한 경우 쓰기권한 제거
chmod o-w [파일명]
④ 주요 파일 소유자 및 권한 설정
(1) /etc/passwd 파일
- 사용자의 계정 정보 저장파일
- (권장 설정) Root 소유의 644 이하 권한 설정
- (조치 방법) chown root /etc/passwd, chmod 644 /etc/passwd
(2) /etc/shadow 파일
- 사용자의 암호화된 패스워드정보 저장파일
- (권장 설정) Root 소유의 400 이하 권한 설정
(3) /etc/hosts 파일
- Ip 주소에 대한 호스트명(도메인명 정보 저장 파일)
- (권장 설정) Root 소유의 600 이하 권한 설정
(4) /etc/inetd.conf, /etc/xinetd.conf 파일
- Inted 및 xinetd 슈퍼 데몬 설정 파일
- (권장 설정) root 소유의 600 이하 권한 설정
(5) /etc/syslog.conf, /etc/rsyslog.conf
- syslogd 및 rsyslogd 데몬 설정 파일, 주요 서비스별 로그파일에 대한 설정 정보
- (권장 설정) root 소유 (또는 bin,sys 등의 시스템 계정) 의 640 이하 권한 설정
(6) /etc/services 파일
- 서비스 관리정보(서비스별 프로토콜 및 포트 번호 정보)
- (권장 설정) 비인가자가 서비스 운영 포트를 변경하여 정상적인 서비스를 제한하거나 허용하지 않는 포트를 등록하여 악성 서비스를 실행할 수 있으므로 Root 소유의 644 이하 권한 설정
'정보보안 > 시스템 보안' 카테고리의 다른 글
[시스템 취약점] 윈도우 서비스 & 로그 관리 (0) | 2024.11.12 |
---|---|
[시스템 취약점] OS별 계정 관리 (0) | 2024.11.12 |
[UNIX/Linux 기본학습] 시스템 해킹 (0) | 2024.11.12 |
[UNIX/Linux 기본학습] 서버보안4 (3) | 2024.11.12 |
[UNIX/Linux 기본학습] 서버보안3 (0) | 2024.11.11 |