어렵당

1. 윈도우 보안 본문

학습/알기사 정보보안기사 정리

1. 윈도우 보안

It는어려워 2024. 10. 3. 15:01

윈도우 구성요소(LSA, SAM, SRM)

 

1. LSA (Local Security Authority)

: 모든 계정의 로그인에 대한 검증시스템 자원(파일 등)에 대한 접근 권한을 검사(로컬 및 원격 로그인 포함)

: 계정명과 SID(Security ID - 계정을 확인하기 위한 고유한 식별번호)를 매칭하며 SRM이 생성한 감사 로그를 기록

: NT 보안의 중심 서비스이며 보안 서브시스템이라 불림

 

2. SAM (Security Account Manager)

: 사용자/그룹 계정 정보에 대한 데이터베이스를 관리

: 사용자 로그인 정보 SAM 파일에 저장된 사용자 패스워드 정보비교해 인증 여부를 결정

: SAM 파일은 사용자, 그룹 계정 및 암호화된 패스워드 정보를 저장하고 있는 데이터베이스로 윈도우 설치 디렉터리(c:\Windows\System32\config\SAM)에 있다

: SAM 파일에는 Administrators 및 System 외에는 접근을 제한해야한다(파일 속성-보안에서 설정)

: SID정보는 SAM파일에 저장되어있다

 

* SID 구조

예시)  S-1-5-21-4243222100-3717543254-465461588-500

- S-1 : 윈도우 시스템을 의미

- 5-21 : 시스템이 도메인 컨트롤러이거나 단독 시스템임을 의미

- 4243222100-3717543254-465461588 : 시스템의 고유한 식별자

(동일한 컴퓨터에서 윈도우를 재설치해도 동일한 값을 가지지 않음)

- 500 : 사용자 식별자(ID)

500: 관리자(Administrator) 식별자

501 : 게스트(Guest) 식별자

1000이상 : 일반 사용자 식별자

 

* 윈도우 관리명령 콘솔(wmic)에서 SID 확인가능

: 실행 > wmic > useraccount list brief

 

3. SRM (Security Reference Monitor)

: 인증된 사용자에게 SID를 부여

: SID를 기반으로 하여 파일이나 디렉터리에 대한 접근을 허용할지 여부를 결정하고 이에 대한 감사 메시지를 생성

 

* 윈도우 인증과정

1. 로그인 창(Winlogon)에서 ID/PW 입력

( 단순히 ID/PW를 전달하면 정보 노출과 재사용 공격에 취약하기 때문에 윈도우는 Challenge & Response 방식의 인증을 사용한다)

2. LSA 서브 시스템

3. (로컬 인증 시)NTLM모듈 / (도메인 인증 시) 커버로스 프로토콜

4. (로컬 인증 시)SAM에서 정보 확인 후 토큰 발행 / (도메인 인증 시) 도메인 컨트롤러에서 정보 확인 후 토큰 발행

5. SRM이 SID부여

 

* Lan Manager : 네트워크를 통한 파일 공유/ 프린터 공유 등과 같은 작업 시 인증을 담당하는 서비스

LM(취약함) -> NTLM 해시(취약함) -> NTLMv2 해시(현재까지 복잡도가 충분해 크래킹이 어려워서 사용권장)

 

-------------------------------------

패스워드 크래킹

- 사전 대입 공격(Dictionary Attack)

: 자주 쓰는 비밀번호를 사전파일로 만들어 대입하는 공격

- 무작위 대입 공격(Brute Force Attack)

: 비밀번호로 사용할수 있는 문자열의 범위를 정하고 생성가능한 모든 비밀번호를 만들어서 대입하는 공격

- 혼합 공격(Hybrid Attack)

: 사전 대입 공격(Dictionary Attack)+ 무작위 대입 공격(Brute Force Attack)

: 사전에 있는 비밀번호에 숫자나 문자를 무작위로 추가하여 대입하는 공격

- 레인보우 테이블 공격

: 함수를 이용해서 패스워드를 여러 형태로 생성하고 그 패스워드를 해시화하여 체인을 만들어놓은 테이블. 이 테이블을 이용하여 일치하는 해시값을 찾아서 패스워드를 찾아내는 방식

