SAM(Security Account Manager)에 대해 알아보겠습니다.
Ⅰ. SAM(Security Account Manager) 란?
윈도우 운영체제에서 사용자 계정과 암호 정보를 저장하고 관리하는 핵심 보안 데이터베이스입니다. 쉽게 말해, 컴퓨터가 “누가 누구인지”를 기억하고, 각 사용자가 로그인할 자격이 있는지 확인하는 역할을 합니다.
Ⅱ. SAM(Security Account Manager) 주요 기능
ⅰ) 계정 정보 저장
: 사용자 계정 정보(이름, 암호의 해시값, 보안 식별자 SID, 그룹 소속 등)를 저장합니다.
ⅱ) 로그온 인증 처리
: 로그인 시 사용자가 입력한 비밀번호의 해시값과 SAM에 저장된 해시값을 비교해 인증 여부를 결정합니다.
ⅲ) 사용자 관리
: 계정의 활성/비활성 상태, 마지막 로그인 시간 등 다양한 보안 정보를 포함합니다.
ⅳ) 보안 정책 연동
: 도메인 환경에서는 Active Directory와 연동되어 도메인 기반 계정 관리도 지원합니다.
Ⅲ. SAM(Security Account Manager) 저장 위치 및 구조
ⅰ) 저장 위치
■ 물리적 파일: C:\Windows\System32\config\SAM
■ 레지스트리 경로: HKEY_LOCAL_MACHINE\SAM
■ 이 파일은 시스템이 켜져 있는 동안에는 관리자도 접근할 수 없도록 보호됩니다. SAM 데이터베이스는 암호화되어 있으며, NTLM 해시 등으로 암호가 저장됩니다..
ⅱ) 보안 구조
1. 암호 저장 방식
■ 암호는 평문(plain text) 이 아닌 해시(Hash) 형태로 저장
■ Windows는 NTLM 해시(NT Hash)와 때로는 LM 해시를 함께 저장되며, 최신 버전은 LM 해시는 기본적으로 비활성화
■ 암호 해시는 SYSKEY(시스템 키)로 암호화되어 저장되어 있어 보호
2. SID 연관
■ 각 사용자 계정은 고유한 SID(Security Identifier)
■ 권한 부여 및 리소스 접근 통제는 사용자 이름이 아닌 SID를 기준
Ⅳ. SAM(Security Account Manager) 관련 시스템 구성요소
구성요소 | 역할 |
lsass.exe | Local Security Authority Subsystem Service – SAM과 통신하여 인증 처리 |
NetLogon | 도메인 환경에서는 SAM 대신 도메인 컨트롤러와 통신 수행 |
NTDS.dit | 도메인 환경의 사용자 정보는 이 Active Directory 데이터베이스에 저장됨 (SAM은 로컬 계정용) |
Ⅳ. SAM(Security Account Manager) 보안 및 공격 관련 이슈
SAM은 공격자들이 노리는 주요 대상 중 하나입니다. 대표적인 공격 방법은 다음과 같습니다:
ⅰ) 오프라인 SAM 해킹
시스템 부팅을 중단하고 SAM 파일을 복사한 후, 해시를 크랙 도구 (예: John the Ripper, Hashcat)로 해독
ⅱ) Mimikatz 사용
메모리에서 SAM 인증 정보 또는 해시를 추출
ⅲ) Pass-the-Hash 공격
암호 해시만으로 인증을 시도해 권한 획득
Ⅴ. SAM(Security Account Manager) 보안 대책
■ BitLocker로 디스크 암호화
■ 관리자 계정 이름 변경 또는 비활성화
■ 로컬 계정 로그인 제한
■ 보안 패치 최신 상태 유지