본문 바로가기
취약점 진단/UNIX 취약점 진단

[UNIX] U-06 파일 및 디렉터리 소유자 설정

by 게으른 피글렛 2024. 10. 5.
반응형

U-06 파일 및 디렉터리 소유자 설정

항목중요도 : 상

1. 취약점 개요

▶ 점검내용 : 소유자 불분명한 파일이나 디렉터리가 존재하는지 여부를 점검

 점검목적 : 소유자가 존재하지 않는 파일 및 디렉터리를 삭제 및 관리하여 임의의 사용자가 해당파일을 열람, 수정하는 행위를 사전에 차단하기 위함

 보안위협

 · 소유자가 존재하지 않는 파일의 UID와 동일한 값으로 특정계정의 UID값을 변경하면 해당 파일의 소유자가 되어 모든 작업이 가능함

 참고

※ 소유자가 존재하지 않는 파일 및 디렉터리는 퇴직자의 자료이거나 관리 소홀로 인해 생긴 파일인 경우 또는 해킹으로 인한 공격자가 만들어 놓은 악의적인 파일인 경우가 있음 

2. 점검대상 및 판단 기준

  대상 : SOLARIS, LINUX, AIX, HP-UX 등

  판단기준

 · 양호 : 소유자가 존재하지 않는 파일 및 디렉터리가 존재하지 않는 경우

 · 취약 : 소유자가 존재하지 않는 파일 및 디렉터리가 존재하는 경우

  조치방법 : 소유자가 존재하지 않는 파일 및 디렉터리 삭제 또는, 소유자 변경

3. LINUX 초기 설정값

※ 테스트한 LINUX의 버전은 AWS로 구성된 CentOS 9 입니다.

 

확인방법

소유자 및 소유 그룹이 없는 파일 및 디렉터리가 있는지 확인해야합니다.

# 사용자 없는 파일 점검
$ find / -nouser –ls

# 그룹이 없는 파일 점검
$ find / -nogroup -ls

 

테스트를 해보겠습니다.

user2를 생성 후 userdel 명령어로 삭제해 그룹과 계정이 없는 파일들이 존재합니다.

test1의 경우 이전에 삭제 후 home 폴더는 제거했던 파일입니다.

mail spool만 존재합니다. 

# 사용자 계정이 없는 파일
[ec2-user@localhost ~]$ sudo find / -nouser -ls
find: ‘/proc/9523/task/9523/fd/6’: No such file or directory
find: ‘/proc/9523/task/9523/fdinfo/6’: No such file or directory
find: ‘/proc/9523/fd/5’: No such file or directory
find: ‘/proc/9523/fdinfo/5’: No such file or directory
  8529552      0 -rw-rw----   1 1002     mail            0 Sep 26 13:27 /var/spool/mail/test1
  8430909      0 -rw-rw----   1 1002     mail            0 Oct  4 21:15 /var/spool/mail/user2
 12855888      4 -rw-------   1 1002     1002           53 Sep 27 02:24 /var/spool/cron/test1
 21372608      0 drwx------   3 1002     1002           78 Oct  4 21:15 /home/user2
 25166466      0 drwxr-xr-x   4 1002     1002           39 Sep 23 22:40 /home/user2/.mozilla
      176      0 drwxr-xr-x   2 1002     1002            6 Apr 25  2022 /home/user2/.mozilla/extensions
  7329666      0 drwxr-xr-x   2 1002     1002            6 Apr 25  2022 /home/user2/.mozilla/plugins
 21372609      4 -rw-r--r--   1 1002     1002           18 Feb 16  2024 /home/user2/.bash_logout
 21372610      4 -rw-r--r--   1 1002     1002          141 Feb 16  2024 /home/user2/.bash_profile
 21372611      4 -rw-r--r--   1 1002     1002          492 Feb 16  2024 /home/user2/.bashrc
 
# 그룹이 없는 파일 
[ec2-user@localhost ~]$ sudo find / -nogroup -ls
find: ‘/proc/9526/task/9526/fd/6’: No such file or directory
find: ‘/proc/9526/task/9526/fdinfo/6’: No such file or directory
find: ‘/proc/9526/fd/5’: No such file or directory
find: ‘/proc/9526/fdinfo/5’: No such file or directory
  9049157      0 -rw-------   1 root     1002            0 Sep 26 14:58 /var/db/sudo/lectured/test1
 12855888      4 -rw-------   1 1002     1002           53 Sep 27 02:24 /var/spool/cron/test1
 21372608      0 drwx------   3 1002     1002           78 Oct  4 21:15 /home/user2
 25166466      0 drwxr-xr-x   4 1002     1002           39 Sep 23 22:40 /home/user2/.mozilla
      176      0 drwxr-xr-x   2 1002     1002            6 Apr 25  2022 /home/user2/.mozilla/extensions
  7329666      0 drwxr-xr-x   2 1002     1002            6 Apr 25  2022 /home/user2/.mozilla/plugins
 21372609      4 -rw-r--r--   1 1002     1002           18 Feb 16  2024 /home/user2/.bash_logout
 21372610      4 -rw-r--r--   1 1002     1002          141 Feb 16  2024 /home/user2/.bash_profile
 21372611      4 -rw-r--r--   1 1002     1002          492 Feb 16  2024 /home/user2/.bashrc

 

 

취약입니다.

 

 

4. 조치

조치를 해보겠습니다.

1) 소유자가 존재하지 않는 파일이나 디렉터리가 불필요한 경우 rm 명령으로 삭제합니다.

$ rm <file_name>
$ rm <directory_name>

 

 

저는 전부 삭제할 예정입니다.

삭제를 해보겠습니다.

# 사용자가 없는 파일 삭제
[ec2-user@localhost ~]$ sudo rm /var/spool/mail/test1
[ec2-user@localhost ~]$ sudo rm /var/spool/cron/test1
[ec2-user@localhost ~]$ sudo rm /var/spool/mail/user2
[ec2-user@localhost ~]$ sudo rm -rf /home/user2

# 그룹이 없는 파일 삭제
[ec2-user@localhost ~]$ sudo rm /var/db/sudo/lectured/test1

 

 

2) 필요한 경우 chown 명령으로 소유자 및 그룹 변경

$ chown <user_name> <file_name>

 

 

5. 결과

소유자와 그룹명이 없는 파일 및 디렉터리가 존재하지 않습니다. 양호 입니다!

# 확인
[ec2-user@localhost ~]$ sudo find / -nouser -ls
find: ‘/proc/9547/task/9547/fd/6’: No such file or directory
find: ‘/proc/9547/task/9547/fdinfo/6’: No such file or directory
find: ‘/proc/9547/fd/5’: No such file or directory
find: ‘/proc/9547/fdinfo/5’: No such file or directory

[ec2-user@localhost ~]$ sudo find / -nogroup -ls
find: ‘/proc/9557/task/9557/fd/6’: No such file or directory
find: ‘/proc/9557/task/9557/fdinfo/6’: No such file or directory
find: ‘/proc/9557/fd/5’: No such file or directory
find: ‘/proc/9557/fdinfo/5’: No such file or directory

 

 

Linux를 마스터하는 그날까지

화이팅!

 

반응형