이번 글에서는 "/etc/passwd 파일의 소유자 및 권한 설정" 점검 항목에 대해 말씀드리겠습니다. passwd 파일이 중요하다는 내용은 "U-04) 패스워드 파일 보호"에서 충분히 설명드렸었는데요. passwd 파일은 리눅스의 계정 장부라고 할 수 있는 파일이기 때문에, 비인가자가 passwd 파일을 수정할 수 없도록 보호되어야한다고 했죠. 그래서 이번 항목은 해당 파일의 소유자와 권한이 정상적으로 설정되어 있는지 점검하는 것이 요지라고 할 수 있겠습니다.
일반적으로 리눅스의 /etc 디렉토리에는 시스템을 운영하는데 필요한 중요한 설정 파일들이 모여있기 때문에 취약점을 점검할 때 가장 많이 보실텐데요. 이후 글에서 말씀드릴 shadow나 hosts 파일도 이번에 설명드리는 내용과 같은 맥락으로 점검하신다고 생각하시면 될 것 같습니다.
passwd 파일에는 사용자 계정의 UID나 GID, 기본 쉘을 설정할 수 있는데요. 만약 이 파일을 root 이외의 계정이 수정할 수 있다면 일반 계정임에도 불구하고 권한을 root로 변경하는 것이 가능하게 됩니다. 그렇기 때문에 일단 passwd 파일의 소유자는 비인가자의 접근이 불가능하도록 root로 되어있어야겠죠.
그리고 소위 퍼미션(Permission)이라고 하는 리눅스의 권한 체계는 "U-45) root 계정 su 제한" 항목에서 자세히 설명을 드렸었는데요. 그런데 "ls -l" 명령어를 통해 passwd 파일의 권한을 확인할 때 "-rw-r--r--"라고 나오는 부분이 644와 동일하다는 것에 대해서는 설명하지 않아서 이 부분만 말씀드리겠습니다.
일반적으로 퍼미션에서는 파일 유무를 나타내는 맨 앞자리를 제외하고, 3자리씩 묶어서 각각 소유자(Owner), 그룹(Group), 다른 사용자(Other)의 권한을 명시하는데요. 여기서 r이 4, w가 2, x가 1로 계산하여, rwx는 7, rw-는 6, r-x는 5와 같이 계산합니다. 그래서 /etc/passwd 파일을 root만 읽기와 쓰기가 가능하고 그룹과 다른 사용자는 읽기만 가능하도록 644로 설정해야하는 거죠.
root@kali:~# ls -l /etc/passwd | awk '{print $1 $3}'
-rw-r--r--root
이번 항목의 점검 방법은 "ls -l" 명령어로 /etc/passwd의 자세한 정보를 출력하고, awk 명령어를 통해 공백을 기준으로 나눠진 첫 번째 필드와 세 번째 필드를 출력하도록 했습니다. 그러면 권한과 소유자가 출력되는데요. 이와 다르게 결과를 "-rw-r--r--root"로 정의된 문자열과 비교하여 양호 및 취약을 판단하거나, 권한 부분만 644와 같이 숫자로 변환하여 확인하는 등 다양하게 점검할 수 있습니다.
만약 점검 결과가 취약하다면 "chmod 644 /etc/passwd"로 파일의 권한을 변경하거나 "chown root /etc/passwd"와 같이 소유자를 root로 변경해주면 되겠죠. 여기까지 /etc/passwd 파일의 소유자 및 권한 설정에 대해 말씀드렸고 이번 글은 여기서 마치겠습니다. 다음에는 shaodw 파일의 소유자와 권한 설정에 대해 알아보도록 하죠. 감사합니다.
'취약점 점검 > 리눅스 서버' 카테고리의 다른 글
U-06) 파일 및 디렉터리 소유자 설정 (0) | 2022.11.27 |
---|---|
U-05) root 홈, 패스 디렉터리 권한 및 패스 설정 (0) | 2022.08.12 |
U-54) Session Timeout 설정 (0) | 2022.08.07 |
U-53) 사용자 shell 점검 (0) | 2022.07.30 |
U-52) 동일한 UID 금지 (0) | 2022.07.24 |
댓글