[정보 보안] 이론 - 리눅스 파일 시스템(File System) 응용

Cookie·2025년 2월 21일

1) 파일 시스템 개요

물리적 저장장치에 파일을 생성, 저장, 관리하기 위한 논리적인 자료구조

물리적인 저장장치는 논리적인 파티션(partition)으로 나누어지며, 파티션 별로 고유한 파일 시스템을 생성함

부트 블록(Boot Block)

  • 운영체제를 부팅하거나 초기화하기 위한 부트스트랩 코드를 담고 있음

슈퍼 블록(Super Block)

  • 파일 시스템을 관리하기 위한 정보를 담고 있음

아이노드 리스트(inode list)

  • Data Block
    : 실제 파일의 내용이 저장되는 블록(고정 크기 블록들로 이루어져있음)




2) 파일시스템과 링크(link) 파일

링크는 기존 파일에 대한 또 다른 접근 포인트를 만들어주는 기능
하드링크(Hard Link)와 심볼릭 링크(Symoblic Link)로 구분함

📢 하드 링크(Hard Link)

  • 기존 파일과 동일한 inode number를 가지는 파일을 생성하여 접근
  • 동일 파일시스템에서만 가능하며 디렉터리는 하드 링크가 불가능
  • inode를 참조하는 파일이 있으면 삭제할수 없음

- 실습



📢 심볼릭 링크(Symbolic Link)

  • 원본 파일에 대한 경로를 파일내용에 담고 있음
  • 파일시스템에 제한이 없고, 디렉터리도 가능
  • 원본 파일이 삭제되면 심볼릭 링크는 끊어지게

- 실습




(3) 디렉터리 관리

1) 파일의 종류

1. 일반(정규) 파일

  • 텍스트, 실행 파일 등을 바이너리나 텍스트형태로 저장하고있는 일반파일
  • 표준 파일 입출력 시스템 호출을 통해 참조

2. 디렉터리

  • 디렉터리에 포함된 파일명과 inode number 정보를 목록으로 가지고 있는 파일
  • 명시적인 시스템 호출을 통해 참조

3. 특수파일

  • 기능에 따라 다양한 형태로 존재, 표준 입출력 시스템 호출을 통해 참조됨
  • 프로세스간 통신(IPC : Inter-Process Communication) 목적의 특수 파일 - 파이프(Pipe), 소켓(Socket)
  • 디스크, 프린터, 터미널 등의 입출력 장치를 사용하기 위한 장치 파일
    • 장치 파일 (버퍼링)블록 장치 파일 : 블록 단위로 입출력 (비 버퍼링)문자 장치 파일 : 문자 단위로 입출력



2) 디렉터리 내용 출력

: 파일 종류 및 권한
: 하드링크 개수
: 소유자
: 소유 그룹
: 파일 크기
: 최종 변경(수정) 일시

: 파일 명

  • 파일 종류
    • - : 일반(정규) 파일
    • d : 디렉터리
    • b : 블록 장치 파일
    • c : 문자 장치 파일
    • I : 심볼릭 링크 파일
    • p : 이름있는 파이프
    • s : 유닉스 도메인 소켓

📢 접근권한

유형의미
소유자(User)파일 소유자의 접근 권한
소유그룹(Group)파일 소유 그룹의 접근 권한
기타사용자(Others)소유자와 소유그룹에 속하지 않는 모든 사용자의 접근 권한
  • 접근권한 종류



3) 디렉터리 간 이동

  • 절대 경로명 : 최상의 루트 디렉터리(/) 기준 경로 표시
  • 상대 경로명 : 현재 디렉터리 기준 경로 표시

4) 디렉터리 생성


5) 디렉터리 삭제




(4) 파일 권한 관리

1) 파일 접근권한 변경(chmod)

  • 대상 : u, g, o, a(all)
  • 연산자 : + (추가), - (제거), = (설정)

📢 실습



2) 파일 소유자 OR 소유그룹 변경(chown/chgrp)

  • 슈퍼유저(root)만이 실행가능한 명령어
  • 일반 사용자 계정으로는 허용하지 않는 명령어

📢 실습



3) 접근권한 마스크 설정(umask)

파일 또는 디렉터리 생성 시 접근권한을 설정하기 위해 사용되는 값

  • 제거할 접근권한 정보가 설정되어 있음
  • 권장 설정 : 로그인하는 모든 사용자에게 적용되는 환경설정파일에 022(0022)이상으로 umask 값을 설

  • 예시
    • umask 333 은 쓰기(2)와 실행(1) 권한을 제거함



4) 파일 검색(find)

시스템 내의 파일 중, 사용자가 원하는 파일을 찾을 때 사용
특정 명령을 실행하게 할 수 도있음

📢 path

최상위 루트 디렉터리(/) 부터 시작하는 절대 경로너 현재 디렉터리(.)부터 시작하는 상대 경로로 지정 할 수 있음

EX) e.g find / 검색_조건(expression) : 최상위 루트 디렉터리 이하 파일 검색

📢 action

  1. AND 연산
    • [-and 또는 -a] 기호 사용
  2. OR 연산
    • [-or 또는 -o] 기호 사용
  3. NOT 연산
    • [-not 또는 -n] 기호 사용




⭐소유자 및 소유그룹이 존재하지 않는 취약점

발생사유

  • 현재 삭제된 사용자 계정 또는 그룹의 소유
  • 관리 소홀로 인해 생성된 파일

보안위협

  • 해당 파일 및 디렉터리의 UID 또는 GID 를 특정 사용자 계정의 UID나 특정 그룹의 GID를 악의적으로 변경 할 수 있음
  • 이로인해 소유자 또는 소유그룹의 권한으로 해당 파일에 접근할 수 있는 위협이 발생

조치 방법

  • 불필요한 경우 삭제
  • 필요한 경우 소유자나 소유그룹을 변경




⭐World writable 파일 취약점

개요

  • 파일의 소유자나 그룹이 아닌 Others에 대해 쓰기가 허용된 파일을 뜻함

보안 위협

  • 중요 파일이 world writable 설정이 되어있으면 비인가자에 의해 파일이 악의적으로 변경되는 위협이 발생

조치 방법

  • World writable 파일이 불필요한 경우 삭제
  • 필요한 파일인 경우 Others에 쓰기 권한 제거
profile
지식을 쌓기 위한 기록 저장소

0개의 댓글