정보보안 - 유닉스 서버 취약점

유닉스 서버 취약점 - 계정 관리

  • 계정관리
    • 패스워드 복잡성 설정
      • 영문, 숫자, 특수문자가 혼합된 8자리 이상 패스워드가 설정되어야 함
      • 주의사항
        • 사전에 등록된 정보
        • Null 패스워드
        • 연속된 캐릭터 조합
        • 계정에서 유추 가능
    • OS 별 점검 파일 위치 및 점검 방법
      • SunOS, linux : /etc/shadow
        • shadow 파일의 존재 확인
        • /etc/passwd 파일의 두 번째 필드 ‘x’ 값 확인
          • pwconv : shadow 패스워드 적용
          • pwunconv : 일반 패스워드 적용
      • HP-UX : /etc/shadow
        • /tcb 디렉터리 존재 확인
          • trusted mode 일 경우 /tcb/files/auth 디렉터리 내 계정이니셜, 이름에 따라서 파일 저장관리, /etc/shadow 는 접근불가
          • trusted mode 인지 확인 (PW 암호화 저장)
            • trusted mode / untrusted mode
            • trusted mode 로 전환 : #/etc/tsconvert
            • untrusted mode 로 전환 : #/etc/tsconvert -r
        • /etc/passwd 파일의 두 번째 필드 ‘x’ 값 확인
      • AIX : /etc/security/passwd
    • 패스워드 파일 보호
      • 패스워드를 암호화하여 저장해야 함. /etc/shadow
    • UID 확인
      • Root 계정과 동일한 UID (0) 금지
      • 사용자 간 UID 중복 건이 있는지 검사 (감사 추적 어려움)
    • OS 별 점검 파일 위치 및 점검 방법
      • SunOS, linux, AIX, HP-UX
        • #cat /etc/passwd
        • root:x:0:0:root:/root:/bin/bash
      • SunOS, linux, HP-UX
        • usermod 명령으로 수정
          • UID 0인 일반 계정의 UID 수정
            • SunOS, HP-UX : 100 이상
            • linux : 500 이상
          • usermod -u 100 test
      • AIX
        • chuser 명령으로 수정
          • chuser id=1001 test
    • 패스워드 최소 길이 설정
      • 패스워드 최소 길이가 8자 이상으로 설정되어야 함
    • OS 별 점검 파일 위치 및 점검 방법
      • SunOS
        • #cat /etc/default/passwd
        • PASSLENGTH=8
      • Linux
        • #cat /etc/login.defs
        • PASS_MIN_LEN 8
      • AIX
        • #cat /etc/security/user
        • minlen=8
      • HP-UX
        • #cat /etc/default/security
        • MIN_PASSWORD_LENGTH=8
    • 패스워드 최대 사용기간 설정
      • 패스워드 최대 사용기간이 90일 이하로 설정되어야 함
    • OS 별 점검 파일 위치 및 점검 방법
      • SunOS
        • #cat /etc/default/passwd
        • MAXWEEKS=12
      • Linux
        • #cat /etc/login.defs
        • PASS_MAX_DAYS 90
      • AIX
        • #cat /etc/security/user
        • maxage=8
      • HP-UX
        • #cat /etc/default/security
        • PASSWORD_MAXDAYS=8
    • 패스워드 최소 사용기간 설정
      • 패스워드 최소 사용기간이 1일로 설정되어야 함
    • OS 별 점검 파일 위치 및 점검 방법
      • SunOS
        • #cat /etc/default/passwd
        • MINWEEKS=1
      • Linux
        • #cat /etc/login.defs
        • PASS_MIN_DAYS 1
      • AIX
        • #cat /etc/security/user
        • minage=1
      • HP-UX
        • #cat /etc/default/security
        • PASSWORD_MINDAYS=1

