2016년 8월 10일 수요일

정보보안기사 정리 19 - 윈도우 서버보안

윈도우 서버보안 개념, 윈도우 인증 구성, 레지스트리, 윈도우 서버 보안 설정, 윈도우 네트워크 서비스, 윈도우 OS의 로그 감사 정책, 윈도우 로그


1. 윈도우 기본 개념
- 윈도우 OS는 5개 링으로 구분.
  제일 작은 링부터 HW → HAL → 마이크로커널 → 관리자 → 응용 프로그램
- 파일 시스템
  ① FAT16: 한 파티션 최대 2GB,  dos와 window 95 지원. FAT 테이블 기본 크기가 16비트, 디스크에 파일 담는 최소 단위 클러스터는 32KB.
  ② FAT32: 총 32비트개의 클러스터를 가질 수 있음. 호환성이 좋고, 리눅스나 다른 OS에서도 호환. 단, 접근제어가 안됨.
  ③ NTFS(New Technology File System): 접근제어가 적용된 윈도우 파일 시스템. 결함관리(HotFixing) 가능.
       개인 폴더와 파일에 사용권한 설정 및 암호화 가능. 누가 파일을 열고, 시도했는지 Auding(감사) 기능 제공.
       구조: PBS(파티션 부트 섹터), MFT(마스터 파일 테이블), 시스템파일, 파일영역
  ④ XP, Server 2000/2003 부팅 순서
       POST(power on self test, HW 검사) → 부팅 관련 설정 로드(BIOS는 CMOS에 설정된 시스템 설정 사항 및 부팅 관련 정보를 읽어 시스템에 적용) →
       MBR 로드(파티션 첫번째 섹터에 위치한 512바이트 영역, 기본 파일시스템 정보가 들어 있음) → NTLDR(Server 2000의 가능한 부팅 옵션을 보여줌) 실행 →
       NTDETECT.com 실행(하드웨어 검사) → 커널 로드
  ⑤ 윈도우 비스타, 7
       위의 것에서 MBR 로드까지 같음 → 윈도우 부트 메니져 실행(실행가능한 OS 보여줌)
       → 윈도우 OS 로더(winload.exe) 실행(각종 장치 드라이브 로더) → 커널 로드


2. 윈도우 보안
- 윈도우 기본 계정: Administrator(관리자 권한), SYSTEM(최고 권한을 가진 계정, 관리자보다 상위 권한. 사용자가 로그인 못함), Guest(기본설정 사용 불가)
- SID(Security Identifier): 유닉스/리눅스의 UID, RUID 같이 계정을 코드값으로 표현 한 것.
  코드 순서: 윈도우시스템 코드 → 시스템의 도메인 또는 단독 시스템 표시 → 시스템 고유 숫자 → 계정 ID(관리자 500, Guest 501, 일반 사용자 1000번 이상)

- 윈도우 인증
  ① Winlogon: 사용자가 입력한 계정과 비밀번호를 msgina.dll을 로드시켜 LSA에 전달.
  ② LSA: 모든 계정의 로그인(로컬, 원격 모두 포함)에 대한 검증 수행, 시스템 자원 및 파일 등에 대한 접근 권한 검사,
      이름과 SID를 매칭하며, SRM 생성한 감사 로그를 기록함.
      전달받은 계정과 비밀번호를 검증하기 위해 NTLM 모듈을 로드하고 이를 통해 SAM에 접근.
  ③ SAM: 사용자/그룹 계정 정보에 대한 DB를 관리. SAM 파일 위치는 대게Windows\system32\config\sam 임.
      SAM이 사용자의 계정과 비밀번호의 일치 여부를 SRM에 알리면 SRM은 사용자에게 SID를 부여하고, 이에 기반하여 자원에 대한 접근 허용 여부를 결정함.
  ④ 로컬 로그인에서는 Kerberos가 필요없음.