: 솔트(Salt)를 사용하면 효과적으로 공격에 대응할 수 있다

 

-------------------------------------

Administrator 계정 변경

: 기본 관리자 계정인 Administrator은 잘 알려져 있기 때문에 이름을 변경하거나 강화된 비밀번호를 적용해야 한다

 

계정명 확인 방법

- 제어판 > 관리 도구 > 컴퓨터 관리 > 로컬 사용자 및 그룹 > 사용자> 계정명 확인

- 컴퓨터 관리 실행 명령어 : compmgmt.msc

- 로컬 사용자 및 그룹 실행 명령어 : lusrmgr.msc

 

계정명 변경 방법

- 제어판 > 관리 도구 > 로컬 보안 정책 > 로컬 정책 > 보안 옵션 > 계정: Administrator 계정 이름 바꾸기

- 로컬 보안 정책 실행 명령어 : secpol.msc

 

 

Guest 계정 비활성화

: 시스템에 임시로 접근해야 하는 사용자를 위한 계정: 익명으로 액세스하여 정보유출이 가능하여 비활성화 조치가 필요하다(Built-in 계정으로 삭제는 불가능)

 

비활성화 방법

- 제어판 > 관리 도구 > 컴퓨터 관리 > 로컬 사용자 및 그룹 > 사용자> Guest 속성 > '계정 사용 안 함' 적용

- 비활성화 명령어(cmd) : net user Guest /active:no

 

 

불필요한 계정 제거

: 불필요 계정은 삭제 또는 비활성화

 

제거 / 비활성화 방법

- 제어판 > 관리 도구 > 컴퓨터 관리 > 로컬 사용자 및 그룹 > 사용자> 우클릭하여 '삭제' 또는 '계정 사용 안 함' 적용

 

 

관리자 그룹(Administrators) 최소한의 사용자 포함

: 일반 사용자를 관리자 그룹에 포함시킬경우 과도한 권한에 따른 피해가 발생할 수 있다

: 관리 권한 계정과 일반 권한 계정을 분리하여 운영하는것이 권고되고 시스템 관리자는 1명 이하로 유지하도록 하고 부득이하게 2명 이상의 관리자를 유지해야 할 때는 관리자 그룹에 최소한의 사용자만 포함시킨다

 

관리자 그룹 불필요 계정 제거 방법

- 제어판 > 관리 도구 > 컴퓨터 관리 > 로컬 사용자 및 그룹 > 그룹 > Administrators 속성 > 불필요한 계정 선택 후 제거

 

 

패스워드 정책 설정

위치 : 제어판 > 관리 도구 > 로컬 보안 정책 > 보안 설정 > 계정 설정 > 암호 정책

권장설정 :

패스워드 복잡성 설정

암호는 복잡성을 만족해야 함 = 사용

최근 패스워드(암호) 기억 설정 = 4개 이상 권장

최대 암호 사용 기간 속성 : 90일 (계정 속성의 '암호 사용 기간 제한 없음' 해제 필요)

패스워드 최소 사용 기간 설정=1 (최소 1일)

최소 암호 길이 속성 : 8문자

해독 가능한 암호화 사용 설정 : 사용안함

 

 

계정 잠금 정책

위치 : 제어판 > 관리 도구 > 로컬 보안 정책 > 보안 설정 > 계정 설정 > 계정 잠금 정책

권장설정 :

계정 잠금 기간 : 60분

계정 잠금 임계값 : 5번의 잘못된 로그온 시도(Administrator 계정은 잠기지 않음)

다음 시간 후 계정 잠금 수를 원래대로 설정 : 60분

 

-------------------------------------

하드디스크 기본 공유 제거

- 하드디스크 기본 공유 : C$, D$ 등

- 원격 관리 및 IPC 기본 공유 : ADMIN$, IPC$

($는 숨김공유)

 

* 하드디스크 기본 공유인 C$, D$ 등은 제거해야 한다

* 원격 관리/IPC 기본 공유는 관리상의 필요한 공유로 제거 시 문제가 발생될수 있다

 

공유 설정 확인

- 제어판 > 관리 도구 > 컴퓨터 관리 > 공유 폴더 > 공유

- 공유폴더 확인 실행 명령어 : fsmgmt.msc

- cmd 확인 : net share

 

공유 제거 방법