파일 및 디렉터리 관리

  • root 홈, 패스 디렉터리 권한 및 패스 설정
    • root 계정 PATH 환경변수에 . 이 맨 앞이나 중간에 포함되지 않은 경우 양호
    • 예 : 악의적인 사용자가 /bin/ps 명령어보다 우선 실행될 수 있도록 ps 로 악성코드를 심어놓음.
    • ~/.profile 혹은 /etc/profile
      • PATH = .:$PATH:$HOME/bin : . 제거 필요
    • #echo $PATH
      • /usr/local/sbin:/sbin:......:/usr/local/bin
      • . 또는 :: 포함 여부 확인 필요
  • 파일 및 디렉터리 소유자 설정
    • 소유자가 존재하지 않은 파일 및 디렉터리가 존재하지 않는 경우 양호
      • 삭제된 소유자의 UID 와 동일한 UID 사용자가 접근 가능
      • 존재할 경우 삭제 또는 소유자변경 필요
        • rm [file명|디렉터리명]
        • chown [user명] [file명]
    • OS 별 점검 파일 위치 및 점검 방법
      • 소유자가 nouser, nogroup 인 파일이나 디렉터리 탐색
      • SunOS, AIX
        • #find / -nouser -o -nogroup -xdev -ls 2> /dev/null
      • HP-UX
        • #find / \( -nouser -o -nogroup \) -xdev -exec ls -al {} \; 2>dev/null
      • Linux
        • #find / -nouser -print
        • #find / -nogroup -print
  • /etc/passwd 파일 소유자 및 권한 확인
    • /etc/passwd 파일 소유자가 root 이고, 권한이 644 이하인 경우 양호
    • OS 별 점검 파일 위치 및 점검 방법
      • SunOS, Linux, AIX, HP-UX
        • #ls -l /etc/passwd
        • chown root /etc/passwd
        • chmod 644 /etc/passwd
  • /etc/shadow 파일 소유자 및 권한 확인
    • /etc/shadow 파일 소유자가 root 이고, 권한이 400 인 경우 양호
    • OS 별 점검 파일 위치 및 점검 방법
      • SunOS, Linux
        • #ls -l /etc/shadow
      • AIX
        • ls -ld /etc/security/passwd
      • HP-UX
        • ls -ld /tcb/files/auth
      • 조치
        • chown root [파일위치]
        • chmod 400 [파일위치]
  • /etc/hosts 파일 소유자 및 권한 확인
    • /etc/hosts 파일 소유자가 root 이고, 권한이 600 인 경우 양호
    • IP 주소와 대응되는 호스트네임이 기록되어 있는 파일, 잘못 매핑 되어있을 경우 악의적인 시스템에 연결됨
    • OS 별 점검 파일 위치 및 점검 방법
      • SunOS, Linux, AIX, HP-UX
        • #ls -l /etc/hosts
  • world writable 파일 점검
    • world writable 파일이 존재하지 않거나 존재 시 설정 이유를 확인하고 있는 경우 양호
    • world writable : 모든 사용자가 작성할 수 있는 파일
    • OS 별 점검 파일 위치 및 점검 방법
      • #find / -perm -2 -ls
      • chmod o-w [파일명]
  • 그 외 중요 파일들
    • /etc/xinetd.conf, /etc/inetd.conf : 슈퍼데몬 설정파일 (프로그램 등록)
      • root 소유 600 권한 이하 설정
    • /etc/syslog.conf : syslogd 설정파일, 여러 로그에 대한 정보를 남김
      • root 소유 644 권한 이하 설정
    • /etc/services : 서비스관리 정보 (포트, 프로토콜 정보)
      • root 소유 644 권한 이하 설정

서비스 관리

  • Finger 서비스 비활성화
    • Finger 서비스가 비활성화 되어 있는 경우 양호
    • Finger
      • 사용자 정보 확인 서비스
      • 네트워크에 연결된 타 시스템의 사용자 확인 가능
      • 외부에서 확인 가능
      • 자세한 정보 제공
    • who : 현재 사용중인 사용자 확인 (간단한 정보)
    • OS 별 점검 파일 위치 및 점검 방법
      • Linux, AIX, HP-UX, SunOS (5.9 이하)
        • cat /etc/inetd.conf
        • #finger stream tcp nowait bin /usr/lbin/fingerd fingerd (주석처리)
      • SunOS (5.9 이상)
        • inetadm | grep "finger"
        • inetadm -d [데몬명]
      • Linux (xinetd)
        • ls -al /etc/xinetd.d/* | egrep "echo finger"
        • vi /etc/xinetd.d/finger
          • disable=yes
      • 적용을 위해 서비스 재시작
        • kill -HUP [pid]
        • service xinetd restart
  • 그 외 익명 ftp, r 계열 서비스 비활성화

  • cron 파일 소유자 및 권한 설정
    • cron 접근제어 파일 소유자가 root 이고 권한이 640 이하인 경우 양호
    • OS 별 점검 파일 위치 및 점검 방법
      • Linux, AIX, HP-UX, SunOS
        • ls -al [cron 접근제어 파일 경로]
        • SunOS : /etc/crontab
        • Linux, AIX, HP-UX : /var/spool/cron/crontabs/*

패치 관리

  • 최신 보안패치 및 벤더 권고사항 적용
    • 패치 적용 정책을 수립하고 주기적으로 패치를 관리하고 있는 경우 양호
    • 패치 적용 정책 수립여부 및 정책에 따른 패치 적용여부 확인

로그 관리

  • 로그의 정기적 검토 및 보고
    • 로그 기록의 검토 분석 리포트 작성 및 보고 등이 정기적으로 이루어지는 경우 양호
    • 로그 분석 계획 수립여부 및 로그 분석결과에 대한 점검
    • 정기적인 로그 분석을 위한 절차
      • 정기적인 로그 검토 및 분석 주기 수립
      • 로그 분석에 대한 결과 보고서 작성
      • 로그 분석 결과보고서 보고 체계 수립

댓글남기기