DongDD's IT

[정보보안기사 실기] 시스템 보안 - 서버 취약점 본문

자격증/정보보안기사

[정보보안기사 실기] 시스템 보안 - 서버 취약점

DongDD 2018. 4. 24. 16:54

[정보보안기사 실기] 시스템 보안 - 서버 취약점



UNIX/Linux 서버 취약점



계정 관리


1. root 이외의 사용자의 UID 0 금지

- root의 UID 0을 다른 사용자에게 부여하면 root와 동일한 권한을 가지게 됨

-> /etc/passwd 파일에서 uid 확인하여 0을 가진 계정 수정,삭제

-> usermod -u uid account


2. 패스워드


1) 적절한 유형을 가진 패스워드 설정, 관리

- 영문, 숫자, 특수문자를 이용해 복잡성을 높여야 함

- 유추 가능하거나 단순한 패스워드 사용 금지


2) 최소 길이 설정

- SunOS : /etc/default/passwd 파일의 PASSLENGTH 설정

- Linux : /etc/login.defs 파일의 PASS_MIN_LEN 설정


3) 최대 사용 기간 설정

- SunOS : /etc/default/passwd 파일의 MAXWEEKS 설정(주 단위)

- Linux : /etc/login.defs 파일의 PASS_MAX_DAYS 설정(일 단위)


4) 최소 사용 기간 설정

- SunOS : /etc/default/passwd 파일의 MINWEEKS 설정(주 단위)

- Linux : /etc/login.defs 파일의 PASS_MIN_DAYS 설정(일 단위)


5) 패스워드 파일 보호

- 패스워드는 암호화해서 보관해야 함(shadow)

- shadow 사용 시, 적절한 접근 제어를 해야 함

- /etc/passwd 파일의 두번째 필드가 'x'인지 점검


3. Session Timeout 설정

- 접속된 상태에서 연결을 방치하게 되면 중요시스템이 노출되어 악의적인 목적으로 사용될 수 있기 때문에 특정 시간동안 아무런 event가 없을 경우 연결을 종료해야함

- Linux : /etc/profile 파일의 TMOUT 설정

- SunOS : /etc/default/login 파일의 TIMEOUT 설정


파일 및 디렉토리 관리


1. root 홈 디렉토리, $PATH 관리

- root 계정의 PATH 환경 변수에 '.'이 포함되면 의도치 않은 명령이 실행될 수도 있음

-> 왠만하면 '.'을 사용하지 않고 사용해야 할 경우 $PATH의 맨 끝으로 이동시킴


2. 파일, 디렉토리 소유자 관리

- 소유자나 소유그룹이 존재하지 않는 파일에 대해 문제가 생길 수 있음

- 소유자 계정, 소유 그룹이 사라진 경우 UID, GID로 표시됨

- find 명령의 -nouser, -nogroup 옵션을 사용해 해당 파일을 찾고 변경하거나 삭제


3. 주요 파일 소유자, 권한 관리

1) /etc/passwd

- root 소유, 644 이하의 권한 설정

2) /etc/shadow

- root 이외에 접근하지 못하도록 400 이하의 권한 설정

3) /etc/hosts

- IP와 host 매핑에 사용되는 파일

- root 소유, 600 이하의 권한 설정

4) /etc/inted.conf

- root 소유, 600 이하의 권한 설정

5) /etc/syslog.conf

- 불법적인 접근에 의해 수정될 경우 로그가 기록되지 않게 되어 침입자, 오류 사항을 분석할 수 없게 됨

- root 소유, 644 이하의 권한 설정

6) /etc/services

- 불법적인 접근에 의해 변경되면 정상적 서비스를 제한, 비정상적 서비스가 등록될 수 있음

- root 소유, 644 이하의 권한 설정



윈도우 서버 취약점



계정 관리


1. Administrator 계정 이름 변경

- 이 계정을 그대로 사용할 경우, password만 찾으면 되기 때문에 Brute Force 공격에 취약할 수 있음

- 이 계정은 로그인 실패 횟수에 제한이 없음

- 제어판 -> 시스템 및 보안 -> 관리도구 -> 컴퓨터 관리 -> 로컬 사용자 및 그룹


2. Guest 계정 사용 제한

- 불특정 사용자의 시스템 접근을 허용하는 취약한 계정

- Guest 계정이 아닌 일반 사용자 계정을 생성해 이용하도록 해야함

- 제어판 -> 시스템 및 보안 -> 관리도구 -> 컴퓨터 관리 -> 로컬 사용자 및 그룹


3. 불필요한 계정 제거

- 불필요한, 의심스러운, 사용되지 않는 계정은 정보 유출의 위험성이 있으므로 계정 잠금/삭제

- 제어판 -> 시스템 및 보안 -> 관리도구 -> 컴퓨터 관리 -> 로컬 사용자 및 그룹


4. 관리자 그룹 관리

- 관리 업무, 일반 업무 계정은 분리해 사용하는게 좋음

- 관리자 그룹에는 최소한의 계정만 포함되도록 함

- 제어판 -> 시스템 및 보안 -> 관리도구 -> 컴퓨터 관리 -> 로컬 사용자 및 그룹


