2. 파일 및 디렉터리 관리
2.2 파일 및 디렉터리 소유자 설정
2.2.1 취약점 개요
- 점검 내용 : 소유자 불분명한 파일이나 디렉터리가 존재하는지 여부를 점검
- 점검 목적 :소유자가 존재하지 않는 파일 및 디렉터리를 삭제 및 관리하여 임의의 사용자에 의한 불법적 행위를 서전에 차단하기 위함
- 보안위협 : 삭제된 소유자의 UID와 동일한 사용자가 해당 파일, 디렉터리에 접근 가능하여 사용자 정보 등 중요 정보가 노출될 위험이 있음
** 소유자가 존재하지 않는 파일 및 디렉터리는 최직자의 자료이거나 관리 소흘로 인해 생긴 파일인 경우 또는 해킹으로 인한 공격자가 만들어 놓은 악의적이 파일인 경우가 있음
2.2.2 점검대상 및 판단기준
- 대상 : Solaris, Linux, AIX, HP-UX 등
- 판단기준(양호) : 소유자가 존재하지 않는 파일 및 디렉터리가 존재하지 않는 경우
- 판단기준(취약) : 소유자가 존재하지 않는 파일 및 디렉터리가 존재하는 경우
- 조치방법 : 소유자가 존재하지 않는 파일 및 디렉터리 삭제 또는 소유자 변경
2.2.3 OS별 점검 파일 위치 및 점검 방법
- Solaris
소유자가 nouser, nogroup인 파일이나 디렉터리 검색
# fine / -nouser -o -nogroup -xdev -ls 2 > /dev/null
- Linux
# find / -nouser -print
# fine / -nogroup -print
- AIX
소유자가 nouser, nogroup인 파일이나 디렉터리 검색
# fine / -nouser -o -nogroup -xdev -ls 2 > /dev/null
- HP-UX
# find / \ (-nouser -o -nogroup \) -xdev -exec ls -al { } \;
2> /dev/null
** 소유자가 nouser, nogroup인 파일이나 디렉터리 존재하는 경우 아래의 보안설정방법에 따라 디렉터리 및 파일 삭제 또는 소유자 및 그룹을 변경함
2.2.4 조치 방법
- Solaris
Step 1) 소유자가 존재하지 않는 파일이나 디렉터리가 불필요한 경우 rm 명령으로 삭제
# rm <file_name>
# rm <directory_name>
** 삭제할 파일명 또는 디렉터리명 입력
Step 2) 필요한 경우 chown 명령으로 소유자 및 그룹 변경
# chown <user_name> <file_name>
- Linux
Step 1) 소유자가 존재하지 않는 파일이나 디렉터리가 불필요한 경우 rm 명령으로 삭제
# rm <file_name>
# rm <directory_name>
** 삭제할 파일명 또는 디렉터리명 입력
Step 2) 필요한 경우 chown 명령으로 소유자 및 그룹 변경
# chown <user_name> <file_name>
- AIX
Step 1) 소유자가 존재하지 않는 파일이나 디렉터리가 불필요한 경우 rm 명령으로 삭제
# rm <file_name>
# rm <directory_name>
** 삭제할 파일명 또는 디렉터리명 입력
Step 2) 필요한 경우 chown 명령으로 소유자 및 그룹 변경
# chown <user_name> <file_name>
- HP-UX
Step 1) 소유자가 존재하지 않는 파일이나 디렉터리가 불필요한 경우 rm 명령으로 삭제
# rm <file_name>
# rm <directory_name>
** 삭제할 파일명 또는 디렉터리명 입력
Step 2) 필요한 경우 chown 명령으로 소유자 및 그룹 변경
# chown <user_name> <file_name>
2.2.5 조치 시 영향
- 일반적인 경우 영향 없음
2.3.6 기타 (Linux Command 1)
- ls : 디렉토리와 파일의 정보를 출력함(도스의 dir)
# ls [-ailFRC] [파일 또는 디렉토리]
[옵션]
-l 파일에 대한 정보(파일 허용권, 소유자, 그룹, 크기, 날짜)를 긴 형식으로 보여줌
-i 파일의 'inode'도 같이 보여줌
-r 파일을 역순, 즉 내림차순으로 배열함
-F 파일의 특성을 보여줌 이름 뒤에 디렉토리면 /를 실행파일이면 *, 심블릭 링크된 파일이면 @를 붙여줌
-C 컬럼별로 파일을 보여줌
-m 가로로 간단히 출력함
-- color=yes 서브디렉토리를 구별하기 위해 color로 보여줌
-w 컬럼수로 가로의 크기를 설정함
-R 하위 디렉토리의 파일도 모두 보여줌
-u 변경되지 않았더라도 최근에 엑세스했던 파일들을 보여줌
-t 최종 수정된 시간별로 정렬함
-a 는 모든 파일을 지정함 (디렉토리의 Hidden 파일도 보여줌)
- whoami : 사용자의 ID 출력
형식 : $ whoami
- pwd : print working directory, 현재 작업 Directory를 출력
- 파일생성 : vi
- cp : 파일 복사
형식 : cp 파일위치_및_파일이름 목적지_파일위치_및_파일이름
- rm : 파일 제거
형식 : rm [options] file(s)
[옵션]
-f 쓸 수 없는 파일이라도 물어보지 않고 강제로 지움
-i 각 파일에 대하여 지울 것인지 물어 봄
-r 서브디렉터리를 포함한 모든 내용을 재귀적으로 지움
-v 지워지는 파일명을 출력
- rmdir : 디렉터리를 지움, 만약 디렉터리가 비어있지 않으면 지울 수 없음( -r 파일 존재해도 삭제, -f 디렉터리 존재해도 삭제)
- mkdir : 새 디렉터리 만듬
- mv : 파일의 이름을 변경하거나 이동
[옵션]
-b 백업파일을 만든 후 파일을 지우거나 옮깁니다.
-i 이미 존재하는 파일을 덮어 쓸 것인지 물어봅니다.
-v 파일을 옮기면서 파일명을 출력합니다.
- cd : 자기 자신의 홈 디렉터리로 이동
[옵션]
cd / : 루트 디렉터리(/)로 이동하기
cd . : 현재 디렉터리(현재위치)로 이동하기
cd .. : 한단계 상위 디렉터리로 이동하기
cd ~ : 자기자신의 홈 디렉터리로 이동하기(cd 와 같음)
cd – : 바로 전에 위치했던 디렉터리로 이동하기