1. 윈도우 기본 학습
(1) 윈도우 인증 과정
1) 윈도우 인증 구성요소
- LSA : Local Security Authority
시스템 보안 정책 강화를 위한 윈도우 프로세스 (= 보안 서브시스템 Security Subsystem)
모든 계정 로그인 검증 (로컬 및 원격 로그인에 대한 검증 수행) / 시스템 자원 접근 권한 검사 / SRM이 생성한 감사 로그 기록 (계정명과 SID(Security ID)를 매칭하여) / NT 보안의 중심 서비스
- SAM : Security Account Manager
사용자, 그룹 계정 및 암호화된 패스워드정보를 저장하는 DB(SAM 파일) 관리
사용자/그룹 계정 정보 DB 관리 / 사용자 로그인 정보 (<- 비교 ->) SAM 파일의 사용자 패스워드 정보 => 인증 여부 결정 /
- SRM : Service Reference Monitor
인증된 사용자에게 SID(Security ID)를 부여
SID를 기반으로 파일 접근 허용 여부 결정 / 감사 메시지 생성 (LSA가 기록)
2) 로컬 인증
(1) (로그인 프로세스 시작) 윈도우 부팅 -> 로그인 창(Winlogon)화면 -> 아이디 & 패스워드 입력 -> LSA 서브시스템이 인증 정보 받음 -> NTLM 모듈에 넘김 -> SAM이 로그인 처리 => 접근 토큰 전달 (로그인 프로세스 완료)
Winlogon : 로그온 시 사용자 프로필을 로드, 화면 보호기 실행 중일 때 컴퓨터를 잠그는 역할
LSA : 사용자 로그인 검증
NTLM : NT Lan Manager - 윈도우 NT 인증 프로토콜
* NT : 마이크로소프트가 개발한 운영체제의 커널
* NTLM 인증 흐름
Negotiate_Message (클라이언트 이름, 사용할 NTLM 버전, 해싱 방식 등)
Challenge_Message (서버가 임의로 생성한 Challenge 값 전달)
Authenticate_Message (암호를 기반으로 challenge 값을 해시 값으로 만들어 전달)
유저 응답 유효한지 확인 후 인증 완료
3) 원격(도메인) 인증
(1) 윈도우 부팅 -> 로그인 창(Winlogon 화면) -> 아이디 패스워드 입력 -> LSA 서브시스템이 인증 정보 받음 -> 로컬인증용인지 도메인 인증용인지 확인 => (도메인 인증임을 확인) -> 커버로스(kerberos) 프로토콜로 "도메인 컨트롤러"에 인증 요청
(2) 도메인 컨트롤러 : 인증 정보 확인, 접속하고자 하는 사용자에게 접근 토큰 부여 -> 해당 권한으로 프로세스 진행
* 도메인 : 가장 기본 단위, AD가 설치된 윈도우 서버가 하나의 도메인
* 윈도우 서버 도메인 (Windows Server Domain) : 윈도우 운영 체제가 설치된 컴퓨터들이 공용 디렉터리 DB를 공유하며 네트워크를 통해 참가하는 논리적 그룹, 서버를 중심으로 묶여 있음, 중앙 서버에서 설정한 인증 정보 적용
* 도메인 컨트롤러 : 해당 도메인에 위치하여 도메인안의 여러 리소스를 사용하고자하는 사용자에게 이름, 암호를 받아 도메인 안에서 맘껏 돌아다니도록 해주는 인증 서비스
* Directory Service : 중앙 서버에 공통 DB를 두고 사용자 인증 및 권한 부여해 데이터를 사용하도록 하는 서비스
- 한 컴퓨터가 서버가 되어 AD를 설치하고 하나의 도메인이 된다. 다른 PC들을 클라이언트로써 연결 시키고 DNS 서버를 서버 컴퓨터의 IP로 설치한다. 본인을 서버에 연결시키는 것.
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=9674qzq&logNo=221468035149
[Windows Server] (1)Active Directory 설치 및 유저 등록하기
<환경> Windows 10(HOST PC) VirtualBox Windows server 2016(GUEST PC/AD Serv...
blog.naver.com
2. 액티브 디렉토리, 도메인 컨트롤러(DC), 글로벌 카탈로그(GC), 그룹
3. 액티브 디렉토리 1) 액티브 디렉토리의 이해 - 윈도우 서버에서 사용자, 그룹 등을 포함한 여러 관리 정보들 쉽게 찾을 수 있도록 모아두는 전반적 체계 - 여러 자원을 일괄적으로 관리 가능 -
haker.tistory.com
액티브 디렉토리
1) 액티브 디렉토리의 이해
- 윈도우 서버에서 사용자, 그룹 등을 포함한 여러 관리 정보들 쉽게 찾을 수 있도록 모아두는 전반적 체계
- 여러 자원을 일괄적으로 관리 가능
- 윈도우 운영체제가 설치된 클라이언트들을 묶어 관리하기 편리
- 도메인(Domain) 단위로 컴퓨터 자원 관리 가능
- 규모가 작은 기업 : 네트워크 패킷 증가, 속도 감소 등 문제 발생 가능
- 충분한 학습 후 도입 필요
2) AD 장점
- 여러 컴퓨터를 하나로 묶어 통합 관리
- 사용자 계정 인증 관리 중앙 처리 -> 보안상 안정
- 그룹 정책으로 각 컴퓨터 중앙 관리
- 관리 위임, 디렉터리 정보 복제, DNS와의 통합 관리 등
3) 액티브 디렉터리 (AD)
* AD는 기본적으로 AD DS를 지칭
Active Directory (AD) | 설명 |
AD DS (Domain Services) | AD 구성시 해당 역할을 추가한 후 설정 |
AD FS (Federation Services - Federatin = 연방, 연합) | Domain Federation 및 웹 기반 단일 로그인 관리 - 사용자 계정과 응용 프로그램이 완전히 다른 네트워크나 조직에 있을 때 액세스 가능하도록 웹 기반 클라이언트를 제공하는 ID 액세스 솔루션 (SSO 제공) * SSO (Single Sign On) : 한번의 로그인으로 다른 시스템 및 사이트에서 사용자 정보 관리 수행 |
AD LDS (AD Lightweight Directory Services) | LDAP 디렉토리 방식 구현 |
AD RMS (AD Rights Management Services) | AD 권한 관리 및 정보보호 |
AD CS (AD Certificate Services) | 인증서 및 공개키 관리 |
4) Workgroup VS Active Directory
Workgroup | Active Directory | |
인증 | 각 컴퓨터마다 계정 존재, 권한 부여 받아야 함 | DC에서 한번 권한을 설정해두면 GC를 통해 하나의 계쩡으로 사용 가능 |
자원 관리 | 각 컴퓨터에 직접 가서 로그인 후 자원 관리 | 직접 컴퓨터에 가지 않고 GC를 통해 관리 가능 |
* GC : Global Catalog : 도메인 내 개체 정보 모음 DB
5) 도메인 (Domain)
- AD의 기본 단위, AD의 영향이 미치는 범위
- 관리를 위해 범위를 구분 짓는 역할
- 자식 도메인에 구성된 모든 기능, 부모 도메인이 접근 가능
6) 도메인 컨트롤러 (DC, Domain Controller)
- 도메인 관리 서버
- 도메인 내 공통 정보 보유
- 도메인 당 최소 한 개 이상 구성
7) OU (Organization Unit) 조직 단위
- 도메인 내 AD에 존재하는 개체를 그룹으로 관리하는 단위 (도메인 내 폴더)
- 사용자 계정, 서비스 계정 또는 컴퓨터 계정과 같은 개체를 논리적으로 그룹화
- 조직 구성 단위 별로 그룹 정책 설정, 컴퓨터 관리
8) 트러스트 관계 (Trust Relationship)
- 서로 다른 도메인으로 AD 확장할 때의 신뢰 관계
- 단방향, 양방향 연결 가능
- 전이적 및 비전이적 설정 가능
- 부모 및 자식 트러스트, 트리-루트 트러스트, 프리스트 트러스트, 영역 트러스트, 외부 트러스트
* 트리 : 도메인의 집합
* 포리스트 : 하나 이상의 도메인을 그룹화하는데 사용되는 논리적 구문
(도메인 < 트리 < 포리스트)
9) 글로벌 카탈로그 (GC, Global Catalog)
- 포리스트 내 모든 도메인에 있는 개체에 대한 정보를 모아 놓은 DB
- GC를 이용해 자주 사용하는 개체의 사본을 저장하여 효율적인 검색 가능
10) 읽기 전용 도메인 컨트롤러 (RODC, Read Only Domain, Controller)
- 데이터 추가 및 변경 불가 도메인 컨트롤러
- 주 DC에서 데이터를 받아 사용
- 본사와 멀리 떨어진 곳에서 DC 부하를 분담하기 위해 사용
11) 그룹의 종류
(1) 배포 그룹 : 권한 부여용으로는 사용 불가, but 이메일 배포 가능
(2) 보안 그룹 : 접근 권한 및 사용자 권한 부여 목적
그룹 범위 | 설명 |
Domain Local Group | 조인 대상 : 포리스트 내 모든 사용자 및 컴퓨터 공유 범위 : 해당 도메인 내 자원 |
Global Group | 조인 대상 : 해당 도메인 내의 사용자 및 컴퓨터 공유 범위 : 포르스트 내 모든 자원 |
Universal Group | 조인 대상 : 포리스트 내 모든 사용자 및 컴퓨터 공유 범위 : 포리스트 내 모든 자원 도메인 로컬 + 글로벌 그룹 형태 |
12) 그룹의 편성
(1) 그룹 전략 : 그룹을 편성하여 업무 진행에 효율성 증대
(2) 명칭
- A : 사용자 계정
- DL : 도메인 로컬 그룹
- G : 글로벌 그룹
- U : 유니버설 그룹
- P : 권한
- L : 로컬 그룹 (DL과 같은 의미로 이전 버전에서 사용)
(3) 권장 그룹 : AGP, ADLP, AGLP = AGDLP, AGUDLP
13) OU (Origanization Unit) vs Group
- OU : 정책 관리용
- 그룹 : 공유 및 권한 부여용
4) SAM 파일 접근 통제 설정 (시스템 취약점 분석 및 평가 항목)
* LSA : lsass.exe : 계정 로그인 검증, NT 보안 중심 서비스
* SAM : 사용자, 그룹 계정 및 암호화된 PW 저장 파일(SAM 파일) 관리
* SRM : 사용자 SID 부여, 파일 접근 허용 여부 결정
SAM을 통해 패스워드 관리, LSA를 통한 인증 제공 등 중요한 파일
- 접근 통제 필요
- 패스퉈드 공격 시도에 따른 정보 노출 위험 존재
- Administrator 및 System 외에는 접근 제한
- everyone과 같이 불필요한 그룹 및 계정은 권한 제거
(2) 윈도우 보안 식별자(SID : Security Identifier)
1) 개요
SID(보안 식별자) : 사용자, 그룹에 부여되는 고유한 식별번호, SAM 파일에 저장됨
사용자 로그인 -> 접근 토큰(액세스 토큰) : 로그인 사용자와 사용자가 속한 모든 작업 그룹의 SID 정보 담김
-> 접근 토큰 사본이 사용자가 시작한 모든 프로세스에 할당
2) SID 구조
윈도우 관리명령 콘솔 (WMIC : Windows Management Instruction Console)로 확인 가능
실행 > wmic > useraccount list brief 명령 실행
WMI (Windows Management Instrumentation) : Windows 드라이버 모델의 확장 집합
WMIC.exe : WMI (Windows Management Instrumentation)에 액세스하는 데 사용되는 console 유틸리티
WMIC 명령어로 시스템 정보를 확인할 수 있다.
걔정별 SID 구조
계 정 | SID |
Administrator | S-1-5-21-[10자]-[10자]-[10자]-500 |
Guest | S-1-5-21-[ 30자 ]-501 |
일반 사용자 | S-1-5-21-[ 30자 ]-1001 |
S-1 : 윈도우 시스템
5-21 : 시스템이 도메인 컨트롤러 이거나 단독 시스템임
[30자] : 시스템 고유 식별자, 컴퓨터에 깔리는 윈도우 별로 다름 (동일 컴퓨터에 다시 깔아도 동일한 값 X)
사용자 식별자 (ID)
- 500 : 관리자 / 501 : 게스트 / 1000 이상 : 일반사용자
+ WDAGUtilityAccount (Windows Defender Application Guard 유틸리티계정) : Windows Defender Application Guard에서 관리하고 사용하는 시스템 계정
마이크로소프트에 따르면 WDAG가 활성화되고 사용자가 PC에 대한 공격을 실행할 수 있는 감염된 사이트를 방문하면 해당 사이트는 가상화를 기반으로 별도의 컨테이너에서 열립니다. 취약한 웹사이트가 공격을 하면 가상화 기반의 컨테이너에서 열려 있기 때문에 이러한 공격은 성공하지 못합니다.