본문 바로가기

기타/공부하기

[정보보안기사] SECTION 16 윈도우 서버 보안

SECTION 16 윈도우 서버 보안

1. 윈도우 시스템의 구조

개요

5개의 링 기반 구조

-하드웨어 → 하드웨어 추상화(HAL, Hardware Abstraction Layer) → 마이크로 커널 → 각종 관리자 → 응용프로그램 순서

-커널모드 : 하드웨어 ~ 각종 관리자 까지

-사용자모드 : 응용프로그램 계층

윈도우 시스템의 구조

HAL

-하드웨어와 개발된 소프트웨어 간에 원활한 통신이 가능하도록 도와주는 번역자 역할

-프로그래머가 하드웨어에 독립적인 프로그램을 작성하도록 함

마이크로 커널

-본래 커널의 역할을 여러 관리자에게 분담시키고 자신은 하드웨어와의 통신만을 제어함

-%SystemRoot%\system32\ntoskrnl.exe 파일이 그 역할을 수행

입출력 관리자 : 시스템의 입출력을 제어함

객체관리자 : 파일, 포트, 프로세스, 스레드와 같은 객체에 대한 정보를 제공

보안참조 관리자 : 데이터나 시스템 자원의 제거, 허가, 거부함으로써 강제적 시스템 보안 설정 책임

프로세스 관리자 : 스레드를 생성하고 요청

로컬 프로시처 호출 : 프로세스는 서로의 메모리 공간을 침범하지 못하기 때문에 프로세스 간에 통신이 필요한 경우에는 이를 대신해 줄 수 있는 장치

가상 메모리 관리자 : 페이징 사용

Win32 서브 시스템

-32비트 응용 프로그램이 동작할 수 있게 도와주고, 기본적인 윈도우의 사용자 인터페이스를 제공

-비디오 디스플레이, 키보드, 마우스 등을 지원하는 서브 시스템

POSIX (Potable Operating System Interface) - 유닉스 운영체계에 기반을 두고 있는 일련의 표준 운영체계 인터페이스

보안 서브 시스템 : 사용자가 로그인할 때 데이터를 보호하고 운영체제가 이를 제어할 수 있도록 만든 서비스 시스템

OS/2 서브 시스템 : OS/2와 호환을 위한 서브시스템

2. 윈도우의 특징

GUI 환경 : 아이콘이라는 그림 명령을 통해 쉽게 프로그램 접근

Plug&Play : 하드웨어를 자동으로 인식하여 환경 설정을 해 주는 기능

단축 아이콘(바로가기) : 프로그램이나 데이터를 빠르고 편리하게 실행시키기 위해 원하는 위치에 생성

멀티태스킹 : 한 번에 여러 가지 작업을 동시에 수행

OLE(Object Linking Embedding) : 객체 연결 포함 기능으로 프로그램 간에 객체(그림, 표 등)을 교환

다중 모니터 지원 : 최대 8대 모니터를 연결 하여 사용 가능

정보의 전송 통합

-두 개 이상의 응용프로그램에서 작업하여 상호 간의 정보를 한 응용프로그램에서 다른 응용 프로그램으로 전송 통합 할 수 있음

-클립보드를 통해 이루어짐

3. 윈도우 파일 시스템

FAT16(File Allocation Table, 파일 할당 테이블)

어느 영역에 파일이 속해 있는지, 공간에 여유가 있는지, 또 어디에 각 파일이 디스크에 저장되어 있는지에 대한 정보를 중심으로 하는 테이블을 이용

FAT16 - 2GB까지 한 파티션으로 설정 가능

FAT32

총 32비트의 클러스터를 가짐 : 32GB까지 한 파티션으로 설정 가능

파일의 크기(4GB)와 파일 이름 길이의 제한이 있음

호환성이 좋아 리눅스, MAC, 디지털카메라, 게임기 등 다른 운영체제에 정보를 옮길 때 유용함

접근제어를 설정할 수 없어, 보안에 취약함

NTFS

접근제어가 적용된 파일 시스템

