티스토리 뷰

1. 윈도우 인증 구성요소

LSA(Local Security Authority)

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

계정명과 SID(Security ID)를 매칭하여 SRM이 생성한 감사 로그를 기록

NT 보안의 중심 서비스, 보안 서브시스템(Security Subsystem)


SAM(Security Account Manager)

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

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

SAM 파일은 사용자, 그룹 계정 및 암호화된 패스워드 정보를 저장하고 있는 데이터베이스

SAM 파일은 윈도우 설치 디렉터리(C:\Winnt 또는 C:\Windows)에 위치


SRM(Security Reference Monitor)

인증된 사용자에게 SID(Security ID)를 부여

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



2. 로컬 인증

윈도우 부팅 후 로그인 창(Winlogon)에서 아이디와 패스워드(인증 정보)를 입력

LSA 서브시스템이 인증 정보를 받아 NTML 모듈로 넘기고 SAM이 받아 로그인 처리

로그인 성공 시 접근 토큰을 부여하여 프로세스 실행



3. 원격(도메인) 인증

윈도우 부팅 후 로그인 창(Winlogon)에서 아이디와 패스워드(인증 정보)를 입력

LSA 서브시스템이 인증 정보를 받아 로컬인지 도메인인지 확인하여 커버로스(Kerberos) 프로토콜을 이용해 도메인 컨트롤러(DC)에 인증 요청

도메인 컨트롤러(DC)는 인증 정보를 확인하여 접속하고자 하는 사용자에게 접근 토큰을 부여하고 해당 권한으로 프로세스 실행



4. SAM 파일 접근 통제 설정(시스템 취약점 분석 · 평가 항목)

SAM 파일은 사용자와 그룹 계정의 패스워드를 관리하고 LSA를 통한 인증을 제공하는 중요한 파일이므로 적절한 접근 통제가 필요

공격자로부터 SAM 파일에 대한 패스워드 공격 시도에 따른 정보 노출의 위험이 있음


보안설정

SAM 파일 > 속성 > 보안 > 그룹 또는 사용자 이름 > Administrators 및 System 그룹 외에는 SAM 파일에 대한 접근을 제한

불필요한 그룹 및 계정에 대해서 권한 제거



5. 윈도우 보안 식별자(SID, Security Identifier)

윈도우의 각 사용자나 그룹에 부여되는 고유한 식별번호

사용자가 로그인을 수행하면 접근 토큰이 생성되며, 해당 토큰에는 로그인한 사용자와 그 사용자가 속한 모든 작업 그룹들에 관한 보안 식별자(SID) 정보가 있음

접근 토큰의 사본은 그 사용자에 의해 시작된 모든 프로세스에게 할당됨

사용자 계정 및 패스워드 정보를 담고 있는 SAM 파일(C:\Windows\System32\config\SAM)에 SID 정보가 저장되어 있음


SID 구조

Administrator: S-1-5-21-1989092521-4019890826-0807311030-500

Guest: S-1-5-21-1989092521-4019890826-0807311030-501

일반 사용자: S-1-5-21-1989092521-4019890826-0807311030-1001


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

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

1989092521-4019890826-0807311030: 해당 시스템만의 고유한 식별자, 동일한 컴퓨터에 다시 윈도우를 설치해도 동일한 값을 가지지 않음

500, 501, 1001: 사용자 식별자(ID)

500: 관리자 식별자

501: 게스트 식별자

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


윈도우 관리명령 콘솔(WMIC, Windows Management Instruction Console)을 통해 확인 가능

실행 > wmic > useraccount list brief



6. 윈도우 인증 구조

Challenge/Response 방식의 인증 구조

A. 인증 요청: 인증하고자 하는 사용자가 윈도우 시스템에 인증 요청

B. Challenge 값 생성 및 전송: 인증 요청을 받은 서버는 특정 규칙 또는 랜덤한 Challenge 값을 생성하여 사용자에게 전달

C. Response 값 생성 및 전송: 사용자는 전달받은 Challenge 값과 사용자 패스워드 정보를 이용해 Response 값을 생성하여 서버에 전달

D. Response 값 확인 및 인증 성공: 사용자가 전달한 Response 값을 확인하여 인증 성공 여부를 전달


인증 암호 알고리즘

LM(Lan Manager) Hash: Windows 2000, XP의 기본 알고리즘으로 구조적으로 취약(Vista 이후 버전부터는 LM을 기본적으로 사용 불가)

NTML Hash: LM Hash에 MD5 Hash가 추가된 형태

NTMLv2 Hash: Windows Vista 이후 윈도우 시스템의 기본 인증 프로토콜, 기존 인증 알고리즘과는 전혀 다른 알고리즘으로 해시값을 생성


Lan Manager 인증 수준(시스템 취약점 분석 · 평가 항목)

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

Lan Manager 인증 수준 설정을 통해 네트워크 로그온에 사용할 Challenge/Response 인증 프로토콜을 결정하면, 이 설정은 클라이언트가 사용하는 인증 프로토콜 수준, 협상된 세션 보안 수준 및 서버가 사용하는 인증 수준에 영향을 주기 때문에 보다 안전한 인증을 위해 NTLMv2 사용을 권장함



7. 패스워드 크래킹

사전 공격/사전 대입 공격(Dictionary Attack)

패스워드로 자주 사용되는 사전에 있는 단어, 키보드 자판의 일련순, 주민등록번호, 이름 등을 미리 사전(Dictionary) 파일로 만든 후 이를 하나씩 대입하여 패스워드 일치 여부를 확인하는 크래킹 방법


무차별 공격/무작위 대입 공격(Brute Force Attack)

패스워드에 사용될 수 있는 문자열의 범위를 정하고, 그 범위 내에서 생성 가능한 모든 패스워드를 생성하여 이를 하나씩 대입, 패스워드 일치 여부를 확인하는 크래킹 방법


레인보우 테이블(Rainbow Table)을 이용한 공격

레인보우 테이블은 하나의 패스워드에서 시작해 특정한 변이 함수를 이용해 여러 변이된 형태의 패스워드를 생성한 후 각 변이된 패스워드의 해시를 고리처렴 연결하여 일정 수의 패스워드와 해시로 이루어진 체인(Chain)을 무수히 만들어 놓은 테이블

해시 테이블과 R(Reduction) 함수의 반복 수행을 통해 일치하는 해시값을 통해서 패스워드를 찾아내는 크래킹 방법

댓글
댓글쓰기 폼
«   2019/03   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
링크
공지사항
Total
70,680
Today
4
Yesterday
68