보안 계정 관리자

보안 계정 관리자(SAM: Security Account Manager)는 윈도우 XP, 윈도우 비스타 그리고 윈도우 7에서 사용자의 비밀번호를 저장하는 데이터베이스 파일이다. 이것은 사용자의 로컬(local) 또는 원격(remote) 인증에 사용된다. 윈도우 2000 SP4부터는 액티브 디렉터리가 원격 사용자 인증에 사용된다. SAM은 금지된 사용자가 시스템에 대한 접근을 획득하는 것을 막기 위해 암호화 방식을 사용한다.

사용자 비밀번호는 레지스트리 하이브에 LM 해시 포맷 또는 NTLM 해시 포맷으로 저장된다. 이 파일은%SystemRoot%/system32/config/SAM 에서 찾을 수 있으며 HKLM/SAM에 마운트된다.

SAM 데이터베이스의 보안을 오프라인 소프트웨어 크래킹으로부터 향상시키기 위해, 마이크로소프트는 SYSKEY 기능을 윈도우 NT 4.0에 도입하였다. SYSKEY가 활성화 되면 SAM 파일의 사본은 부분적으로 암호화되며, SAM에 저장된 모든 로컬 계정의 비밀번호 해시 값은 키("SYSKEY"로 불리는)로 암호화된다. 이것은 syskey 프로그램을 실행함으로써 활성화된다.

암호 해독 
해시 함수가 일방향이기 때문에, 이것은 비밀번호 저장소에 보안적인 방식을 제공한다.

온라인 공격의 경우 간단하게 SAM 파일을 다른 곳에 복사하는 것이 불가능하다. 윈도우 커널이 SAM 파일에 대한 배타적인 파일시스템 락을 얻고 유지하며, 운영체제가 종료되거나 "블루스크린" 예외가 발생하기 전에는 이 락을 놓지 않기 때문에, SAM 파일은 윈도우가 실행 중에는 옮겨지거나 복사될 수 없다. 그러나 SAM의 컨텐츠의 메모리 복사는 다양한 기법(pwdump)을 통해서 덤프될 수 있어서 비밀번호 해시를 오프라인에서 무차별 대입 공격할 수 있다.

LM hash 제거 
대부분의 윈도우 버전에서 사용자가 자신의 비밀번호를 바꿀 때 유효한 LM 해시의 생성과 저장을 비활성화하게 설정할 수 있다. 이것은 윈도우 비스타에서 기본 셋팅이지만 그 이전 윈도우 버전에서는 비활성화된 것이 기본 셋팅이었다. 참고로 이 셋팅을 활성화하는 것은 즉시 LM 해시 값을 SAM에서 지우는 것이 아니라, 비밀번호 변경 수행 동안 대신 더미 값을 SAM 데이터베이스 위치에 저장하는 추가적인 검사를 활성화하는 것이다(이 더미값은 사용자의 비밀번호와 아무 관련이 없으며, 모든 사용자 계정에 같은 값이 저장된다).

관련된 공격들 
윈도우 NT 3.51, NT 4.0 그리고 2000에서 로컬 인증 시스템을 우회하는 공격이 고안되었다. 만약 SAM 파일이 하드 드라이브에서 지워지면(예를 들면 윈도우 OS 볼륨을 대체 운영 체제에 마운팅한다든지), 공격자는 비밀번호 없이 어떤 계정에도 로그인할 수 있었다. 이 결함은 윈도우 XP에서 수정되었으며 오류 메시지를 보이고 컴퓨터를 종료하게 된다. 그러나 사용자 계정을 위해 저장된 전체 비밀번호 해시를 제거하거나, 이 환경에서 직접 사용자 계정 비밀번호를 수정하는 특정한 소프트웨어 유틸리티가 존재한다.

이 소프트웨어는 윈도우 계정 비밀번호를 잃어버린 사용자나 악의적인 보안 우회 유틸리티를 사용하려는 사용자에게 매우 실용적이고 유용한 쓰임을 갖는다. 근본적으로 사용자가 충분한 능력과 경험, 크래킹 유틸리티 소프트웨어와 윈도우 NT 커널의 보안 루틴에 대한 친화성을 갖는다는 것은 잠재적인 목표 컴퓨터에서 윈도우 계정 비밀번호에 대한 전체적인 우회/제거 능력을 갖는다는 것이다.

같이 보기 
 chntpw

각주 

윈도우 소프트웨어
운영 체제 보안
컴퓨터 접근 제어
접근 제어 소프트웨어