아메바시큐리티

Security Identifier (SID) 본문

윈도우 보안

Security Identifier (SID)

am2ba 2021. 4. 20. 22:21

SID란?

SID란 윈도우의 각 사용자가 그룹에 부여되는 고유한 식별 번호를 의미한다. Windows는 

사용자가 로그인을 수행하면 접근 토큰이 생성되며, 해당 토큰에는 로그인한 사용자와 그 사용자가 속한 모든 작업 그룹들에 관한 보안식별자(SID)정보가 담겨있다. 접근 토큰의 사본은 그 사용자에 의해 시작된 모든 프로세스에게 할당되어 프로세스에게 사용자의 접근권한에 맞는 권한을 부여한다.

SAM 파일에 SID 정보가 저장되어 있다. 

 

관리자 권한으로 실행한 프로세스 확인

 

(좌) 관리자 권한으로 실행 (우) 일반적인 실행

보안토큰에 SID가 할당되어있고, 프로세스를 실행할 때는 이러한 보한토큰의 사본을 프로세스에게 넘겨준다고 했다. 그래서 관리자 권한으로 실행시 관리자의 보안토큰이 넘어가는지 확인해보았다. 

하지만 프로세스가 가지고 있는 토큰은 유저의 보안토큰이었다. 이는 SID 값을 통해서 확인할 수 있었다. 이와같이 관리자 권한으로 해당 프로세스를 실행할 때는 관리자의 보안토큰을 복사해서 프로세스를 실행시키는 것이 아닌, 해당 프로세스를 실행시킬 때, 권한을 주는 방식으로 실행되었다. 

이것이 보안토큰에 부여된 권한이라면, 관리자 권한으로 실행시킨 프로세스의 보안토큰은 유저의 보안토큰이지만 관리자권한을 가진 유저 토큰이라는 생각이 들었다. 

이를 확인하기 위해 관리자 권한으로 cmd를 실행한 후, cmd에서 자식 프로세스를 생성한 결과이다.

관리자권한 cmd의 자식 프로세스

똑같이 관리자 권한을 가진채 실행된 것을 확인할 수 있었고, SID 역시 유저와 동일한 것으로 확인할 수 있었다. 

결론은 관리자 권한으로 실행시킨 프로세스의 토큰은 관리자 권한이 부여된 유저의 토큰이다. 즉, 관리자 권한으로 프로세스를 실행한다고 해서 프로세스에 부여되는 토큰이 관리자의 보안토큰이 아니다. 

 

 

SID 구조

계정 SID
Administrator S-1-5-21-4243233100-3174512425-4165118588-500
Guest S-1-5-21-4243233100-3174512425-4165118588-501
일반 사용자 S-1-5-21-4243233100-3174512425-4165118588-1001

각 번호에 해당하는 내용은 다음과 같다.

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

5-21 : 시스템이 도메인 컨트롤러 이거나, 단독 시스템임을 의미한다.

4243233100-3174512425 : 해당 시스템만의 고유한 식별자로, 동일한 컴퓨터에 다시 윈도우를 설치해도 동일한 값이 나오지 않는다. 

500 : 관리자의 SID

501 : Guest의 식별자

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

 

 

SID 확인 방법

시작 버튼을 누르고 실행에서 wmic를 실행한다. 

wmic란 Windows Management Instruction Console로, 각종 관리 명령을 수행할 수 있는 콘솔이다. 

이후 useraccount를 확인하면 유저의 정보들을 확인할 수 있다.

SID에 관한 간단한 정보만 보고싶다면 "useraccount list brief" 명령어를 실행하면 아래와 같이 확인할 수 있다.

useraccount list brief

위에서 언급한 관리자, 게스트, 사용자 계정 이외에도 503과 504라는 시스템이 생성한 계정이 존재하는 것을 알 수 있다. 

 

 

'윈도우 보안' 카테고리의 다른 글

윈도우 인증  (0) 2021.04.20