클라우드

[ 클라우드 ] CSAP -CCE 취약점 가이드--( XE-06. 로그인이 불필요한 계정 shell 제한 )

JJANG-JOON 2023. 10. 13. 10:24
반응형

 

진단항목

 

 XE-06. 로그인이 불필요한 계정 shell 제한 

 

 

 

 

 

 

 

 

 

취약도 

 

 

 

 

 

 

 

 

 

 

 

항목설명 

 

접근이 거의 필요하지 않은 사용자들에게는 쉘을 제한함으로써 비인가적인 시스템 사용을 방지하여 침해의 가능성을 줄일 수 있다. 

 

 

 

 

 

 

 

 

 

 

 

진단기준

 

양호 

시스템 계정 중 로그인이 불필요한 계정에 대해 shell이 제한되어 있는 경우

 

취약 

시스템 계정 중 로그인이 불필요한 계정에 대해 shell이 제한되어 있지 않은 경우

 

 

 

 

 

 

 

 

 

 

 

 

진단방법

 

<XenServer>
▪ /etc/passwd 파일의 계정 별 shell 확인
 # cat /etc/passwd

(예시) nobody:x:65534:65534:nobody:/nonexistent:/bin/sh


※ 실행 쉘이 불필요한 계정 및 로그인이 필요하지 않은 계정에 nologin shell 부여
(dea daemon, bin, sys, listen, adm, nobody, nobody4, noaccess, diag, operator, games, gopher등 일반적으로 UID100 이하 60000 이상의 시스템 계정들)

 

/etc/passwd 파일은 리눅스 시스템에서 사용자 계정 정보를 저장하는 파일이다. 각 행은 한 명의 사용자 계정에 대한 정보를 나타내며, 7개의 필드로 구성된다.

예시

nobody:x:65534:65534:nobody:/nonexistent:/bin/sh

필드 설명

  1. 계정 이름: 사용자 계정의 이름
  2. 비밀번호: 사용자 계정의 암호입니다. 보안을 위해 암호는 암호화되어 저장된다.
  3. 사용자 ID(UID): 사용자 계정의 고유 식별자
  4. 그룹 ID(GID): 사용자 계정이 속한 그룹의 고유 식별자
  5. 로그인 이름: 사용자 계정이 로그인할 때 사용하는 이름
  6. 홈 디렉토리: 사용자 계정의 홈 디렉토리
  7. 쉘: 사용자가 로그인할 때 실행되는 기본 쉘

해석

위의 예시에서 nobody는 계정 이름, x는 암호, 65534는 UID, 65534는 GID, nobody는 로그인 이름, /nonexistent는 홈 디렉토리, /bin/sh는 쉘을 의미한다.

따라서, nobody 계정은 UID 65534, GID 65534를 가진 계정으로, 로그인할 때 /bin/sh 쉘을 사용한다. /nonexistent는 홈 디렉토리가 존재하지 않음을 의미한다.

 

추가 설명

  • x로 표시된 암호는 암호화되어 저장되고 암호를 확인하려면 /etc/shadow 파일을 확인해야 한다.
  • UID는 사용자 계정의 고유 식별자이다. UID가 동일하면 동일한 권한을 가진 사용자 계정이다.
  • GID는 사용자 계정이 속한 그룹의 고유 식별자이다. GID가 동일하면 동일한 그룹에 속한 사용자 계정
  • 로그인 이름은 사용자 계정이 로그인할 때 사용하는 이름
  • 홈 디렉토리는 사용자 계정의 개인 디렉토리
  • 쉘은 사용자가 로그인할 때 실행되는 기본 쉘

참고

  • /etc/passwd 파일의 내용은 cat /etc/passwd 명령어로 확인할 수 있다.
  • chsh 명령어를 사용하여 사용자의 쉘을 변경할 수 있다.

 

 

 

 

 

 

 

 

 

 

 

 

조치방법


<XenServer>
▪ 로그인이 필요 없는 계정의 shell 설정 변경
1) # vi /etc/passwd를 실행하여 아래와 같은 설정으로 변경 (단위:주)
예) daemon 계정이 로그인 하지 못하도록 설정

 # vi /etc/passed
 daemon:x:1:1::/:/sbin/ksh (수정 전) daemon:x:1:1::/:/bin/false (수정 후)

 

->/bin/false는 아무 것도 하지 않는 쉘

 

# 현재 쉘 확인

$ echo $SHELL

/bin/bash

 

# 쉘 변경

$ chsh -s /bin/false

Changing shell for user. Password: Shell changed.

 

# 변경된 쉘 확인

$ echo $SHELL

/bin/false

 

# 로그인 시도

$ su

su: Authentication failure

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형