윈도우 인증 구성 요소
① LSA (Local Security Authority)
- 모든 계정의 로그인에 대한 검증 및 시스템 자원에 대한 접근 권한을 검사
- 계정명과 SID(Security ID)를 매칭하여 SRM이 생성한 감사 로그를 기록
② SAM (Security Account Manager)
- 사용자, 그룹 계정 및 암호화된 패스워드 정보를 저장하고 있는 데이터베이스
③ SRM (Security Reference Monitor)
- 인증된 사용자에게 SID(Security ID) 부여
- SID를 기반으로 시스템 자원에 대한 접근을 허용할지 여부 결정 후 감사 메시지 생성
로컬 인증
Winlogon 화면(로그인 창)에서 아이디와 패스워드를 입력 ➜ LSA 서브시스템이 인증 정보를 받아 로컬 인증용이면 NTLM 모듈에 넘긴 후 SAM이 받아 로그인 처리를 한다.
원격(도메인) 인증
Winlogon 화면에서 아이디와 패스워드를 입력 ➜ LSA 서브시스템이 인증 정보를 받아 도메인 인증용이면 커버로스(Kerberos)프로토콜을 이용해 도메인 컨트롤러에 인증을 요청한다.
도메인 컨트롤러(DC)는 인증 정보를 확인하여 사용자에게 접근 토큰을 부여한다.
💡 시스템 취약점 분석 및 평가 가이드
SAM 파일은 사용자와 그룹 계정 및 패스워드 정보를 관리하는 중요한 파일로 적절한 접근통제가 필요하다. 따라서 불필요한 그룹 및 계정에 대해서는 권한을 제거한다.
윈도우 보안 식별자 SID
SID(Security ID)는 윈도우의 각 식별자나 그룹에 부여되는 고유한 식별번호이다. 사용자가 인증에 성공하면 접근 토큰이 생성되며, 로그인한 사용자와 그 사용자가 속한 모든 작업 그룹들에 관한 보안 식별자(SID) 정보가 담겨있다.
사용자 계정 및 패스워드 정보를 담고 있는 SAM 파일에 SID 정보가 저장되어있다.
SID : 유닉스와 리눅스에서 UID와 GID에 해당하는 값
SID 구조
계정 | SID |
---|---|
Administraator | S-1-5-21-4243233100-3243418284-4122344588-500 |
Guest | S-1-5-21-4243233100-3243418284-4122344588-501 |
일반 사용자 | S-1-5-21-4243233100-3243418284-4122344588-1001 |
S-1
: 윈도우 시스템을 의미5-21
: 시스템이 도메인 컨트롤러이거나 단독 시스템임을 의미4243233100-3243418284-4122344588
: 해당 시스템만의 고유 식별자- ✨
500
: 관리자 식별자,501
: Guest 식별자,1000 이상
: 일반 사용자 식별자
윈도우 인증 구조
단순히 아이디/패스워드 인증 방식은 정보 노출 및 패스워드 재전송 공격에 매우 취약하므로 높은 수준의 인증이 필요하다.
윈도우는 Challenge & Response 방식의 인증 구조를 사용한다.
① 사용자가 윈도우 시스템에 인증 요청
② 서버는 랜덤한 Challenge 값을 생성하여 사용자에게 전달
③ 사용자는 전달받은 Challenge 값과 패스워드 정보를 이용해 Response 값을 생성하여 서버에게 전달
④ 사용자가 전달한 Response 값을 확인하여 인증 성공시, 인증 성공 여부 전달
인증 암호 알고리즘
NTLMv2는 윈도우 시스템의 기본 인증 프로토콜로 기존과 전혀 다른 알고리즘으로 해시값을 생성하여 현재까지 복잡도가 충분하여 크래킹이 어렵다.
💡 시스템 취약점 분석 및 평가 가이드
Lan Manager은 네트워크 통한 파일 및 프린터 공유 등과 같은 작업 시 인증을 담당하는 서비스이다. Lan Manager 인증 수준을 NTLMv2 설정을 통해 보다 안전한 인증을 할 수 있다.
패스워드 크래킹
- Dictionary Attck
패스워드로 자주 사용되는 사전 단어, 키보드 자판의 일련 순, 주민등록번호, 이름 등을 미리 사전 파일로 만든 후 이를 하나씩 대입하여 패스워드 일치 여부를 확인하는 패스워드 크래킹 방식이다. - Brute Force Attack
문자열의 범위(A-Z, a-z, 0-9 ... )를 정하고, 그 범위 내에서 생성 가능한 모든 패스워드를 생성하여 이를 하나씩 대입하여 패스워드 일치 여부를 확인하는 패스워드 크래킹 방식이다. 대량의 CPU와 시간이 많이 필요하다. - Hybrid Attack ➜ Dictionary + Brute Force
- 사전 파일에 있는 문자열에 문자, 숫자 등을 추가로 무작위 대입하여 패스워드 일치 여부를 확인하는 패스워드 크래킹 방식이다.
- Rainbow Table Attack
하나의 패스워드에 시작해 특정한 변이 함수를 이용해 여러 변이된 형태의 패스워드를 생성한다. 각 변이된 패스워드의 해시를 고리처럼 연결하여 일정 수의 패스워드와 해시로 이루어진 체인을 무수히 만들어 일치하는 해시값을 통해 패스워드를 찾아내는 방식이다.
'InfoSec > 정보보안기사' 카테고리의 다른 글
네트워크 보안 03. 네트워크 대응 기술 및 응용 (0) | 2022.09.20 |
---|---|
네트워크 보안 02. 네트워크 기반 공격 기술의 이해 및 대응 (1) | 2022.09.19 |
네트워크 보안 01. 네트워크 활용(TCP/IP 구조) (2) | 2022.09.19 |
리눅스 서버 보안 (0) | 2022.09.03 |