5. 패스워드 정책 설정(제어판 -> 시스템 및 보안 -> 관리도구 -> 로컬 보안 정책 -> 계정 정책 -> 암호 정책)

1) 패스워드 복잡성

- 대문자/소문자/숫자/특수문자 이용

- 2개 이상 조합 -> 10자리 이상, 3개 이상 조합 -> 8자리 이상

2) 최근 패스워드 기억 설정

- 최근에 사용한 패스워드를 다시 사용할 수 없게 함

- 권장 : 12개(12개를 사용할 동안 사용했던 패스워드 사용 X)

3) 최대 사용기간 설정

- 권장 : 90일 이하

- 계정 속성의 '암호 사용 기간 제한 없음' 해제

4) 최소 사용기간 설정

- 최근 패스워드 기억 기능을 무력화하는 것을 막기 위해 사용

- 권장 : 1일

5) 최소 길이 설정

- 권장 : 8자 이상

6) 해독 가능한 암호화 사용 설정

- 해독 가능하면 계정 정보가 유출될 수 있음

- 권장 : "사용 안함"


6. 계정 잠금 정책(제어판 -> 시스템 및 보안 -> 관리도구 -> 로컬 보안 정책 -> 계정 정책 -> 계정 잠금 정책)

1) 계정 잠금 기간

- 계정 잠금 임계값 도달 시, 제한 시간만큼 잠금

- 권장 : 60일 이상

2) 계정 잠금 임계값

- 권장 : 5 이하

- Administrator 계정은 잠기지 않음

3) 다음 시간 후 계정 잠금 수를 원래대로 설정

- 로그인 실패 후 로그인 실패 횟수 초기화 시간

- 권장 : 60분 이상



서비스 관리


1. 하드디스크 기본 공유 제거

- 윈도우는 기본적으로 C$, D$, ADMIN$, IPC$ 폴더를 기본 공유폴더로 설정함

- 기본 공유 폴더에 허가 받지 않은 사용자가 접근할 수 있고 바이러스가 침투할 수 있음

- 제어판 -> 시스템 및 보안 -> 관리도구 -> 컴퓨터 관리 -> 시스템 도구 -> 공유 폴더 -> 공유

- net share : 공유 폴더 확인

- net share name /delete : 공유 폴더 name을 삭제

- 재부팅하면 net share나 제어판에서 수정한 것이 사라짐

-> HKEY_LOCAL_MACHINE\CurrentControlSet\LanmanServer\Parameters에서 AutoShareServer 레지스트리 값을 0으로 수정


2. 공유 권한, 사용자 그룹 설정

- 익명 사용자에 의한 접근이 가능한 Everyone 그룹을 공유 폴더에서 제거


3. 불필요한 서비스 제거

- 불필요한 서비스는 공격 지점이 될 수 있으므로 제거해야함

-> Alterer : 서버->클라이언트 경고 메시지를 보내는 서비스

-> Clipbook : 서버내 Clipbook을 다른 클라이언트에게 공유하는 서비스

-> Messenger : net send 명령어로 클라이언트에게 메시지를 보내는 서비스

-> Simple TCP 서비스 : echo, discard, daytime 등

- 제어판 -> 시스템 및 보안 -> 관리도구 -> 서비스

-> 사용 안함

-> 수동 : 다른 서비스에서 필요 시 시작

-> 자동 : 운영체제에 의해 시작



로그 관리


1. 감사 정책 설정

- 감사 정책 : 어떤 이벤트에 대한 로그를 남길지 정의한 규칙

- 감사 설정 수준이 낮으면, 문제 발생 시 원인 파악이 어려움

- 감사 설정 수준이 높으면, 많은 로그 기록으로 혼동이 생기고 시스템 성능이 낮아질 수 있음

- 제어판 -> 시스템 및 보안 -> 관리도구 -> 로컬 보안 정책 -> 로컬 정책 -> 감사 정책

1) 감사 항목

- 개체 액세스 : 객체에 대한 접근 성공/실패 관련 이벤트(권장 : 감사 안함)

- 계정 관리 : 계정 관리에 대한 이벤트(권장 : 실패)

- 계정 로그온 이벤트 : 도메인 계정에 대한 로그온 성공/실패 관련 이벤트(권장 : 성공, 실패)

- 로그온 이벤트 : 로컬 계정에 대한 로그온 성공/실패 관련 이벤트(권장 : 성공, 실패)

- 권한 사용 : 권한 사용의 성공/실패 관련 이벤트(권장 : 실패)

- 디렉토리 서비스 액세스 : Active Directory 개체의 시스템 액세스 컨트롤 리스트(SACL)에 있는 사용자가 해당 개체에 접근을 시도하는 이벤트(권장 : 실패)

- 시스템 이벤트 : 시스템과 관련된 이벤트(권장 : 감사 안함)

- 정책 변경 : 감사 정책 변경에 대한 이벤트(권장 : 성공, 실패)

- 프로세스 추적 : 실행하는 프로세스의 자세한 추적 정보를 감사하려는 경우, 프로세스에 대한 이벤트(권장 : 감사 안함)


Comments