Windows Integrity Mechanism

WDAG 소개에서 이어집니다.

샌드박스

크롬과 파이어폭스 같은 브라우저들은 렌더러 프로세스를 기본 사용자 보다 낮은 권한으로 분리함으로써 공격표면을 감소시킵니다.

샌드박스를 활성화 한 크롬

샌드박스를 비활성화 한 크롬

보시는바와 같이 Windows Integrity Mechanism 을 이용해 권한을 분리 ( 샌드박싱 ) 한 경우에는 외부 리소스에 대한 접근 권한이 없어 계산기를 띄우지 못합니다.

이러한 샌드박스는 크롬이나 파이어폭스를 초기설치 상태에서 커맨드 라인이나 실험 기능을 통해 비활성화 하지 않는 이상 기본적으로 활성화 되어 있습니다.

Windows Integrity Mechanism

권한 목록

SID in Access Token Assigned Integrity Level
LocalSystem System
LocalService System
NetworkService System
Administrators High
Backup Operators High
Network Configuration Operators High
Cryptographic Operators High
Authenticated Users Medium
Everyone Low
Anonymous Untrusted

굵게 표시 된 Local Service, Administrators, Authenticated Users 는 우리가 윈도우를 사용하면서 흔히 접하는 권한 입니다.

  • Local Service 의 경우 백그라운드에서 돌아가는 서비스들이 갖는 권한
  • Administrators 의 경우 관리자 권한으로 실행 메뉴를 통해 가질 수 있는 권한
  • Authenticated Users 의 경우 표준 사용자가 갖는 권한

각각의 권한들은 IL ( Integrity Level ) 로 분리되어 관리되며 낮은 IL을 가진 프로세스는 높은 IL을 가진 프로세스의 리소스와 권한이 제한 된 레지스트리, 디렉터리 등 주요 리소스에 접근 할 수 없습니다.

앞서 언급한 샌드박스도 이에 기반해 렌더러 프로세스를 표준 사용자가 갖는 IL ( Medium Integrity Level ) 보다 낮은 IL ( Low Integrity Level ) 을 할당해 분리하는 것입니다.

실험
간단한 키로거를 만들어 Low Integrity Level 로 실행하고 Medium Integrity Level 을 가진 메모장에 입력 되는 키 입력을 가로챌 수 있는지 실험해보겠습니다.

Low IL로 실행 된 키로거는 Medium IL을 가진 메모장의 키 입력을 가로채지 못했습니다.

이제 키로거를 Medium IL로 실행해보겠습니다.

같은 IL을 가진 키로거가 메모장에 입력되는 키 입력을 가로채는 것을 확인 하실 수 있습니다.

코드

MISC

Q. PoC 코드는 Low Integrity Launcher 만 공유되는 건가요?
A. 코드앤톡스는 공동체 입니다. 키로거나 크롬에 대한 PoC 코드를 공유하게 되면 커뮤니티의 이미지가 훼손 됩니다.

참고

2 Likes