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

[UNIX] U-15 world writable 파일 점검

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

U-15 world writable 파일 점검

항목중요도 : 상

1. 취약점 개요

▶ 점검내용 : 불필요한 world writable 파일 존재 여부 점검

 점검목적 :  world writable 파일을 이용한 시스템 접근 및 악의적인 코드 실행을 방지하기 위함

 보안위협

 · 시스템 파일과 같은 중요 파일에 world writable 설정이 될 경우, 일반사용자 및 비인가된 사용자가 해당 파일을 임의로 수정, 삭제가 가능함 

 참고

※ world writable 파일: 파일의 내용을 소유자나 그룹 외 모든 사용자에 대해 쓰기가 허용된 파일

(예 : rwxrwxrwx root root <파일명>)

2. 점검대상 및 판단 기준

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

  판단기준

 · 양호 : 시스템 중요 파일에 world writable 파일이 존재하지 않거나, 존재 시 설정 이유를 확인하고 있는 경우

 · 취약 : 시스템 중요 파일에 world writable 파일이 존재하나 해당 설정 이유를 확인하고 있지 않는 경우

  조치방법 : world writable 파일 존재 여부를 확인하고 불필요한 경우 제거

3. LINUX 초기 설정값

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

 

확인방법

가이드북에 나온 방법입니다.

이방법으로 확인하시면 정말 어마무시하게 많은 파일을 볼수 있습니다.

$ find / -type f -perm -2 -exec ls -l {} \;

 

다른방법으로 확인해보겠습니다.

[ec2-user@localhost ~]$ cd /
[ec2-user@localhost /]$ ls
afs  boot  dev  home  lib64  mnt  proc  run   srv  tmp  var
bin  data  etc  lib   media  opt  root  sbin  sys  usr

 

이 파일 중 중요하다고 추측되는 파일 위주로 우선 점검해주면됩니다. 

 

  • /boot: 커널 및 부트로더 관련 파일이 위치합니다. 시스템 부팅에 필요합니다.
  • /etc: 시스템 설정 파일이 저장되는 디렉터리입니다. 중요한 구성 파일들이 여기에 있습니다.
  • /bin: 필수 명령어 실행 파일들이 포함되어 있습니다. 시스템 작동에 필요합니다.
  • /sbin: 시스템 관리 명령어 실행 파일들이 위치합니다. 주로 관리자 권한이 필요합니다.
  • /usr: 사용자 프로그램과 관련된 파일들이 저장됩니다. 추가 소프트웨어와 라이브러리가 포함됩니다.
  • /var: 로그 파일, 캐시 및 가변 데이터가 저장되는 디렉터리입니다.
  • /tmp: 임시파일이 저장되는 디렉터리 입니다.

 이런식으로 검색해주면됩니다.

[ec2-user@localhost ~]$ sudo find /boot -type f -perm -2 -exec ls -l {} \;
sudo find /etc -type f -perm -2 -exec ls -l {} \;
sudo find /bin -type f -perm -2 -exec ls -l {} \;
sudo find /sbin -type f -perm -2 -exec ls -l {} \;
sudo find /usr -type f -perm -2 -exec ls -l {} \;
sudo find /var -type f -perm -2 -exec ls -l {} \;
sudo find /tmp -type f -perm -2 -exec ls -l {} \;

# 결과값
-rwxrwxrwx. 1 ec2-user ec2-user 0 Oct 21 22:11 /tmp/testfile/file1

이 취약한 파일은 제가 임의로 만든 파일입니다. 이렇게 777로 되어있어 취약입니다.

 

 

 

4. 조치

조치를 해보겠습니다.

# 1) 일반 사용자 쓰기 권한 제거 방법
$ chmod o-w <file_name>

# 2) 파일 삭제 방법
$ rm -rf <world-writable 파일명>

 

권한을 변경해보겠습니다.

 

[ec2-user@localhost ~]$ chmod o-w /tmp/testfile/file1

 

 

5. 결과

이렇게 변경이 되었습니다.

[ec2-user@localhost ~]$ ll
total 0
-rwxrwxr-x. 1 ec2-user ec2-user 0 Oct 21 22:11 file1

 

권한이 777 -> 775 로 변경되었습니다.

 

 

Linux를 마스터하는 그날까지

화이팅!

 

반응형