본문 바로가기
정보보안/시스템보안

유닉스/리눅스 보안 파일 보안

by 피갓자 2025. 1. 22.

유닉스리눅스 보안 파일 보안
유닉스리눅스 보안 파일 보안

파일 시스템 종류

루트 파일 시스템

  • 하드디스크 상에서 적어도 하나의 파일 시스템 존재
  • 시스템 프로그램과 디렉터리들이 포함되어 있음

일반 파일

  • 수행할 수 있는 프로그램 파일이나 원시 프로그램 파일, 텍스트 파일, 데이터 파일 등 컴퓨터에 의해 처리될 수 있는 파일들이 저장되어 있음

디렉터리 파일

  • 계층 구조로 구성됨
  • 다른 파일과 디렉터리들에 관한 정보를 저장하는 논리적인 단위
  • 파일명인 문자열과 inode 번호를 연결하는 부분

특수 파일

  • 장치에 속하는 파일
  • 주변 장치들이 컴퓨터에 연결되기 위해서 하나 이상의 특수 파일을 가지고 있어야 함

접근권한 마스크(umask)

umsk 값이 안전하지 않은 권한으로 설정되면 허가되지 않은 사용자에게까지 파일이나 프로세스에 접근이 허락되어 보안상 큰 위협 요소가 될 수 있음. 시스템의 기본값으로 umask는 시스템 환경 파일인 /etc/profile 파일에 022로 설정되어 있음. 보안을 강화하기 위하여 시스템 환경 파일(/tec/profile)과 사용자별 홈 디렉터리 내 환경 파일($HOME/.profile)에 umask 값을 027 또는 077로 변경하는 것을 권장

일반적으로 파일을 생성할 때는 666에서 umask로 지정한 값을 빼고 디렉터리의 경우 777에서 umask로 지정한 값을 빼게 됨

권한 상승(SetUID, SetGID)

SUID, SGID는 실행 파일이 슈퍼 유저(root)나 다른 상위 사용자의 권한으로 수행될 수 있도록 규정한 특별한 파일 권한 설정 비트임. 상위 권한으로 실행되는 특징 때문에 시스템 해킹의 주요 수단으로 악용되며 프로그램 파일에 버그가 존재할 때 불법 권한 획득에 이용될 수 있는 심각한 보안 위협이 될 수 있음. 일반 사용자가 SUID, SGID 설정을 통해 특정 슈퍼 유저의 권한을 위임받아 특정 명령을 실행시킬 수 있음

  • setuid : 실행 파일에 사용됨(예 : /etc/passwd)
  • setgid : 같은 project에 실행 권한을 주기 위해서 사용됨(예 : sys)

디렉터리 접근권한(sticky-bit)

디렉터리에 인가된 사용자만 쓰기(Write) 가능하게 하도록 디렉터리 자체에 설정(예 : /var/tmp - 모든 사용자가 사용 가능하지만, 삭제는 파일의 소유자만 가능함(root는 예외)) - 파일 666 / 디렉터리 777

특수 권한 파일 설정

구분, 특수 권한 설정, 특수 권한 파일 검색, 특수 권한 파일 예시

  • setuid(4), chmod 4755 setuid_program, #find / -perm 4000 -print, /usr/bin/passwd와 같은 프로그램
  • setgid(2), chmod 2755 setgid_program, #find / -perm 2000 -print, /usr/bin/sudo와 같은 파일
  • sticky-bit(1), chmod 1777 sticky-bit_directory, #find / -perm 1000 -print, /tmp와 같은 공용 디렉터리

※ find / -perm 7000 -print : suid, sgid, sticky-bit가 모두 설정된 파일 검색

※ find / -perm 6000 -print : suid, sgid가 설정된 파일 검색