- 제어판 > 관리 도구 > 컴퓨터 관리 > 공유 폴더 > 공유 > 공유폴더 우클릭 후 '공유 중지'

- cmd 제거 명령어 : net share C$ /delete

 

* 영구적으로 제거된 상태를 유지하기 위해서는 레지스트리 값 수정필요

: HKEY_LOCAL_MACHINE\SYSTEM\CUrrentControlSet\Services\LanmanServer\Parameters키 하위 AutoShareServer(REG_DWORD 타입) 생성 후 0으로 설정

 

 

 공유 권한 및 사용자 그룹 설정

: 기본 공유(C$, Admin$, IPC$..)를 제외한 공유폴더의 사용권한에 Everyone이 포함되어 있으면 익명 사용자 접근이 가능하여 정보유출 및 악성코드 감염 우려가 있다.(파일 공유 취약점)

: Everyone 권한이 있을경우 제거 하고 필요한 계정/그룹에만 권한을 부여한다

 

널 세션(Null Session) 취약점

: 윈도우가 설치된 네트워크의 다른 원격 컴퓨터에 사용자명과 패스워드를 null(빈값)로 해서 접속할 수 있는 취약점

대응방안 : 익명세션 사용 제한 설정(레지스트리 RestrictAnonymous 값을 2로 설정)

 

불필요한 서비스 제거 

서비스 확인

- 제어판 > 관리 도구 > 서비스 

- 서비스 실행 명령어 : services.msc

 

불필요한 서비스 제거 방법

- 제어판 > 관리 도구 > 서비스 > 불필요한 서비스 속성 > '중지' > 시작 유형 '사용 안 함' 변경 > 확인

 

-------------------------------------

NetBIOS 바인딩 서비스 구동 점검

 

NetBIOS

: 동일 내트워크 내에 있는 호스트 통신에 사용되었으나 TCP/IP와 바인딩하여 서로 다른 네트워크에 있는 호스트 간 통신도 지원하도록 확정되었다.

 

SMB

: 네트워크상에서 호스트 간 파일/디렉터리/프린트 등을 공유할 수 있도록 해주는 프로토콜

: 자원을 쉽게 공유할 수 있는 장점으로 널리 사용되고 있지만 동시에 컨피커 웜 바이러스, 워너크라이 랜섬웨어, 워너마인 암호화폐 채굴 악성코드 등에 악용된 사례가 많다

 

TCP/135 (NetBIOS 서비스)

UDP/137 (NetBIOS 서비스)

UDP/138 (NetBIOS 서비스)

TCP/139 (NetBIOS 서비스)

TCP/UDP/445 (NetBIOS를 이용하지 않고 SMB에서 연결 지원하는 서비스)

 

* NetBios TCP/IP 바인딩이 활성화되어 있으면 인터넷을 통해 외부 공격자가 윈도우 시스템 네트워크 공유자원에 접근할 수 있는 취약점이 발생, NetBIOS와 TCP/IP간 바인딩을 제거하는 것이 필요하다

 

NetBIOS와 TCP/IP간 바인딩을 제거하는 방법

- 네트워크 연결(ncpa.cpl) -> 이더넷 속성 -> Internet Protocol Version 4(TCP/IPv4) 속성 -> 고급 -> WINS -> NetBIOS 설정 -> 'NetBIOS over TCP/IP 사용 안 함' 설정

 

-------------------------------------

감사 정책 설정

: 어떤 로그를 남길지를 정의한 규칙

: 법적 요구 사항과 조직의 정책에 따라 필요한 로그를 남기도록 설정

 

설정 위치

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

 

* 감사 항목 및 권장 값

 

-------------------------------------

윈도우 PE 파일

: 실행 파일이란 명령에 따라 지시된 작업을 수행하도록 하는 파일을 말하며 실행파일 포맷에는 PE(윈도우), ELF(유닉스/리눅스) 등이 있다

: PE 파일 유형에는 EXE, SCR, DLL, OCX, SYS, OBJ등이 있다

- PE 파일 구조

Section Header는 각 세션 데이터를 메모리에 로딩하고 속성을 설정하는데 필요한 정보를 담고있다

