윈도우 보안
- 윈도우 인증 프로세스
윈도우 인증 프로세스
전체 요약: winlogon은 내부적으로 msgina.dll 이라는 GINA프로그램을 실행시킨 후, 검증을 위해서 아이디를 LSA에 전달한다. NTLM값과 SAM에 저장된 NTLM 값을 비교하여 같으면 SRM에 권한(토큰)을 부여
1) Winlogon
윈도우 로그인 프로세스, GINA 실행
2) GINA (msgina.dll)
Winlogon은 msgina.dll을 로딩하여 사용자가 입력한 계정과 암호를 LSA에 전달 역할
3) LSA (Local Security Authority) (lsas.exe)
로컬 및 원격 계정의 로그인에 대한 검증을 수행하고 시스템 자원 및 파일에 접근 권한을 검사한다.
계정명과 SID를 매칭하여 SRM이 생성한 감사로그를 기록한다.
NT보안의 중심요소, 보안 서브시스템이라고 불린다.
* Local 인증(로컬 인증) :
Winlogon 에서 받은 인증정보(ID, PW)를 LSA서브시스템이 NTLM 모듈로 넘김
SAM이 받아서 로그인 처리. 로그인 성공 시 토큰 부여하고 해당 권한으로 프로세스 실행
* Domain 인증(원격 인증) :
Winlogon 에서 받은 인증정보(ID, PW)를 LSA서브시스템이 인증정보로 로컬인증인지 도메인인증인지 확인 후 도메인 인증인 경우 Kerberos 프로토콜을 이용하여 도메인 컨트롤러(Domain Controller, DC) 로 인증 요청
도메인 컨트롤러는 인증 정보 확인하고 접근 토큰 부여하고 해당 권한으로 프로세스 실행
4) SAM (Security Account Manager)
사용자, 그룹 계정 정보에 대한 데이터베이스(sam파일)를 관리한다. (%systemroot%/system32/config/sam)
* sam파일 ; 리눅스에서 /etc/shadow 파일의 역할
사용자의 로그인 정보와 SAM의 로그인 정보를 비교해 인증 여부를 결정하고 인가되면 SRM에게 알린다.
공격자로부터 SAM 파일에 대한 패스워드 공격 시도에 따른 정보 노출의 위험이 있음
(SAM 파일 보안설정)
SAM 파일 > 속성 > 보안 > 그룹 또는 사용자 이름 > Administrators 및 System 그룹 외에는 SAM 파일에 대한 접근을 제한
불필요한 그룹 및 계정에 대해서 권한 제거
5) SRM (Security Reference Manager)
SAM을 통해 인가되면 사용자에게 SID를 부여한다.
SID에 기반하여 파일 및 디렉터리 접근 권한을 결정하고 감사 메시지를 생성한다.
6) NTLM(NT LAN Manager)
사용자 계정과 패스워드 인증을 위해 서버나 도메인 컨드롤러에 증명하는 Challenge & Response 기반의 인증 프로토콜이다.
(Challenge/Response 방식의 인증 구조)
A. 인증 요청: 인증하고자 하는 사용자가 윈도우 시스템에 인증 요청
B. Challenge 값 생성 및 전송: 인증 요청을 받은 서버는 특정 규칙 또는 랜덤한 Challenge 값을 생성하여 사용자에게 전달
C. Response 값 생성 및 전송: 사용자는 전달받은 Challenge 값과 사용자 패스워드 정보를 이용해 Response 값을 생성하여 서버에 전달
D. Response 값 확인 및 인증 성공: 사용자가 전달한 Response 값을 확인하여 인증 성공 여부를 전달
7) Kerberos
Trust-Third-Party Scheme 인증 방식. 표준 프로토콜로 네트워크에서 클라이언트와 서버를 상호 인증하는 방식.
세 가지 주 요소는 KDC(Key Distribution Center), 클라이언트, 접근할 서비스를 가지는 서버이다.
KDC는 도메인 컨트롤러의 일부로서 설치되며 다음 두 가지 기능을 수행한다. AS(Authentication Service), TGS(Ticket-Granting Service)
윈도우 실행 프로세스 중 인증과 관련된 것
lsass.exe :
(Local Security Authority Subsystem Service) 로그인 검사, 비밀번호 변경 관리, 액세스 토큰 생성, windows 보안 메커니즘을 핸들링하는 프로세스이다. Winlogon.exe 서비스에 대한 사용자 인증을 담당한다.
출처:
https://yjshin.tistory.com/entry/시스템-보안-LSA-SAM-NTLM-SRM?category=714970 [YJUN IT BLOG]
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=wnsgmlsnsk12&logNo=220306581303