목차

안녕하세요 IT몽상가입니다.
리눅스 보안에 두번째 중 분류인 파일 및 디렉토리 관리에 대해서 알아보고 있는데요.
이번에 확인해보고자 하는 항목은 “파일 및 디렉터리 소유자 설정” 항목인데요.
리눅스에서 파일 및 디렉토리 관리는 파일에 소유자와 그룹을 지정하여 관리하고 있으며, 사용자에게 권한을 부여하는 개념과는 조금 다릅니다.
파일에 직접 소유자와 그룹을 지정하여 해당 소유자와 그룹만 사용할 수 있게 되어 있는데요.
그렇기에 모든 파일에는 소유자와 그룹이 존재합니다.
하지만 파일은 남아 있으나, 소유자와 그룹이 삭제되는 경우 오류가 발생 되는데요.
이러한 오류에 대한 점검입니다.
해당 부분이 문제가 되는 것은 소유자와 그룹이 사라진 파일은 계정을 생성하여 해당 UID와 GID를 획득하는 경우 해당 파일에 모든 새롭게 생선 된 사용자가 소유할 수 있기에 문제가 될수 있는데요.
조금 더 자세히 알아보도록 하겠습니다.
– 파일 및 디렉터리 소유자 설정 내용 및 목적
소유자 불분명한 파일이나 디렉터리가 존재하는지 여부를 점검하는데요.
소유자가 존재하지 않는 파일 및 디렉토리를 삭제 및 관리하여 임의의 사용자가 해당파일을 열람, 수정하는 행위를 사전에 차단하기 위함입니다.
소유자 불분명한 파일이나 디렉터리가 생성되는 이유는 생성한 소유자가 삭제 되는 경우 소유자를 찾지 못하여 UID값이 노출되게 되어 있는데요.
UID는 운영체제가 인지하는 사용자 이름으로 우리가 root라는 계정으로 로그인하는 경우 운영체제는 0이라는 UID로 인식하게 되어 있습니다.
그렇기에 파일을 생성하였던 사용자 계정이 삭제 되는 경우 사용자 이름을 찾지 못하고 UID가 노출되는 것입니다.
– 파일 및 디렉터리 소유자 설정 보안 위협
소유자가 존재하지 않는 파일의 UID와 동일한 값으로 특정 계정의 UID값을 변경하면 해당 파일의 소유자가 되어 모든 작업이 가능한데요.
만약에 소유자가 존재하지 않은 파일에 중요 내용이 작성되어 있거나 시스템 파일인 경우 임의의 사용자가 노출되어 있는 UID를 획득하는 경우 파일에 권한도 자동으로 임의의 사용자가 가질 수 있어 이로 인해 파일에 내용이 임의의 사용자가 획득할 수 있게 되어 버립니다.
이런 경우 정말 중요 내용이 포함되어 있다면 해당 내용이 유출 될 수도 있는데요.
그렇기에 소유자가 존재하지 않은 파일 및 디렉토리는 주기적으로 확인하여 필요 없는 경우 삭제하거나 아니면 소유자를 사용하는 계정으로 변경하여 관리하여야 합니다.
– 파일 및 디렉터리 소유자 설정 방법 및 점검 방법
파일의 소유자를 설정하는 것은 간단하게 할 수 있는데요.
하지만 파일이 다수가 존재하는 경우 공수가 많이 들수 있습니다.
그렇다고 삭제하기에는 시스템 영향도가 문제가 될 수 있는데요.
그래서 해당 항목은 취약점 조치 과정이 쉽지는 않습니다.
- SOLARIS, LINUX, AIX, HP-UX
* 설정 방법
설정 방법은 파일을 삭제하거나 또는 소유자를 변경해주어야 하는데요.
삭제하는 경우는 간단하게 rm 명령어를 통해 삭제하면 됩니다.
소유자를 설정하는 방법은 chown를 이용하여 소유자를 변경하고, chgrp를 이용하여 그룹을 변경하면 됩니다.
* 점검 방법
점검 방법은 소유자 및 그룹이 없는 파일을 검색하면 되는데요.
find / -nouser –o –nogroup –xdev –ls 2 > /dev/null
해당 명령어를 이용하여 검색하는데요
파일이 많이 존재하는 경우 서버에 부화를 주는 경우도 간혹 있는데요.
사실 서버에 부화가 간다기 보다는 스크립트가 실행되는 중에 멈추는 문제가 발생될 수 있습니다.
그렇기에 스크립트가 돌아가다가 멈추는 경우는 이미 확인된 파일은 먼저 확인하여 조치하고 추후 다시 실행시켜서 확인하여야 합니다.
– 파일 및 디렉터리 소유자 설정 확인 방법 및 점검 테스트
실제 서버에서 확인해 보겠는데요.
우선 테스트 환경은 제가 작성하였던 VMware 다운로드 및 설치 방법(무료 설치)와 CentOS Linux Containers 설치하기!를 참조하시면 됩니다.
테스트 환경은 CentOS 7 버전에서 진행 됩니다.

tmp 폴더에 있는 파일인데요.
이렇게 리눅스의 경우 권한을 표시는 하는 “drwx——” 다음에 root root 이렇게 계정이 나타나는데요.
이때 확인되는 첫번째 root는 소유자 계정을 표시하는 것입니다.
그리고 다음에 노출되는 root는 그룹을 표시하고 있는데요.
소유자 및 그룹이 존재하지 않은 파일에 해당 부분이 UID, GID값이 노출됩니다.
UID, GID 값이 노출된다는 이야기는 계정명이 아니라 숫자가 노출됩니다.
기존에 해당 파일의 소유자가 가지고 있던 UID, GID가 노출되기에 숫자로 표시되는데요.
간단하게 이야기 드리자면 숫자로 소유자와 그룹이 표시되는 파일은 소유자 및 그룹이 삭제된 파일이라고 보면 됩니다.
제가 테스트 하고 있는 서버는 그러한 파일이 존재하지 않기에 나오지 않습니다.
오래된 서버 일수록 소유자 및 그룹이 존재하지 않은 파일이 발생될 가능성이 높습니다.
그렇게 오래된 서버 일수록 자주 확인하여 관리하여야 할 거 같네요.
– 마무리
“파일 및 디렉터리 소유자 설정” 항목에 대해서 알아봤는데요.
해당 항목은 많이 서버에서 확인할 수 있는 항목인데요.
솔류션을 설치하였다가 삭제하거나 아니면 계정을 생성하였다가 삭제하는 경우 다수의 파일이 생성되는 경우가 많이 있습니다.
심지어 스크립트가 돌아가다가 너무 많이 파일이 존재하여 멈추는 경우도 있는데요.
해당 항목이 그렇다고 많이 위협이 존재하는 항목은 아니긴 합니다.
그렇다고 그대로 두기에는 문제가 발생할 가능성이 있는데요.
그렇기에 주기적인 검토를 통하여 관리하여야 합니다.
또한, 다수의 파일이 생성되는 경우 해당 파일을 모두 확인하여 삭제할것인지 아니면 새로 권한을 부여할 것인지를 판단하여 하기에 시간이 상대적으로 오래 소유 됩니다.
그래서 자주 확인하여 쌓이기전에 조치하는 것이 좋을거 같네요.
