linux-system-files
리눅스 시스템의 /usr/bin/ 디렉터리를 탐색하여 시스템 파일의 권한 정보와 메타데이터를 조회합니다. md5 옵션을 활성화하면 각 파일의 MD5 해시값도 함께 수집합니다. 포렌식 분석 시 시스템 바이너리의 변조 여부를 점검하는 데 활용할 수 있습니다.
명령어 속성
| 항목 | 설명 |
|---|---|
| 명령어 유형 | 드라이버 쿼리 |
| 필요 권한 | 관리자 |
| 라이선스 사용량 | 집계함 |
| 병렬 실행 | 미지원 |
| 분산 실행 | 수집 노드에서 실행 (mapper) |
문법
옵션
md5=BOOL- 파일의 MD5 해시값 수집 여부 (기본값:
f)
t: 각 파일의 MD5 해시값을 계산하여md5필드에 할당합니다.f: MD5 해시값을 수집하지 않습니다.
출력 필드
| 필드 | 타입 | 설명 |
|---|---|---|
file_path | 문자열 | 파일의 절대 경로 |
file_name | 문자열 | 파일 이름 |
file_type | 문자열 | 파일 유형. file: 일반 파일, directory: 디렉터리 |
permissions | 문자열 | POSIX 파일 권한 문자열 (예: rwxr-xr-x). 권한을 읽을 수 없으면 null |
file_size | 64비트 정수 | 파일 크기 (바이트) |
file_ctime | 날짜 | 파일 생성 시각 |
file_mtime | 날짜 | 파일 최종 수정 시각 |
file_atime | 날짜 | 파일 최종 접근 시각 |
md5 | 문자열 | 파일의 MD5 해시값. md5=t 옵션을 지정한 경우에만 할당됩니다. 해시 계산에 실패하면 null을 할당합니다. |
owner_read | 불리언 | 소유자 읽기 권한 여부 |
owner_write | 불리언 | 소유자 쓰기 권한 여부 |
owner_execute | 불리언 | 소유자 실행 권한 여부 |
group_read | 불리언 | 그룹 읽기 권한 여부 |
group_write | 불리언 | 그룹 쓰기 권한 여부 |
group_execute | 불리언 | 그룹 실행 권한 여부 |
others_read | 불리언 | 기타 읽기 권한 여부 |
others_write | 불리언 | 기타 쓰기 권한 여부 |
others_execute | 불리언 | 기타 실행 권한 여부 |
오류 코드
파싱 오류
| 오류 코드 | 메시지 | 설명 |
|---|---|---|
95040 | no-read-permission | 관리자 권한 없이 실행한 경우 |
런타임 오류
해당 사항 없음
설명
linux-system-files 명령어는 /usr/bin/ 디렉터리를 재귀적으로 탐색하여 각 파일의 메타데이터와 POSIX 파일 권한 정보를 수집합니다. 심볼릭 링크를 따라가지 않고(NOFOLLOW_LINKS) 링크 자체의 속성을 읽습니다.
md5=t 옵션을 지정하면 각 파일의 MD5 해시값을 계산하여 md5 필드에 할당합니다. 파일을 읽을 수 없는 등의 이유로 해시 계산에 실패하면 md5 필드에 null을 할당합니다. MD5 해시 계산은 파일 전체를 읽어야 하므로 파일 수가 많거나 크기가 큰 경우 실행 시간이 길어질 수 있습니다.
파일 방문에 실패한 경우(권한 부족 등) 해당 파일을 건너뛰고 탐색을 계속합니다.
이 명령어는 관리자 권한이 필요하며, 권한이 없으면 파싱 단계에서 오류가 발생합니다.
사용 예
-
시스템 파일 목록 조회
linux-system-files/usr/bin/디렉터리의 모든 파일과 권한 정보를 조회합니다. -
MD5 해시값을 포함하여 시스템 파일 조회
linux-system-files md5=t/usr/bin/디렉터리의 모든 파일에 대해 MD5 해시값을 포함한 메타데이터를 조회합니다. -
기타 사용자에게 쓰기 권한이 부여된 파일 탐지
linux-system-files | search others_write == true시스템 파일 중 기타 사용자에게 쓰기 권한이 부여된 파일을 필터링합니다. 시스템 바이너리에 대한 과도한 권한은 보안 위험 요소가 될 수 있습니다.
호환성
linux-system-files 명령어는 소나 4.0 이전 버전부터 제공되었습니다.