Section은 PE 파일이 가상 주소 공간에 로드된 이후 프로그램 실행코드, 데이터, 리소스(커서,아이콘,이미지) 등 프로그램 실행에 필요한 정보를 배치한 영역을 말한다

 

-------------------------------------

윈도우 레지스트리(Registry)

: 소프트웨어 정보, 환경설정, 임시 저장값 등 시스템의 모든 정보를 담고있다

* 하이브 파일 : 레지스트리 정보를 저장하고 있는 물리적인 파일, 오프라인 상태인 비활성 시스템에서 제리스트리를 분석할 때 활용한다.

 

- HKEY_CLASSED_ROOT

: 파일 확장자와 확장자에 대한 연결 프로그램 정보

 

- HKEY_CURRENT_USER

: 현재 로그인중인 사용자의 환경설정/프로파일 정보

 

- HKEY_LOCAL_MACHINE

: 시스템 전체에 적용되는 하드웨어와 응용프로그램의 설정 데이터를 저장

* 시작 프로그램 키 : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

 

- HKEY_USERS

: 모든 사용자에 대해서 각 사용자별로 환경설정/프로파일 정보를 저장

 

- HKEY_CURRENT_CONFIG

: 윈도우의 하드웨어 프로필 정보

 

-------------------------------------

NTFS 파일시스템 구조

 

 

마스터 부트 레코드(MBR:Master Boot Record)

: 파티션 생성 시 물리적 디스크의 첫번째 섹터에 위치하는 512byte영역

: 운영체제가 부팅될 때 BIOS에 의해 POST(하드웨어 셀프 체크) 과정을 마친 후 MBR의 부트 코드를 호출하고 부팅 가능한 파티션을 찾아 해당 파티션 VBR의 부트 코드를 호출하여 운영체제가 기동하게 된다

 

* VBR(Volume Boot Record) : 운영체제 부팅을 위한 정보를 담고 있다(마지막 섹터에 VBR BK 백업본을 가지고 있다)

 

마스터 파일 테이블(MFT:Master File Table)

: 모든 파일과 디렉터리에 대한 정보를 담고 있는 테이블(리눅스 i-node리스트와 유사)

: 파일 위치, 시간정보(MAC Time), 크기, 파일 이름 등 다양한 속성 정보들로 구성

 

* Data 영역 : 파일의 실제 내용이 저장되는 영역

 

-------------------------------------

보안 운영체제 (Secure OS)

: 보안커널을 추가로 이식한 운영체제

: 핵심 구성요소로는 보안커널과 참조 모니터가 있다

 

보안 커널(Security Kernel) : 주체, 객체 간의 모든 접근과 기능을 중재하는 보안 절차를 구현한 하드웨어,펌웨어,소프트웨어 등을 말한다

참조 모니터(Reference Monitor) : 주체와 객체 사이의 정보 흐름을 감시하는 보안 모듈로 접근권한을 정의한 보안 커널 데이터베이스(SKDB:Security Kernel Database)를 참조하여 보안 정책을 시행한다

 

-------------------------------------

TPM(Trusted Platform Module) : 하드웨어와 소프트웨어, 펌웨어 인증을 검사하는 전용 칩을 말한다. TPM은 승인없는 변경을 감지했을 경우 PC는 제한된 모드로 부팅되어 잠재적인 공격자의 악의적인 행위를 차단한다

 

비트로커(Bitlocker) : 노트북 분실, 디스크 분리 후 중요 데이터 탈취 등의 이유로 기밀자료가 유출될 상황을 대비하여 윈도우에서 자체적으로 제공하는 디스크 암호화 기술

 

-------------------------------------

이벤트 뷰어

: 윈도우 OS에서 로그를 조회하고 관리하는 도구

이벤트 뷰어 명령어 : eventvwr.msc

 

* 응용프로그램 로그파일 : application.evtx

* 보안 로그파일 : security.evtx

* 시스템 로그파일 : system.evtx

 

 

'학습 > 알기사 정보보안기사 정리' 카테고리의 다른 글

6. 애플리케이션 보안  (0) 2024.10.13
5. 네트워크 보안  (1) 2024.10.05
2. 리눅스/유닉스 기본  (0) 2024.10.04
4. 시스템 보안  (1) 2024.10.04
3. 리눅스/유닉스 로그파일  (3) 2024.10.03