-개별폴더와 파일에 사용권한을 설정 가능

-각 파일과 폴더에 해당 계정만 접근할 수 있도록 암호화 가능

결함관리 기능이 존재하여 FAT나 FAT32 보다 성능이 좋음

감사(Auditing) 기능 : 누가 몇 시 몇 분에 파일을 열거나, 열려다 실패한 경우 로그 발생

FAT16, FAT32에서 NTFS로 변환 가능 하지만, NTFS에서 FAT로 변환 불가능

NTFS 디스크 구조

-PBS(Partition boot Sector) : 부팅에 필ㅇ한 최소한의 정보가 저장됨

-MFT(Master File Table) : 모든 파일과 디렉터리에 대한 파일 이름, 크기, 생성 시간 등 모든 정보가 저장

-시스템 파일 : 파일 오류 시 이를 복구는데 사용할 디스크 사용에 대한 로그 파일, 디스크 볼륨 이름 등 디스크 자체에 대한

-파일 영역 : 실제 데이터가 저장됨

XP, Server 2000/2003 부팅 순서

1) POST : 하드웨어 스스로 시스템에 문제가 없는지 기본사항 검사

2) 부팅 관련 설정(CMOS) 로드 : BIOS는 CMOS에 설정된 시스템 설정 사항 및 부팅 관련 정보를 읽어 시스템에 적용

3) MBR 로드 : 파티션 첫번째 섹터에 위치한 512바이트 영역, 기본 파일시스템 정보가 들어 있음

4) NTLDR 실행 : Server 2000의 가능한 부팅 옵션을 보여줌

5) NTDETECT.com 실행 : 하드웨어 검사

6) 커널 로드

윈도우 비스타, 7

위의 MBR 로드까지(1~3까지) 같음

4) 윈도우 부트 메니져 실행 : 실행가능한 OS 보여줌

5) 윈도우 OS 로더(winload.exe) 실행 : 각종 장치 드라이브 로더

5) 커널 로드

3. 윈도우 계정과 권한

윈도우 기본 계정

Administrator : 관리자 권한

SYSTEM

-최고 권한을 가진 계정으로 관리자 권한 보다 높음

-사용자가 로그인 하지 못함

Guest : 기본으로 설정된 익명 계정으로 삭제는 불가능 하지만 이름 수정은 가능, 사용 불가

SID(Security Identifer)

유닉스/리눅스의 UID, RUID 같이 윈도우 계정을 코드값으로 표현 한 것.

구성 : 시스템 , 도메인 컨트롤러 , 시스템 고유 숫자 , 고유 ID 로 구성

-맨 마지막 고유 ID에서 관리자 = 500, guest = 501, 일반 사용자 = 1000번 이상

윈도우 인증 과정

1) Winlogon: 사용자가 입력한 계정과 비밀번호를 msgina.dll을 로드시켜 LSA에 전달.

2) LSA:(Local Security Authority) 수행

-모든 계정의 로그인(로컬, 원격 모두 포함)에 대한 검증,

-시스템 자원 및 파일 등에 대한 접근 권한 검사

-이름과 SID매핑

-SRM이 생성한 감사 로그 기록

-전달받은 계정과 비밀번호를 검증하기 위해 NTLM 모듈을 로드하고 이를 통해 SAM에 접근

3) SAM(Security Account Manager) 수행

-사용자/그룹 계정 정보에 대한 DB를 관리

-SAM 파일 위치는 대게Windows\system32\config\sam 임

-사용자 로그인 정보와 SAM 데이터베이스와 비교해서 일치 여부를 SRM에게 알림

4) SRM(Security Reference Monitor) 수행

-사용자에게 SID를 부여

-SID에 기반하여 자원(파일, 디렉터리)에 대한 접근 허용 여부를 결정함

로컬 로그인에서는 Kerberos가 필요없음

4. 공유자료 관리

네트워크 드라이브

설정 명령어 : C:\> net use [드라이브명]: \\[ip주소] (ex: net use z: \\10.10.10.10)

