본문 바로가기

보안

보안기사 - UNIX/Linux 서버 취약점

계정 관리


root 이외의 UID가 0 금지

/etc/passwd 파일 내 UID 확인

패스워드 복잡성 설정

  1. 부적절한 패스워드 유형
    사전에 나오는 단어나 이들의 조합
    길이가 너무 짧거나 공백(NULL)인 패스워드
    키보드 자판의 일련순 (asdf, qwer, 1234)
    사용자 계정 정보에서 유추 가능한 단어 (사용자 이름, 지역, 회사, 부서명, 전화번호)

  2. 패스워드 관리 방법
    영어 대/소문자, 숫자, 특수문자 조합
    2종류 이상 조합, 최소 10자리 이상 또는 3종류 이상 조합, 최소 8자리 이상
    자주 변경

패스워드 최소 길이 설정

OS     점검 파일 위치 및 방법
SOLARIS     /etc/default/passwd 파일
    PASSLENGTH=8
LINUX     /etc/login.defs 파일
    PASS_MIN_LEN 8
AIX     /etc/security/user 파일
    minlen=8
HP-UX     /etc/default/security 파일
    MIN_PASSWORD_LENGTH=8

패스워드 최대 사용기간 설정

OS     점검 파일 위치 및 방법
SOLARIS     /etc/default/passwd 파일
    MAXWEEKS=12 (주)
LINUX     /etc/login.defs 파일
    PASS\_MAX\_DAYS 90 (일)
AIX     /etc/security/user 파일
    maxage=12 (주)
HP-UX     /etc/default/security 파일
    PASSWORD_MAXDAYS=90 (일)

패스워드 최소 사용기간 설정

OS     점검 파일 위치 및 방법
SOLARIS     /etc/default/passwd 파일
    MINWEEKS=1 (주)
LINUX     /etc/login.defs 파일
    PASS\_MIN\_DAYS 1 (일)
AIX     /etc/security/user 파일
    minage=1 (주)
HP-UX     /etc/default/security 파일
    PASSWORD_MINDAYS=1 (일)

패스워드 파일 보호

shadow 패스워드를 사용하여 '/etc/shadow' 파일에 암호화된 패스워드가 저장되도록

OS     점검 파일 위치 및 방법
SOLARIS, LINUX     1. /etc/shadow 파일 존재 확인
    2. /etc/passwd 파일 내 두번째 필드가 'x' 표시인지 확인
    root:x:0:0:root:/root:/bin/bash
AIX     기본적으로 '/etc/security/passwd' 파일에 패스워드 암호화하여 저장
HP-UX     1. /tcb 디렉터리 존재 확인
    2. /etc/passwd 파일 내 두번째 필드가 'x' 표시인지 확인

Session Timeout 설정

계정이 접속된 상태로 방치될 경우 권한 없는 사용자에게 중요 시스템이 노출되어 악의적 목적으로 사용될 수 있으므로
일정 시간 이후 어떠한 이벤트가 발생하지 않으면 연결 종료하는 session timeout 설정 필요

  • sh, ksh, bash 사용 시
    /etc/profile(.profile) 파일
      TMOUT=600
      export TMOUT

  • csh 사용 시
    /etc/csh.login 또는 /etc/csh.cshrc 파일
      set autologout=10

파일 및 디렉터리 관리


root 홈, 패스 디렉터리 권한 및 패스 설정

root 계정의 PATH 환경변수에 '.'이 포함되어 있으면 root 계정으로 접속한 관리자가 의도하지 않은 현재 디렉터리에 위치하고 있는 명령어가 실행될 수 있다.
->PATH 환경변수의 마지막으로 이동시키거나 불필요한 경우 삭제

/etc/profile과 root의 .bash_profile에서 $PATH 변수를 확인하여 경로 맨 앞 또는 중간에 '.'가 포함되어 있다면 맨 뒤로 이동 또는 삭제

파일 및 디렉터리 소유자/소유그룹 설정

소유자/소유그룹이 존재하지 않는 파일 및 디렉터리는 현재 없는 소유자/그룹의 소유였거나, 관리 소홀로 인해 생긴 파일
사용하지 않는 디렉터리나 파일일 경우 시스템 자원 낭비
중요 파일 및 디렉터리일 경우 관리가 되지 않는 문제

  • 보안설정
    1. 검색
      find . \( -nouser -o -nogroup \) -exec ls -al {} \;
    2. chown, chgrp 명령을 통해 소유자/소유그룹 변경

world writable 파일 점검

world writable 파일 : 모든 사용자(others)에게 쓰기 권한이 부여되어 있는 파일

모든 사용자가 접근 및 수정할 수 있는 권한으로 설정된 파일이 존재할 경우 일반 사용자의 실수 또는 악의적으로 주요 파일 정보를 변경할 수 있기 때문에 시스템 장애나 추가적 공격에 활용될 수 있는 문제점

  • 보안설정
    1. 검색
      find / -perm -2 -exec ls -al {}\;
    2. others에 쓰기 권한 제거하거나 해당 파일 삭제
      chmod o-w 파일명
      rm 파일명

주요 파일 소유자 및 권한 설정

다음 파일은 모두 root 소유로 설정

파일명 권한 (이하)
/etc/passwd 644
/etc/shadow 400
/etc/hosts 644
/etc/(x)inetd.conf 600
/etc/syslog.conf 644
/etc/services 644