'Adobe Reader Sandbox'에 해당되는 글 1건

  1. 2013.01.03 PDF Sandbox
Sandbox2013. 1. 3. 17:49

PDF Sandbox



1. Sandboxing


Adobe Reader에서는 Protected Mode라고 알려진 Sandboxing을 제공합니다.

Sandbox 내부의 process들은 Principle of least privilege를 따르도록 설계되었습니다.

이를 통해 설치, 파일 삭제 또는 시스템 정보 변경 등의 믿을 수 있는 함수만 사용 가능하도록 하여

한정된 실행 환경을 만듭니다.


Adobe Reader는 sandboxing을 통해

PDF 내의 악의적인 목적을 가질 수도 있는 코드를 저장하는 layer를 추가적으로 생성하고

User의 system으로 privilege elevation을 하지 못하도록 막습니다.

이를 통해 공격자의 control 범위와 process의 필수 요소들을 분리 해줍니다.

위 design의 goal은

모든 잠재적으로 위험 요소를 가질만한 data들을 PDF principal에 두고

모든 권한을 가진 user principal로부터 가둡니다.



2. Design


Adobe Reader sandbox design은 세가지의 중요한 요점이 있습니다.

- PDF의 image parsing, javascript 실행, rendering과 같은 작업은 sandbox에서 작동하게 됩니다.

- Sandbox 밖에서 실행되야 하는 작업들은 broker process라고 불리는 proxy를 통해 작동합니다.

- Sandbox는 두가지의 새로운 security principal을 제시합니다.

User principal은 user가 logon되어 실행중인 session이고

PDF principal은 독립적인 process로 PDF를 parsing하고 rendering 합니다.



간단한 개념과는 달리 sandboxing은 enterprise application들에게는 꽤나 손이 많이가는 기술입니다.

이미 완성되어 널리 사용중인 software에 이를 적용하기란 쉽지가 않기 때문입니다.



3. Design 개념


Sandbox는 보안상의 몇가지 요점들을 발전시켜 design 되었습니다.


- 기존의 OS security architecture를 발전시켰습니다.

Adobe Reader sandbox는 Windows OS security feature들을 이용합니다.

(restricted tokens, job objects, low integrity levels)

- 기존의 sandboxing 방식을 발전시켰습니다.

Adobe Reader sandbox는 Google Chrome sandbox 기반으로 만들었습니다.

- Principle of least privilege를 고수합니다.

모든 process는 꼭 필요한 resource에만 접근이 가능합니다.

- Sandbox 내부의 모든 data는 위험요소를 가지고 있다고 가정합니다.

Sandbox 밖에서 사용되는 모든 data는 인증되지 않으면 잠재적인 위험요소를 가지고 있다고 가정합니다.



4. Sandbox에서 제공하는 mitigation


Adobe Reader의 sandboxing은 공격자의 두가지 목적에 중점을 두고 있습니다.

- User의 machine에 malware 설치

- 다른 program에서 user가 입력하는 값 monitoring


공격자가 우회를 성공해 위의 목적을 달성하는 경우에는 심각한 피해를 초래할 수 있습니다.

하지만 sandboxing을 이용하게 되면 exploit이 application 내부에서 일어나더라도

Principle of least privilege를 통해 user의 machine에 대한 접근은 완전히 차단되어

User의 machine에는 아무런 피해도 입히지 못하게 됩니다.


Posted by slimV