- 공유 자료 관리
  ① 이름을 어렵게 해도 침입자에게 들키므로 공유 리소스를 설정할 때 이름 끝에 ‘$’기호를 붙여 네트워크창에 리소스 목록에서 안나타나게 함.
  ② 숨겨진 공유폴더는 CMD 창에서 net share 치면 나옴
  ③ 기본 공유 폴더 지우기
  ④ 파일 폴더 암호화

* 윈도우 공유폴더
IPC$는 프로세스간 통신을 위한 통로 같은 것. 널 세션이라고도 하며, 네트워크 프로그램 간 통신에서 클라이언트와 서버 사이를 임시로 연결하는 데 사용됨. 네트워크 서버의 원격 관리에 주로 사용.
ADMIN$: 윈도우 설치 폴더에 접근하는 관리목적 공유 폴더


3. 레지스트리
- 윈도우 시스템 구성을 위한 정보들
- HW 정보, HW가 사용하는 리소스, 장치 드라이버 정보, 윈도우 내부 설정, 파일연결 데이터, 인터페이스 설정, 작업표시중 설정, 네트워크 연결설정,
  탐색기 등의 프로그램 설정, 타사 어플 설정 등이 저장되어 있음.
- 레지스트리 편집기: 읽기, 수정, 추가, 삭제함. ‘실행’에서 regedit, regedit32로 실행.
- HKEY_CLASS_ROOT(HKCR): 어플 연결 정보, 확장자정보, 윈도우 시스템 정보 등
- HKEY_CURRENT_USER(HKCU): 컴퓨터의 환경설정 정보, users보다 우선권이 있음.
- HKEY_LOCAL_MACHINE(HKLM): HW와 HW 구동에 필요한 드라이버 설정 정보.
- HKEY_USERS: current_user 정보를 포함하며, 데스크탑 설정, 네트워크 연결 정보
- HKEY_CURRENT_CONFIG(HKCC): 디스플레이, 프린터 정보
- 레지스트리 보호
  ① 일반 사용자는 UAC(user, account control)에 의해 레지편집기 사용 못하게 함.
  ② 현재 레지스트리 상태 저장으로 복원가능하게 함.
     

4. 윈도우 서버 보안 설정
- 기본적으로 방화벽을 사용해야 함.
- Administrator 계정 설정: 잘 알려진 계정이므로 이름 변경할 것. 또한 "Administrator "라는 기본 관리자 계정명은 Brute force 공격에 취약하므로 변경할 것.
- Guest 계정은 불필요할 경우 삭제 함.
- 사용하지 않는 계정, 의심스러운 계정은 점검하고 삭제 함.
- 로그온 실패에 따른 계정 잠금 횟수, 기간 및 계정 잠금 복귀 시간을 설정하여 Brute Force 공격이나 패스워드 크랙 공격에 대응함.
- 패스워드의 경우 복잡도 증가, 최대사용기간, 최소길이, 취약한 패스워드 점검으로 안전한 패스워드 사용을 하게 함.
- 패스워드 실패시 계정 잠금 설정 할 것.
- 관리자 그룹은 반드시 권한이 필요한 사용자만 권한이 부여되도록 함.
- 불필요한 공유제거
  C$, D$, ADMIN$ 같은 기본 공유는 제거하고, IPC$는 삭제할 경우 다른 서비스가 실행되지 않을 수 있으므로 제거하지 않음.
  * 제거 방법: net share 공유이름 /delete, 또는 레지스트리 수정
- SAM 파일 접근 통제: SAM 파일은 사용자 계정 및 비번 담고 있어 접근 통제 및 권한 설정이 필요.
- NULL Session 접근 차단: 비인가된 사용자가 NULL Session으로 인증 없이 접근하지 못하게 함. 방화벽, 라우터 등에서 차단 함.
- 세션 관리: 세션 타임아웃 설정,