해제 명령어 : C:\> net use /delete [드라이브명]

디렉토리 및 파일에 접근 권한 설정하기

NTFS 접근 권한은 누적됨

-특정 폴더의 권한에 그룹A에는 읽기 권한을, 그룹B에는 쓰기 권한을 주었을 때, 그룹 A와 그룹B에 속하는 사옹자는 읽기, 쓰기 권한을 모두 가지고 있음

파일에 대한 접근 권한이 디렉터리 접근 권한 보다 우선(파일 > 디렉터리)

권한이 중첩되면 허용보다 거부가 우선

윈도우 기본 공유폴더와 관리

윈도우 기본 공유 폴더

-C$, D$ : C나 D드라이브에 대한 관리목적 공유 폴더, 연결된 하드드라이브 문자수만큼 공유됨

-IPC$ : (Inter Process Communication) 프로세스간 통신을 위한 통로

널 세션이라고도 함

네트워크 프로그램 간 통신에서 클라이언트와 서버 사이를 임시로 연결하는 데 사용됨

네트워크 서버의 원격 관리에 주로 사용

-ADMIN$: 윈도우 설치 폴더에 접근하는 관리목적 공유 폴더

관리 방법

-이름을 어렵게 해도 침입자에게 들키므로 공유 리소스를 설정할 때 이름 끝에 ‘$’기호를 붙여 네트워크창에 리소스 목록에서 안나타나게 함

net use [드라이브명]: \\[ip주소\설정대상드라이브]$

-숨겨진 공유폴더는 CMD 창에서 net share 치면 나옴

-C$, D$, ADMIN$ 공유가 숨겨져도 침입자가 매우 잘 알고 있으므로 공유를 비활성화​

기본 공유가 중지된 후 운영체제 재부팅되면 운영체제가 다시 자동으로 기본공유폴더 생성

완전한 공유 폴더 제거는 레지스트리 편집기에서 DWORD를 새로 만들어 0으로 설정

5. 레지스트리 활용

레지스트리 개념

시스템(하드웨어, 운영체제, 응용소프트웨어)의 정보와 설정 정보 등을 담고 있는 일종의 데이터베이스

레지스트리의 저장되는 정보

-하드웨어 장치 정보, 하드웨어가 사용하는 리소스

-윈도우 시작시 읽어들일 장치 드라이버 목록

-윈도우 내부 설정

-특정 형식 파일을 특정 응용프로그램에 연결시키는 파일 연결 데이터

-배경, 화면배색 등 인터페이스 설정

-시작 메뉴, 작업표시줄 설정

-인터넷, 네트워크 연결 설정

-탐색기, 인터넷 익스플로러 등 프로그램 설정

-타사 응용 소프트웨어 설정

레지스트리 내에 저장된 데이터는 크게 6개의 루트기를 기준으로 하여 저장된다

레지스트리 편집기

레지스트리를 읽기, 수정, 추가, 삭제하기 위한 소프트웨어

[시작]메뉴의 검색/실행 란에 regedit 또는 regedt32 입력

레지스트리 루트키

개념 : 레지스트리 내에 저장된 데이터는 크게 5개(또는 6개)의 루트기를 기준으로 하여 저장됨

-실질적으로 중요한 키는 'HKEY_LOCAL_MACHINE' 과 'HKEY_USERS' 두가지이며, 나머지 3개는 이 두키에 속한 하위키로 보셔도 무방할

HKEY_CLASSES_ROOT(HKCR)

-각종 프로그램과 프로그램에 연결된 확장자 명에 대한 정보와 단축키, 윈도우 시스템에 들어 있는 개체와 응용프로그램과 자동화(OLE)에 관련된 정보 등을 저장

-위치 : HKCU\SOFTWARE\Class 및 HKLM\SOFTWARE\Class의 데이터들임.

HKEY_CURRENT_USER(HKCU)

-현재 로그인된 사용자의 설정 정보를 저장

-위치 : \Documents and settings\\Ntuser.dat 파일

