본문 바로가기
  • 하루를 소중히, 순간에 최선을
정보보안/취약점 분석

[UNIX/Linux] 서버 취약점(계정 P/W 관리)

by cREdere 2020. 12. 21.

[UNIX/Linux] 서버 취약점(계정 관리)

 

가장 기본적인 P/W 설정과 관련된 계정 관리 방법에 대해서 알아보겠습니다.

 

(1) root 계정 이외 계정이 UID 0 금지

  - root(UID=0)과 동일한 UID를 가진 계정 존재 시 root 권한으로 시스템 접근이 가능하므로 root의 UID를 가진 계정이 존재하지 않도록 확인해야 합니다.

  - 계정 UID는 /etc/passwd에 명시되어 있으므로 cat /etc/passwd | grep ID 명령어를 활용하여 특정 계정의 UID를 확인할 수 있습니다.

 

  + UID 변경 명령어 [ root 관리자 권한으로 실행 ]

[SunOS, 리눅스, AIX] usermod-u UID 계정명

EX ) usermod -u 1005 credere 

  + 리눅스의 경우 UID는 500이상 설정, 솔라리스 및 HP-UX의 경우 100 이상으로 설정합니다.

 

[HP-UX]

EX) chuser id=1000 credere

 

 

 

 

 

 

 

(2) P/W 관련 설정

  • P/W 복잡성 및 최소길이설정
  • P/W 최대 사용기간 설정
  • P/W 최소 사용기간 설정
  • P/W 파일 보호

 

1) P/W 복잡성 및 최소길이 설정

- 영문, 숫자, 특수문자를 2종류 이상 조합하여 계정명과 상이한 최소 10자 이상의 P/W 설정 혹은 3종류 이상을 조합하여 최소 8자리 이상의 길이로 구성

( 영문 대문자(26개), 영문 소문자(26개), 숫자(10개), 특수문자(32개) )

       + 이는 Brute Force Attack이나 레인보우 테이블을 통한 패스워드 크래킹 및 P/W 추측 공격을 방지하기 위해 리눅스를 이용하는 이용자의 최소한의 예의라고 생각합니다.

 

 

 

2) P/W 최대 사용기간 설정

- P/W 유출시 최대 사용기간을 설정하지 않은 경우 일정 기간 경과 후에도 공격자는 유출된 패스워드로 접속이 가능합니다. 유출된 계정으로 악의적인 사용자의 지속적인 접근을 차단하기 위해 최대 사용기간을 설정하여 주기적으로 P/W를 변경할 수 있게 해야합니다.

 

OS별 점검 파일 위치 및 점검방법
SunOS cat /etc/default/passwd
MAXWEEKS=10 (단위 : 주)
리눅스 cat /etc/login.defs
PASS_MAX_DAYS 90 (단위 : 일)
AIX cat /etc/security/user
maxage=12 (단위 :주)
HP-UX cat /etc/default/security
PASSWORD_MAXDAYS=90 (단위 일)

 

 

 

3) P/W 최소 사용기간 설정

- P/W 최소 사용기간을 설정하지 않은 경우에 이용자가 익숙한 P/W로 지속적으로 변경하여 재사용함으로써 사용 기간 설정의 의미가 무의미해질 수 있습니다.

 

OS별 점검 파일 위치 및 점검방법
SunOS cat /etc/default/passwd
MINWEEKS=1 (단위 : 주)
리눅스 cat /etc/login.defs
PASS_MIN_DAYS (단위 : 일)
AIX cat /etc/security/user
minage=1 (단위 : 일)
HP-UX cat /etc/default/security
PASSWORD_MINDAYS=1 (단위 : 일)

 

 

 

4) P/W 파일 보호

- P/W는 무조건 암호화하여 보호하여야 합니다.

- shadow 파일을 사용 "/etc/shadow" 에 암호화된 P/W 저장

       + passwd 와 shadow의 구조 

 

 

     (1) /etc/passwd 

계정명 P/W UID GID comment 홈디렉터리 login_shell

 +보안 관련해서 주의 깊게 봐야될 것은 P/W와 로그인쉘입니다.

과거에는 두 번째 필드에 P/W를 평문으로 명시하였으나 보안상의 문제로 최근에는 X를 입력합니다.

( X의 뜻은 P/W를 사용하지 않는다는 것이 아니라, /etc/shadow 파일에 암호화된 P/W를 이용한다는 뜻입니다.)

 

 +로그인이 불필요한 계정 (일반적으로 시스템 및 어플리케이션 계정) 에 대해서는 로그인을 금지하도록 설정하여 공격자에 의한 불법적인 시스템 접근에 악용되지 않도록 해야한다. ( /sbin/nologin , /bin/false 를 필드에 입력한다.)

 

 

     (2) /etc/shadow

계정명 암호화된PW   P/W 마지막 변경일 P/W 최소 사용기간 P/W 최대 사용기간 P/W 만료 이전 경고일 수 P/W 만료 이후 비활성 일수 계정 만료일

+암호화된 P/W의 구조 

 $id$salt$암호화된 P/W

 

1) id는 적용된 일방향 해시 알고리즘의 id 입니다.

( 1: MD5 , 2: BlowFish, 5: SHA-256 6: SHA-512 )

 

2) salt ( 난수값) 은 암호화 강도를 높이기 위한 값으로 이 값 덕분에 같은 p/w를 설정하더라도 실제 암호화된 P/W 값은 서로 다르게 됩니다.

 

 

+ AIX 서버는 기본적으로 /etc/security/passwd 파일에 P/W를 암호화하여 저장

+ HP-UX Trusted Mode로 전환될 경우 P/W를 암호화하여 /tcb/files/auth 디렉터리에 계정 이니셜과 계정 이름에 따라 파일로 저장 

 

 

 

(3) Session Timeout 설정

- 계정이 일정 시간 동안 아무 이벤트 ( 시스템 호출 ) 등이 발생하지 않으면 연결을 종료하는 Session Timeout 설정 

          + TCP 연결이나 HTTP 서버 세션 타임아웃과 비슷한 이유

 

<sh, ksh, bash 사용시> 

cat /etc/profile(.profile)

TMOUT=600

export TMOUT        // export TMOUT의 의미는 해당 쉘에서 생성된 자식 쉘에도 전부 동일한 타임아웃을 설정하는 것

 

<csh 사용시>

cat /etc/csh.login       cat /etc/csh.cshrc

set autologout=10

 

 

 

 

 

댓글