가. 취약점 개요
■ 내용 : 로그인이 불필요한 계정(adm, sys, daemon 등)에 쉘 부여 여부 점검
■ 목적 : 로그인이 불필요한 계정에 쉘 설정을 제거하여, 로그인이 필요하지 않은 계정을 통한 시스템 명령어를 실행하지 못하게 하기 위함
■ 보안 위협
- 로그인이 불필요한 계정은 일반적으로 OS 설치 시 기본적으로 생성되는 계정으로 쉘이 설정되어 있을 경우, 공격자는 기본 계정들을 이용하여 시스템에 명령어를 실행 할 수 있음
■ 참고
※ 쉘(Shell) : 대화형 사용자 인터페이스로써, 운영체제(OS) 가장 외곽계층에 존재하여 사용자의 명령어를 이해하고 실행함
나. 점검방법
■ 대상 : SOLARIS, LINUX, AIX, HP-UX 등
■ 판단기준
- 양호 : 로그인이 필요하지 않은 계정에 /bin/false(/sbin/nologin) 쉘이 부여되어 있는 경우
- 취약 : 로그인이 필요하지 않은 계정에 /bin/false(/sbin/nologin) 쉘이 부여되지 않은 경우
■ 점검 명령어
OS | 점검 파일 |
SOLARIS, LINUX, HP-UX, AIX |
#cat /etc/passwd | egrep “^daemon|^bin|^sys|^adm|^listen|^nobody|^nobody4|^ noaccess|^diag|^operator|^games|^gopher” | grep –v “admin” |
시스템에 불필요한 계정을 확인한 후 /bin/false(nologin) 쉘이 부여되어 있지 않은 경우 아래의 보안설정방법에 따라 설정을 변경함 (※ 불필요한 계정은 시스템 용도에 따라 차이가 있음) |
다. 조치방법
■ 조치방법 : 로그인이 필요하지 않은 계정에 대해 /bin/false(/sbin/nologin) 쉘 부여
■ SOLARIS, LINUX, AIX, HP-UX
Step 1) vi 편집기를 이용하여 “/etc/passwd” 파일 열기
Step 2) 로그인 쉘 부분인 계정 맨 마지막에 /bin/false(/sbin/nologin) 부여 및 변경
(수정 전) daemon:x:1:1::/:/sbin/ksh
(수정 후) daemon:x:1:1::/:/bin/false 또는, daemon:x:1:1::/:/sbin/nologin
일반적으로 로그인이 불필요한 계정 (※ 계정 설명: 부록 참조) |
daemon, bin, sys, adm, listen, nobody, nobody4, noaccess, diag, listen, operator, games, gopher 등 일반적으로 UID 100 이하 60000 이상의 시스템 계정 해당 |
라. 조치시 영향
■ 일반적인 경우 영향 없음
■ 모호한 경우 “/etc/shadow” 파일에서 해당 계정에 패스워드 존재 여부로 확인