5. 윈도우 네트워크 서비스
- 디렉터리 DB
  Active directory는 네트워크상의 개체에 대한 정보를 저장하는 논리적 계층 구조로 만들어져 관리자와 사용자가 쉽게 찾아 사용하게 함.
  개체에 대한 정보: 서버, 볼륨, 프린터, 네트워크 사용자 및 계정 등.
- Active directory 서버
  디렉터리 내에서 구성원 서버나 도메인 컨트롤러 역할을 함.
  예를 들어 파일 서버, DB 서버, 웹 서버, 인증 서버 등이 있음.
- 윈도우 네트워크 방식
  ① Workgroup 방식: 계정과 자원을 시스템 별로 관리. 소규모 네트워크 적합, 보안은 SAM DB에 의해 관리됨.
       Active Directory를 구축 안하며, 다른 시스템에 접근시 사용자 계정과 암호 필요.
  ② Domain 방식: 모든 계정과 자원을 특정 서버에서 관리. 지정된 권한대로 다른 컴퓨터에 사용자가 접근.
       Active directory가 구축된 상태에서만 사용가능한 방식


6. 윈도우의 로그 기록 정책(감사 정책)
- 어떤 로그를 남길지 정의한 규칙을 의미.
- 감사 수준이 낮으면 보안 문제 발생시 원인 파악이 어렵고 법적 대응을 위한 증거로 사용될수 없고,
  감사 수준이 높으면 불피룡한 항목이 많이 기록되며 시스템 성능에도 영향을 줄 수 있음.
- 감사 항목: 권장 값 : 설명
  ① 개체 액세스 : 감사안함 : 파일, 디렉터리, 레지스트리 등의 객체에 대한 접근시 성공여부 기록할지 결정.
  ② 계정관리 : 실패 : 계정 관리 이벤트 감사할지 결정. 즉, 계정/그룹의 생성, 변경 같은 이벤트 기록하는 것.
  ③ 계정 로그온 이벤트 : 성공,실패 : 도메인 계정에 대한 로그온 성공여부 이벤트 기록 할지 결정
  ④ 권한 사용 : 실패 / 권한 사용의 성공 및 실패 감사.
  ⑤ 디렉터리 서비스 액세스 : 실패 : Active Directory 개체의 시스템 접근 컨트롤 목록(SACL)에 있는 사용자가 개체에 접근 시도 시 기록
  ⑥ 로그온 이벤트 : 성공,실패 : 로컬 계정의 로그온 성공 여부 이벤트 기록할지 결정
  ⑦ 시스템 이벤트 : 감사안함 : 시스템 시작 종류 등의 이벤트 감사 여부 결정
  ⑧ 정책 변경 : 성공,실패 : 감사 정책 변경의 성공여부 감사
  ⑨ 프로세스 추적 : 감사안함 : 실행되는 프로세스 정보 감사하는 경우프로세스 관련 이벤트 감사할지 결정.


7. 윈도우 로그
- 윈도우는 Event라는 중앙 집중화된 로그 저장 방식을 사용. (유닉스는 여러 곳에 산발적으로 로그를 저장)
- 로그인한 사용자 확인 명령: net session
- 윈도우 시스템 이벤트 로그 종류
  ① 응용프로그램 로그: SW 개발자가 이벤트를 남기는 형태로 기록됨.
  ② 보안 로그: 로그온 시도, 파일 생성/삭제 등 자원 사용 이벤트 (감사정책에 따름)
  ③ 시스템로그: 시스템 구성 요소가 기록하는 것. 예: 부팅시 드라이버 로드 안될 경우.
  ④ 디렉터리로그: active directory 서비스 문제. 예: 서버와 글로벌 카탈로그 사이 연결 문제
  ⑤ 파일 복제 서비스 로그: 도메인 컨트롤러가 시스템 볼륨 변경 업데이트 동안 파일 복제 실패 같은 WINDOWS 파일 복제시 로그
  ⑥ DNS 서버 로그: window dns 서비스 이벤트


댓글 없음:

댓글 쓰기