HKEY_USERS(HKU)

-해당 컴퓨터에서 사용 중인 모든 계정 정보를 저장

-current_user 정보를 포함하며, 데스크탑 설정, 네트워크 연결 정보 등을 저장

HKEY_LOCAL_MACHINE(HKLM)

-하드웨어, 소프트웨어, SAM, Security, 등 모든 설정 정보를 저장

-특히, 하드웨어와 해당 하드웨어를 구동 시키는데 필요한 드라이버와 설정사항이 저장되어 있음

HKEY_CURRENT_CONFIG(HKCC)

-현재 하드웨어 대한 프로필

-HKEY_LOCAL_MACHINE 의 하위키인 Config키(디스플레이에 관한 세부설정, 폰트 종류, 프린터 등)의 내용을을 저장

-위치 : HKLM\SYSTEM\CurrentControlSet\Hardware Profiles\Current

HKEY_PERFORMANCE_DATA(HKPD)

-Windows의 성능을 모니터링 하기위한 데이터를 저장

-레지스트리 편집기에서 확인 할 수 없으나 윈도우 API의 레지스트리 명령어를 이용하여 볼 수 있음

레지스트리 공격

부팅 시 악성프로그램 구동시키기 위해 레지스트리 변조함

악성코드 구동을 위해 사용되는 레지스트리는 HKCU, HKLM

6. 윈도우 서버 보안 설정

기본적으로 방화벽을 사용

지속적으로 방화벽 상태를 확인

-시작 > 제어판 > 시스템 및 보안 > Windows 방화벽 > 방화벽 상태 확인

접근 허용할 Port 등록

사용자 계정 보안 설정

Administrator 계정 명 변경 : 잘 알려진 계정이므로 이름 변경할 것

-로컬 보안 정책 > 로컬 정책 > 보안 옵셥 > 계정: Administrator 계정 이름 바꾸기 > (마우스 우클릭) 속성

Guest 계정은 불필요할 경우 삭제 함

일반 사용자 계정 관리

-사용하지 않는 계정, 의심스러운 계정은 점검하고 삭제 함

-원격 터미널 접속 제한 : 서버관리자 > 구성 > 로컬 사용자 및 그룹 > 사용자 > 일반 사용자 계정 > (마우스 우클릭) 속성

계정 잠금 정책 활성화

-특정 횟수 이상 로그인 실패한 경우, 지정한 시간 만큼 접속을 차단

패스워드 정책

-패스워드의 경우 복잡도 증가, 최대사용기간, 최소길이, 취약한 패스워드 점검으로 안전한 패스워드 사용을 하게 함

보안 로그 활성화

-계정 접속 정보를 이벤트 뷰어로 남기도록 설정

관리자 그룹은 반드시 권한이 필요한 사용자만 권한이 부여되도록 함

공유 관련 설정

불필요한 공유제거

C$, D$, ADMIN$ 같은 기본 공유는 제거

-제거 방법: net share 공유이름 /delete, 또는 레지스트리 수정

IPC$는 삭제할 경우 다른 서비스가 실행되지 않을 수 있으므로 제거하지 않음

SAM 파일 접근 통제

SAM 파일은 사용자 계정 및 비번 담고 있어 접근 통제 및 권한 설정이 필요

세션을 적절히 유지하기 위한 보안 설정

NULL Session 접근 차단 : 비인가된 사용자가 NULL Session으로 인증 없이 접근하지 못하게 함

방화벽, 라우터 등에서 차단 함

세션 관리: 세션 타임아웃 설정하여 세션에 대한 지속적인 인증

세션 하이재킹이나, 패킷 스니핑에 대응하기 위해 암호화

실행되는 서비스 관리

서비스 확인 : C:\> netstat –nao | more

사용하지 않는 불필요한 서비스 중지

원격 터미널 접속(RDP) 보안

원격 터미널 포트 변경

-기본 포트(3389)에서 임의 포트로 변경하여 노출을 예방

