어렵당
1. 윈도우 보안 본문
윈도우 구성요소(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 |