-레지스트리 편집기(regedit)를 이용하여 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Control\Terminal Server\Wds\rdpwd\Tds\tcp에서 PortNumber 변경

FTP 보안 설정

FTP 계정을 추가

-사용자 계정을 생성하여, 해당 사용자 계정만 FTP로 접속 할 수 있도록 설정

SSL 보안 FTP 통신을 허용함

SMTP 보안 설정

연결제어

-사용자 인증방식이 아닌 허용할 IP나 도메인을 지정하여 액세스를 제어

-관리도구 > IIS 관리자 > SMTP > (마우스 우클릭) SMTP 속성 > 액세스 탭 > 연결제어 > 연결

릴레이 제한

-악성 스팸 메일의 중계 서버로 이용되는 것을 막기 위해 릴레이 가능한 IP나 도메인 등을 추가

-해당 IP또는 도메인 에서만 메일을 발송할 수 있도록 설정

-SMTP 속성 > 액세스 > 릴레이 제한 > 릴레이

HTTP 보안 설정

사용하지 않은 기본 페이지 삭제

-IIS 관리자 > 웹 서버 > 기본 문서

웹 디렉터리별 HTTP Method 제한

-클라이언트에서 웹 서버로 요청을 보낼 때 접속 목적을 알리는 Method 에 대한 권한을 부여함

-Method 종류 : GET, POST, HEAD, OPTIONS, PUT, DELETE, TRACE, CONNECT

요청 필터링 설정

-특정 URL에 대한 필터링, 특정 파일 확장자에 대한 필터링, HTTP 헤더의 길이 제한, HTTP의 특정 동사에 대한 필터링 등을 통해 프로토콜 및 콘텐츠 동작을 제한

레지스트리 보안

레지스트리 편집 제한

-일반 사용자는 UAC(User, account Control)에 의해 레지스트리 편집기를 사용 못하게함

-시작 – gpedit.msc (엔터) > 로컬 그룹 정책 편집기 > 로컬 컴퓨터 정책 > 사용자 구성 > 관리 템플릿 > 시스템 > 레지스트리 편집 도구 사용안함 (더블클릭)

현재 레지스트리 상태를 백업하여 복원 가능하게 함

-레지스트리 편집기(regedit) > 파일 > 내보내기

이벤트 뷰어 활용

Windows에서 제공하는 시스템 로그를 찾고 관리하여 시스템 상태를 모니터링하고 문제를 해결하는데 필요한 도구

윈도우 시스템 이벤트 로그 종류

-응용프로그램 로그 : SW 개발자가 이벤트를 남기는 형태로 기록됨.

-보안 로그 : 로그온 시도, 파일 생성/삭제 등 자원 사용 이벤트 (감사정책에 따름)

-시스템로그 : 시스템 구성 요소가 기록하는 것(예: 부팅시 드라이버 로드 안 될 경우)

-디렉터리로그 : active directory 서비스 문제(예: 서버와 글로벌 카탈로그 사이 연결 문제)

-파일 복제 서비스 로그 : 도메인 컨트롤러가 시스템 볼륨 변경 업데이트 동안 파일 복제 실패 같은 WINDOWS 파일 복제시 로그

-DNS 서버 로그: window dns 서비스 이벤트

7. Windows 네트워크 서비스

윈도우 네트워크 방식

Workgroup 방식

-인증 및 보안 정책을 시스템 별로 개별 관리

-소규모 네트워크 적합

-보안은 SAM DB에 의해 관리됨

-Active Directory를 구축 안하며, 다른 시스템에 접근시 사용자 계정과 암호 필요

Domain 방식

-모든 계정의 인증과 보안 정책을 특정 서버에서 통합 관리

-지정된 권한대로 다른 컴퓨터에 사용자가 접근

-Active directory가 구축된 상태에서만 사용가능한 방식

액티브 디렉토리 (Active Directory)

사용자, 사용자 그룹, 네트웍 데이터 등을 하나로 통합 관리하는 새로운 인터페이스

목적 : 윈도우 기반의 컴퓨터들을 위한 인증 서비스를 제공