KR101565230B1 - 샌드박스에 참조들을 유지하는 시스템 및 방법 - Google Patents

샌드박스에 참조들을 유지하는 시스템 및 방법 Download PDF

Info

Publication number
KR101565230B1
KR101565230B1 KR1020137033228A KR20137033228A KR101565230B1 KR 101565230 B1 KR101565230 B1 KR 101565230B1 KR 1020137033228 A KR1020137033228 A KR 1020137033228A KR 20137033228 A KR20137033228 A KR 20137033228A KR 101565230 B1 KR101565230 B1 KR 101565230B1
Authority
KR
South Korea
Prior art keywords
references
list
document
sandbox environment
sandbox
Prior art date
Application number
KR1020137033228A
Other languages
English (en)
Other versions
KR20140016380A (ko
Inventor
이반 크르스틱
피에르-올리버 제이. 마텔
Original Assignee
애플 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 애플 인크. filed Critical 애플 인크.
Publication of KR20140016380A publication Critical patent/KR20140016380A/ko
Application granted granted Critical
Publication of KR101565230B1 publication Critical patent/KR101565230B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Document Processing Apparatus (AREA)
  • Storage Device Security (AREA)

Abstract

샌드박스에 참조들을 유지하는 시스템, 방법 및 비일시적 컴퓨터 판독가능 저장 매체가 본 명세서에 개시되어 있다. 이 방법을 구현하는 시스템은 샌드박스 환경에서 사용하기 위한 문서를 수신하고 이 문서를 조정기를 통해 파서에 전달한다. 파서는 다른 자원들에 대한 문서 내의 참조들을 찾아내고 참조들의 목록을 출력한다. 이 시스템은, 각각의 참조를 검증하여 검증된 참조들의 목록을 출력하는 검증기에, 참조들의 목록을 전달한다. 이 시스템은, 검증된 참조들의 목록 상의 자원들을 포함하도록 샌드박스를 확장시키는 샌드박싱된 응용 프로그램에, 검증된 참조들의 목록을 전달한다. 일 실시예에서, 이 시스템은, 조정기를 사용하는 일 없이, 샌드박스에 참조들을 유지한다.

Description

샌드박스에 참조들을 유지하는 시스템 및 방법{SYSTEM AND METHOD FOR PRESERVING REFERENCES IN SANDBOXES}
<관련 출원의 상호 참조>
본 출원은 참조 문헌으로서 그 전체 내용이 본 명세서에 포함된, 2011년 6월 3일자로 출원된, 발명의 명칭이 "샌드박스에 참조들을 유지하는 시스템 및 방법(SYSTEM AND METHOD FOR PRESERVING REFERENCES IN SANDBOXES)"인 미국 특허 출원 제13/153,274호를 기초로 우선권을 주장한다.
본 개시 내용은 컴퓨터 보안에 관한 것으로서, 보다 구체적으로는, 샌드박스 환경에서 사용하기 위한 문서 내의 참조들을 유지하는 것에 관한 것이다.
컴퓨터 보안은 컴퓨팅 세계의 대단히 중요한 양태이다. 통신, 엔터테인먼트, 운송, 금융 및 의료 산업을 비롯한 많은 상이한 산업이 컴퓨터에 의존하고 있다. 컴퓨터 보안은 컴퓨터 공격을 방지하고 탐지함으로써 이들 중요한 컴퓨팅 시스템을 보호하는 것을 포함한다. 공격자는 비밀번호를 훔치는 것, 서비스 거부 공격을 하는 것 그리고 바이러스 및 웜과 같은 악성 소프트웨어를 배포하는 것과 같은 여러 방식으로 컴퓨팅 시스템을 손상시킨다.
컴퓨팅 시스템을 공격자로부터 보호하는 것은 어렵고 끊임없이 변하는 작업이다. 사용자가 비밀번호를 자주 변경할 필요가 있는 것으로부터 컴퓨팅 시스템에서 복잡한 암호 알고리즘을 이용하는 것까지, 컴퓨팅 시스템을 보호하는 다수의 방법들이 있다. 컴퓨팅 시스템을 보호하는 한가지 방법은 컴퓨팅 시스템을 잠재적 악성 프로그램으로부터 보호하기 위해 컴퓨터 프로그램을 샌드박싱(sandbox)하는 것이다. 샌드박스는 실행 중인 컴퓨터 프로그램을 다른 프로그램들 및/또는 컴퓨팅 자원들로부터 분리시키는 데 이용되는 메커니즘이다. 일부 보안 컴퓨팅 시스템은 신뢰할 수 없는 프로그램 또는 신뢰할 수 없는 당사자에 의해 배포된 프로그램을 샌드박스에서 실행한다. 샌드박스 제한은 컴퓨터 프로그램이 액세스할 수 있는 자원을 제한한다. 샌드박스 환경의 예는 Adobe® Flash® 또는 Microsoft® Silverlight®와 같은 가상 기계 또는 인터프리터에서 실행되는 애플릿이다.
PDF(Portable Document Format) 또는 Apple® Quicktime®과 같은 교환 형식(exchange format)으로 저장되어 있는 문서들은 다른 파일에 대한 내장된 참조(embedded reference)를 포함할 수 있다. 컴퓨팅 시스템은, 이러한 파일을 신뢰하지 않을 때, 신뢰할 수 없는 파일에 액세스하는 응용 프로그램(application)을 샌드박싱시킬 수 있다. 이들 문서가 샌드박싱된 응용 프로그램에 의해 열릴 때, 그 응용 프로그램은, 컴퓨팅 시스템에 의해 샌드박싱된 응용 프로그램에 가해진 제한으로 인해, 다른 파일들에 대한 참조들을 따라갈 수 없다. 샌드박싱된 응용 프로그램에서 다른 문서들에 대한 참조에 액세스할 수 없는 것은 사용자들을 좌절시킬 수 있다. 경험이 없는 사용자들은 단순히 포기하고 컴퓨팅 플랫폼에 대한 나쁜 인상을 가질 수 있는 반면, 보다 경험이 많은 또는 기술에 관심이 많은 사용자들은 샌드박스를 피하려고 시도할 수 있고, 그에 의해 부주의하게도 잠재적으로 심각할 수 있는 보안 취약성을 야기한다. 문서에 포함된 참조들로부터 부가 정보를 원하는 사용자들은 샌드박싱된 응용 프로그램에서 이들 참조에 액세스할 방도가 없다.
본 개시 내용의 부가의 특징 및 이점이 이하의 설명에서 기술될 것이며, 부분적으로 이 설명으로부터 명백하게 되거나 본 명세서에 개시된 원리의 실시에 의해 알게 될 수 있다. 본 개시 내용의 특징 및 이점이 첨부된 특허청구범위에 특정되어 있는 수단 및 조합에 의해 실현되고 달성될 수 있다. 본 개시 내용의 이들 및 기타 특징이 이하의 설명 및 첨부된 특허청구범위로부터 더욱 명백하게 되거나, 이후에 본 명세서에 기재된 원리의 실시에 의해 알게 될 수 있다.
샌드박스에 참조들을 유지하는 시스템, 방법 및 비일시적 컴퓨터 판독가능 저장 매체가 개시되어 있다. 이 방법을 실시하는 시스템은 샌드박스 환경에서 사용하기 위한 PDF와 같은 문서를 수신한다. 이 시스템은 문서를 조정기(coordinator)에 전달하고, 조정기는 이어서 문서를 파서에 전달한다. 파서는 다른 자원들에 대한 문서 내의 참조들을 식별하고 참조들의 목록을 조정기에 반환한다. 조정기는 이어서 참조들의 목록을 검증기(verifier)에 전달하고, 선택적으로 원본 문서 유형, 참조들의 목록을 처리하기 위한 원하는 보안 및/또는 신뢰 레벨, 사용자 계정 등을 나타내는 다른 파라미터들을 전달한다. 검증기는 각각의 참조와 연관되어 있는 각각의 자원을 검증하고 검증된 참조들의 목록을 조정기에 반환한다. 검증기는, 참조 파일 형식이 예상된 유형이고 및/또는 파일이 열릴 때 예상된 대로 컴퓨팅 시스템이 거동할 때, 참조들을 검증할 수 있다. 검증기는 참조들의 목록에 의해 링크되어 있는 자원들의 다른 속성들을 검사할 수 있다. 예를 들어, 검증기는 자원들이 적절히 서명되어 있는지, 자원의 체크섬, 자원의 파일 속성, 및/또는 자원이 신뢰할 수 있고, 예상된 것이며 및/또는 진짜임을 나타낼 수 있는 기타 특성을 확인할 수 있다. 검증기는 검증된 참조들의 목록을 다시 조정기에 전달하고, 조정기는 이어서 검증된 참조들의 목록을 응용 프로그램에 전달한다. 응용 프로그램은 이어서 검증된 참조들의 목록에 기초하여 샌드박스 환경을 수정하여, 원본 문서에 부가하여 검증된 참조들을 포함하거나 검증된 참조들에 의해 표시되는 자원들에 대한 액세스를 제공하는 수정된 샌드박스 환경을 산출할 수 있다.
일 실시예에서, 이 시스템은, 조정기를 이용하는 일 없이, 문서를 파서에 직접 전달한다. 파서는 다른 자원들에 대한 문서 내의 참조들을 찾아내고 참조들의 목록을 출력한다. 이 시스템은, 조정기를 이용하는 일 없이, 참조들의 목록을 검증기에 직접 전달한다. 검증기는 각각의 참조와 연관되어 있는 각각의 자원을 검증하고 검증된 참조들의 목록을 출력한다. 검증기는 검증된 참조들의 목록을 응용 프로그램에 직접 전달하고, 응용 프로그램은 이어서 원본 문서에 부가하여 검증된 참조들을 포함하도록 샌드박스 환경을 확장시킨다. 이 실시예에서, 조정기가 이용되지 않고; 그 대신에, 응용 프로그램은 파서 및 검증기와 직접 통신한다. 잠재적으로 덜 안전하지만, 샌드박스에 참조들을 유지하는 이 수정된 방식은 원래의 방식보다 더 간단하고, 구현 목적상 유리할 수 있다.
본 개시 내용의 상기한 이점 및 특징과 기타 이점 및 특징이 달성될 수 있는 방식을 설명하기 위해, 이상에서 간략히 설명한 원리의 보다 상세한 설명이 첨부 도면에 도시되어 있는 본 개시 내용의 구체적인 실시예를 참조하여 행해질 것이다. 이들 도면이 본 개시 내용의 예시적인 실시예만을 도시하고 있고 따라서 본 개시 내용의 범위를 제한하는 것으로 간주되어서는 안 된다는 것을 염두에 두고서, 본 개시 내용의 원리가 첨부 도면을 사용하여 보다 구체적이고 상세하게 기술되고 설명된다.
도 1은 예시적인 시스템 실시예를 나타낸 도면이다.
도 2는 조정기를 포함하는 제1 예시적인 신뢰할 수 있는 서비스 시스템 실시예를 나타낸 도면이다.
도 3은 내장된 참조들을 갖는 문서를 보기 위한 예시적인 수정되지 않은 샌드박스 환경을 나타낸 도면이다.
도 4는 내장된 참조들을 갖는 문서를 보기 위한 예시적인 수정된 샌드박스 환경을 나타낸 도면이다.
도 5는 참조 유지 방법 실시예를 나타낸 도면이다.
도 6은 샌드박스 환경에서 사용하기 위한 문서 내의 참조들을 파싱 및 검증하는 예시적인 시스템 아키텍처를 나타낸 도면이다.
도 7은 예시적인 샌드박스 환경을 나타낸 도면이다.
도 8은 검증된 및 검증되지 않은 참조들을 나타내는 예시적인 수정된 샌드박스 환경을 나타낸 도면이다.
도 9는 조정기를 갖지 않는 제2 예시적인 신뢰할 수 있는 서비스 시스템 실시예를 나타낸 도면이다.
본 개시 내용의 다양한 실시예가 이하에서 상세히 기술된다. 특정의 구현들에 대해 기술되어 있지만, 이것이 단지 예시를 위한 것이라는 것을 이해하여야 한다. 관련 기술 분야의 당업자는 본 개시 내용의 사상 및 범위를 벗어나지 않고 다른 구성요소 및 구성이 사용될 수 있다는 것을 인식할 것이다.
본 개시 내용은 샌드박스에 참조들을 유지하는 것에 대한 기술 분야의 요구를 해결한다. 샌드박스 환경에서 사용하기 위한 문서 내의 참조들을 유지하는 시스템, 방법 및 비일시적 컴퓨터 판독가능 매체가 개시되어 있다. 이 개념을 실시하기 위해 이용될 수 있는 도 1의 기본적인 범용 시스템 또는 컴퓨팅 장치의 간략한 서론적 설명이 본 명세서에 개시되어 있다. 이어서, 샌드박스에 참조들을 유지하는 보다 상세한 설명이 뒤따를 것이다. 이제부터, 본 개시 내용은 도 1을 참조한다.
도 1을 참조하면, 예시적인 시스템(100)은 처리 유닛(CPU 또는 프로세서)(120)과, 판독 전용 메모리(ROM)(140) 및 랜덤 액세스 메모리(RAM)(150)와 같은 시스템 메모리(130)를 비롯한 다양한 시스템 구성요소를 프로세서(120)에 연결시키는 시스템 버스(110)를 포함하는 범용 컴퓨팅 장치(100)를 포함한다. 시스템(100)은 프로세서(120)와 직접 연결되어 있거나, 그에 아주 근접해 있거나, 그의 일부로서 통합되어 있는 고속 메모리의 캐시(122)를 포함할 수 있다. 시스템(100)은 프로세서(120)에 의한 빠른 액세스를 위해 데이터를 메모리(130) 및/또는 저장 장치(160)로부터 캐시(122)로 복사한다. 이러한 방식으로, 캐시는 데이터를 기다리는 동안의 프로세서(120) 지연을 피하는 성능 향상을 제공한다. 이들 및 기타 모듈은 다양한 동작을 수행하기 위해 프로세서(120)를 제어하거나 프로세서(120)를 제어하도록 구성될 수 있다. 기타 시스템 메모리(130)도 역시 사용될 수 있다. 메모리(130)는 상이한 성능 특성을 갖는 다수의 상이한 유형의 메모리를 포함할 수 있다. 본 개시 내용이 2개 이상의 프로세서(120)를 갖는 컴퓨팅 장치(100) 상에서 또는 더 높은 처리 능력을 제공하기 위해 서로 네트워크로 연결된 컴퓨팅 장치들의 그룹 또는 클러스터 상에서 동작할 수 있다는 것이 이해될 수 있다. 프로세서(120)는 임의의 범용 프로세서 및 하드웨어 모듈 또는 소프트웨어 모듈, 예컨대 저장 장치(160)에 저장되어 프로세서(120)를 제어하도록 구성되는 모듈 1(162), 모듈 2(164) 및 모듈 3(166)은 물론, 소프트웨어 명령어가 실제의 프로세서 설계에 포함되는 특수 목적 프로세서를 포함할 수 있다. 프로세서(120)는 기본적으로 다수의 코어 또는 프로세서, 버스, 메모리 제어기, 캐시 등을 포함하는 완전히 자체-완비된 컴퓨팅 시스템일 수 있다. 멀티-코어 프로세서는 대칭적이거나 비대칭적일 수 있다.
시스템 버스(110)는 메모리 버스 또는 메모리 제어기, 주변 장치 버스, 및 각종의 버스 아키텍처 중 임의의 것을 사용하는 로컬 버스를 비롯한 몇가지 유형의 버스 구조 중 임의의 것일 수 있다. ROM(140) 등에 저장된 기본 입/출력 시스템(BIOS)은 시동 중과 같은 때에 컴퓨팅 장치(100) 내의 구성요소들 사이에서 정보를 전송하는 데 도움을 주는 기본 루틴을 제공할 수 있다. 컴퓨팅 장치(100)는 또한 하드 디스크 드라이브, 자기 디스크 드라이브, 광 디스크 드라이브, 테이프 드라이브 등과 같은 저장 장치(160)를 포함한다. 저장 장치(160)는 프로세서(120)를 제어하는 소프트웨어 모듈(162, 164, 166)을 포함할 수 있다. 다른 하드웨어 또는 소프트웨어 모듈이 생각되고 있다. 저장 장치(160)는 드라이브 인터페이스에 의해 시스템 버스(110)에 연결된다. 이들 드라이브 및 연관된 컴퓨터 판독가능 저장 매체는 컴퓨팅 장치(100)에 대한 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 및 기타 데이터의 비휘발성 저장을 제공한다. 일 양태에서, 특정의 기능을 수행하는 하드웨어 모듈은 기능을 수행하는 데 필요한 하드웨어 구성요소, 예컨대 프로세서(120), 버스(110), 디스플레이(170) 등과 관련하여 비일시적 컴퓨터 판독가능 매체에 저장되는 소프트웨어 구성요소를 포함한다. 기본적인 구성요소는 당업자에게 공지되어 있고, 장치의 유형, 예컨대 장치(100)가 소형의 핸드헬드 컴퓨팅 장치인지, 데스크톱 컴퓨터인지 또는 컴퓨터 서버인지에 따라 적절한 변형이 생각되고 있다.
본 명세서에 기술된 예시적인 환경이 하드 디스크(160)를 이용하고 있지만, 당업자는 자기 카세트, 플래시 메모리 카드, DVD(digital video disk), 카트리지, RAM(random access memory)(150), ROM(read only memory)(140), 비트 스트림을 포함하는 케이블 또는 무선 신호 등과 같은 컴퓨터에 의해 액세스 가능한 데이터를 저장할 수 있는 다른 종류의 컴퓨터 판독가능 매체도 예시적인 운영 환경에서 사용될 수 있다는 것을 이해할 것이다. 비일시적 컴퓨터 판독가능 저장 매체는 명백히 에너지, 반송파 신호, 전자기파, 및 신호 그 자체와 같은 매체를 배제한다.
컴퓨팅 장치(100)와의 사용자 상호작용을 가능하게 하기 위해, 입력 장치(190)는 음성에 대한 마이크, 제스처 또는 그래픽 입력에 대한 터치-감응 스크린, 키보드, 마우스, 움직임 입력, 음성 등과 같은 임의의 수의 입력 메커니즘을 나타낸다. 출력 장치(170)는 또한 당업자에 공지된 다수의 출력 메커니즘 중 하나 이상일 수 있다. 일부 경우에, 다중 모드 시스템은 사용자가 컴퓨팅 장치(100)와 통신하기 위해 여러 종류의 입력을 제공할 수 있게 한다. 통신 인터페이스(180)는 일반적으로 사용자 입력 및 시스템 출력을 통제하고 관리한다. 임의의 특정의 하드웨어 구성에서 동작하는 것에 어떤 제한도 없으며, 따라서 여기서의 기본적인 특징은, 개선된 하드웨어 또는 펌웨어 구성이 개발될 때, 이러한 구성으로 용이하게 치환될 수 있다.
설명의 명확함을 위해, 예시적인 시스템 실시예는 "프로세서" 또는 프로세서(120)로 표시된 기능 블록을 포함하는 개별 기능 블록을 포함하는 것으로 제시된다. 이들 블록이 나타내는 기능은 공유 또는 전용 하드웨어 - 소프트웨어를 실행할 수 있는 하드웨어 및 범용 프로세서 상에서 실행되는 소프트웨어와 동등한 것으로서 동작하도록 특별히 제작된 프로세서(120)와 같은 하드웨어를 포함하지만, 이들로 제한되지 않음 - 를 사용하여 제공될 수 있다. 예를 들어, 도 1에 제시된 하나 이상의 프로세서의 기능은 하나의 공유 프로세서 또는 다수의 프로세서에 의해 제공될 수 있다. ("프로세서"라는 용어의 사용이 소프트웨어를 실행할 수 있는 하드웨어만을 말하는 것으로 해석되어서는 안 된다.) 예시적인 실시예는 마이크로프로세서 및/또는 디지털 신호 처리기(DSP) 하드웨어, 이하에서 기술하는 동작을 수행하는 소프트웨어를 저장하는 판독 전용 메모리(ROM)(140), 및 결과를 저장하는 랜덤 액세스 메모리(RAM)(150)를 포함할 수 있다. VLSI(very large scale integration) 하드웨어 실시예는 물론, 범용 DSP 회로와 결합된 커스텀 VLSI 회로도 역시 제공될 수 있다.
다양한 실시예의 논리적 동작이 (1) 범용 컴퓨터 내의 프로그램 가능 회로 상에서 실행되는 일련의 컴퓨터 구현 단계, 동작 또는 절차, (2) 특수 용도의 프로그램 가능 회로 상에서 실행되는 일련의 컴퓨터 구현 단계, 동작 또는 절차, 및/또는 (3) 프로그램 가능 회로 내의 상호연결된 기계 모듈 또는 프로그램 엔진으로서 구현된다. 도 1에 도시된 시스템(100)은 기술된 방법의 전부 또는 일부를 실시할 수 있고, 기술된 시스템의 일부일 수 있으며, 및/또는 기술된 비일시적 컴퓨터 판독가능 저장 매체 내의 명령어에 따라 동작할 수 있다. 이러한 논리적 동작은 프로세서(120)를 제어하여, 모듈의 프로그래밍에 따라 특정의 기능을 수행하도록 구성된 모듈로서 구현될 수 있다. 예를 들어, 도 1은 프로세서(120)를 제어하도록 구성된 모듈인 3개의 모듈, 모듈 1(162), 모듈 2(164) 및 모듈 3(166)을 나타내고 있다. 이들 모듈은 저장 장치(160)에 저장되고 런타임 시에 RAM(150) 또는 메모리(130)에 로드될 수 있거나, 기술 분야에 공지된 바와 같이 다른 컴퓨터 판독가능 메모리 장소에 저장될 수 있다.
컴퓨팅 시스템의 일부 구성요소들을 개시하였으며, 본 개시 내용은 이제부터 샌드박스 환경에서 문서 내의 참조들을 처리하는 것으로 되돌아간다. 도 2는 샌드박스에 참조들을 유지하는 신뢰할 수 있는 서비스들의 트리오를 나타낸 것이다. 신뢰할 수 있는 서비스들의 트리오는 참조 유지 프로세스를 조정하는 조정기(202), 다른 자원들에 대한 내장된 참조들을 포함하는 문서를 파싱하는 파서(204), 및 다른 자원들에 대한 각각의 내장된 참조를 검증하는 검증기(206)이다. 조정기, 파서 및 검증기는 신뢰할 수 있는 것으로 간주되고, 각각은 각각의 서비스가 액세스할 수 있는 자원들을 제한하는 그 자신의 개별 샌드박스 내에서 동작한다. PDF 또는 Quicktime 영화 형식과 같은 교환 형식으로 저장되어 있는 문서들은 다른 자원들에 대한 내장된 참조들을 포함할 수 있고, 여기서 참조들은 파일 경로이다. 이들과 같은 문서들이 샌드박싱된 응용 프로그램에서 열릴 때, 이 시스템은 참조들을 따라갈 수 없는데, 그 이유는 샌드박스가 샌드박스 환경의 외부에 있는 참조된 자원에 대한 액세스를 허용하지 않기 때문이다. 내장된 참조들이 문서에 대해 내부적(internal)일 때, 샌드박싱된 응용 프로그램은 자원에 액세스할 수 있는데, 그 이유는 참조가 내부적이기 때문이다. 내부 자원들은 샌드박스 확장을 필요로 하지 않으며, 따라서 파서는 단지 이들을 무시할 수 있고 및/또는 검증기는 이들을 건너뛸 수 있다. 그러나, 문서가 그 자체를 가리키는 링크를 포함하는 경우 - 이 경우는 있음직 하지 않음 -, 시스템은 선택적으로 그 링크에 대한 샌드박스도 확장시킬 수 있다. 본 명세서에 기술된 참조 유지 프로세스는 샌드박싱된 응용 프로그램이 검증된 참조들에 액세스할 수 있게 한다.
도 3은 초기 샌드박스 환경으로 제약되어 있는 응용 프로그램에서 열리는, 참조들을 저장하는 문서를 나타낸 것이고, 도 4는 수정된 샌드박스 환경으로 제약되어 있는 응용 프로그램에서 열리는 문서를 나타낸 것이다. 응용 프로그램(302)은 샌드박스 환경의 외부에 있는 자원(304)에 액세스할 수 없는데, 그 이유는 컴퓨팅 시스템이 샌드박스 내의 응용 프로그램에 제한을 두었기 때문이다. 그러나, 내부 참조들(310)은 다른 방식으로 취급되는데, 그 이유는 이들이 외부의 검증되지 않은 자원에 대한 액세스를 필요로 하지 않기 때문이다. 신뢰할 수 있는 서비스가 문서 내의 참조들을 유지하는 프로세스를 수행한 후에, 응용 프로그램은, 샌드박스가 신뢰할 수 있는 서비스들에 의해 검증된 자원들을 포함하도록, 샌드박스 환경을 수정하거나 확장시킨다. 수정된 샌드박스 환경에서 문서(406)에 액세스하는 사용자는 검증된 참조들(408)(파일 1, 파일 2, 파일 3)에 액세스할 수 있다. 이 시스템은 자원들에 대한 참조들에 대해 로컬적으로 또는 네트워크 연결을 통해(예를 들어, 인터넷 상의 자원들에 대한 참조들) 참조 유지 프로세스를 수행할 수 있다.
도 5는 예시적인 방법 실시예를 나타낸 것이다. 명확함을 위해, 이 방법이 방법을 실시하도록 구성되는, 도 1에 도시된 것과 같은 예시적인 시스템(100)과 관련하여 논의된다. 본 명세서에 개략적으로 설명되어 있는 단계들은 예시적인 것이며, 소정의 단계를 배제하거나 부가하거나 수정하는 조합을 비롯한 그의 임의의 조합으로 구현될 수 있다. 이 방법을 실시하는 시스템(100)은 샌드박스 환경에서 사용하기 위한 문서를 수신하고(502), 문서 내의 참조들을 찾아내어 참조들의 목록을 산출하는 파서에 문서를 전달하며(504), 참조들을 검증하여 검증된 참조들의 목록을 산출하는 검증기에 참조들의 목록을 전달한다(506). 이어서, 이 시스템(100)은 검증된 참조들의 목록에 기초하여, 샌드박스 환경을 수정할 수 있다(508). 문서는 다른 자원들, 예컨대 PDF 및 Quicktime 문서 - 그러나, 이들 특정의 형식으로 제한되지 않음 - 에 대한 참조들을 포함하는 임의의 컴퓨터 파일 또는 다수의 파일들일 수 있다. 샌드박스 환경을 필요로 하는 문서는 신뢰할 수 없는 소스로부터의 문서 또는 가능하게는 변조되었을 수 있는 문서일 수 있거나, 시스템은 모든 문서들이 참조 유지 프로세스를 거칠 것을 필요로 할 수 있다. 이 시스템은 특정의 유형의 모든 문서들을 샌드박스 환경에 둘 수 있다. 특정의 응용 프로그램 또는 운영 체제 설정은 파일에 액세스할 때 샌드박스를 사용할지 여부의 결정에 영향을 미칠 수 있다. 파일 자체는 그 파일이 샌드박스에서 사용되어야 하는지 여부를 나타내는 플래그 또는 태그를 포함할 수 있다. 문서 내의 다른 자원들에 대한 참조들은 다른 컴퓨터 파일들에 대한 참조들, 또는 문서 내의 다른 파일들 또는 자원들에 대한 참조들일 수 있다. 자원들은 원본 문서와 동일한 형식으로 되어 있거나 상이한 형식으로 되어 있을 수 있다. 예를 들어, PDF 형식으로 된 원본 문서는 다른 PDF 파일들 또는 사용자, 응용 프로그램, 조정기 또는 검증기에 의해 명시되는 임의의 다른 파일 형식, 예컨대 Excel 또는 Word에 대한 참조들을 포함할 수 있다. 이 시스템(100)은, 예를 들어, Quicktime 파일 형식으로 저장된 문서들이 다른 비디오 형식, 예컨대 AVI에만 액세스할 수 있을 것을 필요로 할 수 있다.
도 6은 샌드박스에 참조들을 유지하는 것을 나타낸 것이다. 응용 프로그램(602)은 문서를 조정기(604)로 송신하고, 조정기(604)는 자원들에 대한 참조들의 검증을 조정한다. 조정기(604)는 다른 자원들에 대한 문서 내의 참조들을 찾아내고 참조들의 목록을 산출하는 파서(606)에 문서를 전달한다(504). 파서(606)는 보안을 위해 그 자신의 샌드박스의 내부에서 동작할 수 있고, 따라서 파서는 문서 이외의 임의의 다른 자원들에 또는 조정기로부터 전달된 문서의 일부분에 액세스할 수 없다. 파서(606)는 다른 파일들에 대한 참조들을 찾아 문서를 파싱하고 문서에서 발견된 참조들의 목록을 생성한다. 예를 들어, 파서(606)는 문서들 또는 영상들에 대한 링크들이 있는지 HTML을 파싱할 수 있거나, 특정의 태그 또는 데이터가 있는지 XML을 파싱할 수 있거나, 다른 자원들에 대한 참조들이 있는지 PDF(Portable Document Format)를 파싱할 수 있다. 파서(606)는 참조들의 목록을 다시 조정기(604)로 송신하고, 조정기(604)는 이어서 파서에 의해 출력되는 열거된 참조들의 검증을 위해, 참조들의 목록을 검증기(608)로 송신한다(506).
검증기도 그 자신의 샌드박스에서 동작할 수 있으며, 따라서 잠재적으로 악의적이거나 유해할 수 있는 컴퓨터 파일을 여는 것이 컴퓨팅 시스템을 손상시키지 않는다. 파서 및/또는 검증기를 그 자신의 샌드박스 환경에서 실행시키는 것은, 자원이 위협을 포함하거나 다른 방식으로 안전하지 않은 경우, 나머지 컴퓨팅 시스템을 보호할 수 있다. 샌드박스 환경에서, 바이러스는 자유롭게 로밍할 수 있지만, 이 시스템은 샌드박스 외부에서의 어떤 동작도 허용하지 않을 수 있고, 그에 의해 나머지 시스템을 보호한다.
검증기(608)는 참조들의 목록에 있는 각각의 자원 또는 파일을 열고, 실제의 시스템 거동을 예상된 시스템 거동과 비교한다. 검증기는 또한 파일이 예상된 파일 유형인지를 검증할 수 있다. 예를 들어, 이 시스템(100)은 특정의 문서에 대한 참조들의 목록에서의 모든 참조들이 PDF 파일들일 것을 필요로 할 수 있다. 검증기는, 파일 이름 확장자를 검사하고 및/또는 파일을 여는 것에 의해, 목록 내의 모든 참조들이 PDF 파일들인지를 검증할 수 있다. 검증기는 참조들의 어느 양태가 검증되어야만 하는지, 참조들을 어떻게 검증해야 하는지, 및 참조들을 검증할 때 어떤 허용오차(있는 경우)를 적용할지에 관한 파라미터들 및/또는 명령어들을 조정기(604)로부터 수신할 수 있다. 예를 들어, 검증기는 각각의 자원이 열릴 때 시스템 거동을 관찰하고 그 거동을 예상된 시스템 거동과 비교할 수 있다. 검증기는, 프로그램을 손상시키는 등, 예상된 대로 기능하지 않는 참조를 검증하지 않을 것이다. 일 변형에서, 검증기는 단순히 참조에 의해 표시된 특정의 경로에 파일이 존재하는지를 검사한다. 검증기는, 참조들의 목록을 검증하는 것을 완료하면, 검증된 참조들의 목록을 다시 조정기(604)로 송신하고, 조정기(604)는 이어서 검증된 참조들의 목록을 다시 응용 프로그램(602)으로 송신한다. 응용 프로그램은 검증된 참조들의 목록에 기초하여 문서에 대한 원래의 샌드박스를 확장시켜(508), 수정된 샌드박스 환경을 생성한다. 수정된 샌드박스 환경은 검증기에 의해 검증된 참조들의 목록과 연관되어 있는 자원들을 포함하고 및/또는 그에 대한 액세스를 제공한다.
도 7은 샌드박싱된 응용 프로그램에 의해 열린 예시적인 파일을 나타낸 것이다. 이 시스템은 샌드박싱된 응용 프로그램(702)에 의해 파일 weather.pdf을 연다. 이 weather 파일은 tornadoes.pdf(704), wind.docx(706), tsunami_warning.pdf(708), 및 temperature.xlsx(710)에 대한 내장된 참조들을 포함한다. 샌드박스 환경은 응용 프로그램이 내장된 참조들에 액세스하는 것을 허용하지 않으며, 이는 내장된 참조들에 액세스하려고 시도하는 사용자의 좌절을 야기할 수 있다. 샌드박스 응용 프로그램 내에서 참조들에 대한 액세스를 가능하게 하는 것은 문서가 제공하는 것 이외의 부가 정보를 원하는 사용자에게 유익할 수 있다.
도 8은 문서 내의 참조들을 추출, 파싱 및 검증하고 샌드박스 환경을 확장시킨 후의 시스템을 나타낸 것이다. 응용 프로그램은 파일 weather.pdf를 조정기로 송신하고, 조정기는 이어서 그 파일을 파서로 송신한다. 파서는 샌드박스 환경에서 파일을 열고, 자원들 - 이 예에서, 파일들 tornadoes.pdf(704), wind.docx(706), tsunami_warning.pdf(708), 및 temperature.xlsx(710) - 에 대한 내장된 참조들을 찾아낸다. 파서는 이들 파일에 대한 내장된 참조들의 목록을 발생하고, 참조들의 목록을 조정기로 송신한다. 조정기는 참조들의 목록을 그 자신의 샌드박스 환경에서 동작하는 검증기(608)로 송신한다. 검증기는 각각의 파일의 파일 형식이 예상된 형식인지를 검사하고 및/또는 부가의 검증 대책을 수행할 수 있다. 예를 들어, 이 시스템은, 검증기가 특정의 문서에 대한 PDF 파일들만을 검증할 것을 필요로 하는 경우, 각각의 파일이 PDF 형식으로 되어 있는지를 검사한다. 검증기는, 예를 들어, PDF 파일만을 검증하는 또는 PDF 파일 및 Microsoft Word 파일을 검증하는 명령어들을 수신할 수 있다. 이 예에서, 이 시스템은 검증기가 PDF 파일만을 검증할 것을 필요로 한다. 검증기는 또한 참조들의 목록에 있는 각각의 파일을 열고 시스템 거동을 관찰할 수 있다. 이 시스템이 예상된 대로 거동하고 파일 형식이 예상된 유형인 경우, 검증기는 파일을 검증할 수 있다. 검증기는 검증된 참조들의 목록을 조정기로 송신하고, 이 경우에, 검증된 참조들의 목록은 파일들 tornadoes.pdf(804) 및 tsunami_warning.pdf(808)이다. 파일들 wind.docx(806) 및 temperature. xlsx(810)는 검증된 참조들의 목록에 포함되지 않는데, 그 이유는 이들이 예상된 파일 유형 - 이 예에서, PDF - 이 아니기 때문이다. 조정기는 검증된 참조들의 목록을 응용 프로그램으로 송신한다. 응용 프로그램은 검증된 참조들 tornadoes.pdf(804) 및 tsunami_warning.pdf(808)를 포함하는 수정된 샌드박스(812)를 생성하기 위해 샌드박스(712)를 확장시킨다. 파일들 wind.docx(806) 및 temperature.xlsx(810)는 수정된 샌드박스의 내부에서 허용되지 않는데, 그 이유는 이들이 검증기에 의해 조정기로 송신되는 검증된 참조들의 목록 상에 포함되지 않았기 때문이다. 수정된 샌드박스(812) 내부에 있는 응용 프로그램(802)은 이제 검증된 참조들 tornadoes.pdf(804) 및 tsunami_warning.pdf(808)에 액세스할 수 있다.
사용자의 관점에서 볼 때, weather.pdf에서 tornadoes.pdf(804) 또는 tsunami_warning.pdf(808)로의 링크를 클릭하는 것은 투명할 것이다. 사용자는 그 파일들로의 링크들을 클릭할 수 있고, 이 시스템은 이들을 열 수 있는데, 그 이유는 그 자원들이 수정된 샌드박스(812)에 있기 때문이다. 그러나, 사용자가 wind.docx(806) 또는 temperature.xlsx(810)로의 링크를 클릭하는 경우, 이 시스템은 그 자원을 열라는 요청을 거부할 수 있다. 예를 들어, 이 시스템은 단순히 샌드박스 외부에 있는 자원들에 액세스하라는 요청들을 무시할 수 있다. 대안으로서, 이 시스템은 원하는 자원들이 액세스 가능하지 않다는 것을 나타내는 오류 메시지를 사용자에게 제시할 수 있다. 이 시스템은, 아마도 검증기로부터 반환된 코드 또는 메시지에 기초하여, 원하는 자원이 왜 액세스 가능하지 않은지를 나타내는 메시지를 사용자에게 제시할 수 있다. 게다가, 이 시스템은 이 및/또는 기타 정보를 사용자에게 제시하고, 액세스 가능하지 않은 자원에 대한 액세스를 제공하기 위해 수정된 샌드박스 환경을 확장시킬지 여부를 사용자에게 프롬프트할 수 있다.
일 양태에서, 문서에서 참조되는 다른 자원들을 포함하도록 샌드박스 환경을 확장시키거나 수정하는 것의 일부로서, 이 시스템은 수정된 샌드박스에서 액세스 가능하지 않은 다른 자원들의 임시 백업 사본을 저장할 수 있다. 이러한 방식으로, 악의적 코드가 수정된 샌드박스 환경에서 어떻게든 실행되고 자원들을 변경하더라도, 이 시스템은 임시 백업 사본으로 되돌아갈 수 있다.
다른 실시예에서, 이 시스템(100)은, 도 9에 도시된 바와 같이, 조정기를 사용하는 일 없이 샌드박스에 참조들을 유지한다. 샌드박스 환경 내의 응용 프로그램(902)은 내장된 참조들을 가지는 문서의 전부 또는 일부를 파서(904)로 송신한다. 파서(904)는 문서 내의 참조들을 찾아내고 참조들의 목록을 출력한다. 파서(904)는 참조들의 목록을 검증기(906)로 직접 송신한다. 검증기(906)는 참조들의 목록 내의 적어도 하나의 참조를 검증하고 검증된 참조들의 목록을 발생한다. 검증된 참조들의 목록은 0개, 1개, 또는 그 이상의 참조들을 포함할 수 있다. 검증기(906)는 검증된 참조들의 목록을 응용 프로그램(902)으로 송신하고, 응용 프로그램(902)은, 적어도 하나의 검증된 참조가 목록에 포함되는 경우, 수정된 샌드박스 환경을 생성하기 위해 샌드박스를 확장시킨다. 검증된 참조들을 포함하도록 샌드박스 환경이 확장된다. 보안의 대가로, 샌드박스에 참조들을 유지하는 이 수정된 방식은 조정기의 사용을 필요로 하지 않는 보다 간단하고 잠재적으로 구현하기 보다 용이한 방식이다. 조정기는 자원들을 실제로 터치하지 않는 유일한 프로세스이다. 조정기는 문서를 파싱하지도 않고 외부 자원들을 검사하려고 시도하지도 않는다. 따라서, 조정기는 부당 이용(exploit)의 대상이 될 가능성이 없는 프로세스이다. 이와 같이, 조정기는, 부당 이용 또는 다른 공격의 위험이 감소된 상태에서, 보안에 관련되어 있거나 그렇지 않을 수 있는 일부 추가의 검사를 수행할 수 있다.
사용자 경험 및/또는 인지된 성능에 관련된 일 양태에서, 샌드박스에서 사용하기 위한 문서를 처리할 때, 이 시스템은, 사용자가 보기 위한 문서를 빠르게 로드할 수 있도록, 참조들을 파싱 또는 검증하기 전에 먼저 문서를 비수정된 샌드박스에 로드할 수 있다. 이어서, 사용자가 문서를 보고 있는 동안, 이 시스템은 백그라운드에서 문서 내의 참조들을 파싱하고 검증하며, 파싱되고 검증된 참조들에 기초하여, 샌드박스 환경을 확장시킬 수 있다. 이것은, 참조들에 의해 표시되는 자원들에 대한 지연된 액세스를 제공하면서, 사용자에게 문서가 신속하게 로드되었다는 인지를 제공한다. 이 시스템은, 배치 모드(batch mode)에서 또는 한번에 하나씩, 백그라운드에서 참조들을 파싱하고 검증할 수 있다. 예를 들어, 배치 모드에서, 이 시스템은 문서로부터의 모든 참조들을 파싱하고, 모든 참조들을 검증하며, 이어서 샌드박스 환경을 그에 따라 확장시킨다. 대안으로서, 이 시스템이 하나의 참조를 파싱하자마자, 검증기는 이어서 그 참조를 검증할 수 있고, 이 시스템은, 파서가 다른 참조들을 계속 탐색하는 동안, 그 단일의 참조에 대해 샌드박스 환경을 확장시킬 수 있다. 이들 경우 둘 다에서, 먼저 문서를 보기 위해 샌드박스 환경이 로드되고, 이어서 문서를 로드한 후에 그리고 사용자가 문서를 탐색하거나, 보거나 다른 방식으로 액세스할 수 있는 동안, 샌드박스 환경이 백그라운드에서 확장되거나 다른 방식으로 수정된다.
본 개시 내용의 범위 내의 실시예는 또한 컴퓨터 실행가능 명령어 또는 데이터 구조를 전달 또는 저장하는 유형의(tangible) 및/또는 비일시적 컴퓨터 판독가능 저장 매체를 포함할 수 있다. 이러한 비일시적 컴퓨터 판독가능 저장 매체는 범용 또는 특수 목적 컴퓨터 - 전술한 바와 같은 임의의 특수 목적 프로세서의 기능 설계를 포함함 - 에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있다. 제한이 아닌 예로서, 이러한 비일시적 컴퓨터 판독가능 매체는, 컴퓨터 실행가능 명령어, 데이터 구조, 또는 프로세서 칩 설계 형태의 원하는 프로그램 코드 수단을 전달 또는 저장하는 데 사용될 수 있는 RAM, ROM, EEPROM, CD-ROM 또는 기타 광 디스크 저장 장치, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 임의의 다른 매체를 포함할 수 있다. 정보가 네트워크 또는 다른 통신 연결(유선, 무선, 또는 이들의 조합)을 통해 컴퓨터로 전송 또는 제공될 때, 컴퓨터는 적절하게 이 연결을 컴퓨터 판독가능 매체로 본다. 따라서, 임의의 이러한 연결을 적절하게 컴퓨터 판독가능 매체라고 한다. 상기한 것들의 조합도 역시 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
컴퓨터 실행가능 명령어는, 예를 들어, 범용 컴퓨터, 특수 목적 컴퓨터, 또는 특수 목적 처리 장치로 하여금 소정의 기능 또는 일군의 기능을 수행하게 하는 명령어 및 데이터를 포함한다. 컴퓨터 실행가능 명령어는 또한 독립형 또는 네트워크 환경에서 컴퓨터에 의해 실행되는 프로그램 모듈을 포함한다. 일반적으로, 프로그램 모듈은 특정의 작업을 수행하거나 특정의 추상 데이터 형식을 구현하는 루틴, 프로그램, 구성요소, 데이터 구조, 객체, 및 특수 목적 프로세서의 설계에 본질적인 기능 등을 포함한다. 컴퓨터 실행가능 명령어, 연관된 데이터 구조, 및 프로그램 모듈은 본 명세서에 개시된 방법의 단계를 실행하는 프로그램 코드 수단의 예를 나타낸다. 이러한 실행가능 명령어 또는 연관된 데이터 구조의 특정의 시퀀스는 이러한 단계에 기술된 기능을 구현하는 대응하는 동작의 예를 나타낸다.
기술 분야의 당업자는 본 개시 내용의 다른 실시예가 개인용 컴퓨터, 핸드헬드 장치, 멀티프로세서 시스템, 마이크로프로세서-기반 또는 프로그램 가능 가전 제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터 등을 비롯한 많은 유형의 컴퓨터 시스템 구성을 갖는 네트워크 컴퓨팅 환경에서 실시될 수 있다는 것을 이해할 것이다. 실시예는 또한 작업이 통신 네트워크를 통해 (유선 링크, 무선 링크 또는 이들의 조합에 의해) 연결되어 있는 로컬 및 원격 처리 장치에 의해 수행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 분산 컴퓨팅 환경에서는, 프로그램 모듈이 로컬 메모리 저장 장치 및 원격 메모리 저장 장치 둘 다에 위치할 수 있다.
전술한 다양한 실시예가 단지 예시로서 제공된 것이며 본 개시 내용의 범위를 제한하는 것으로 해석되어서는 안 된다. 예를 들어, 본 명세서에서의 원리들은 컴퓨팅 시스템을 보호하기 위해 샌드박스 방법을 이용하는 임의의 응용에 적용될 수 있다. 기술 분야의 당업자는, 본 명세서에 예시되고 기술된 예시적인 실시예 및 응용을 따르지 않고 또한 본 개시 내용의 사상 및 범위를 벗어나지 않고, 본 명세서에 기술된 원리들에 행해질 수 있는 다양한 수정 및 변경을 용이하게 인식할 것이다.

Claims (15)

  1. 샌드박스 환경(sandbox environment)에 참조들을 유지하기 위한 방법으로서,
    컴퓨팅 장치의 프로세서를 통해, 상기 샌드박스 환경에 대해 내부적인 문서를, 상기 샌드박스 환경 내에서 실행되는 어플리케이션에서 사용하기 위해 수신하는 단계;
    참조들의 목록을 산출하기 위해서 상기 샌드박스 환경에 대해 외부적인 자원들에 대한 상기 문서 내의 참조들(references)을 찾아내는 파서에 상기 문서를 전달하는 단계;
    검증된 참조들의 목록을 산출하기 위해서 상기 참조들의 목록 내의 참조들과 연관된 자원들 중 어떤 자원들이 소정의 샌드박스 기준을 만족하는지 검증하는 검증기에 상기 참조들의 목록을 전달하는 단계; 및
    상기 검증된 참조들의 목록과 연관된 상기 자원들이 상기 샌드박스 환경에 대해 내부적인 자원들로 포함되도록 상기 어플리케이션에 대한 상기 샌드박스 환경을 확장하여, 상기 어플리케이션에 대한 확장된 샌드박스 환경을 산출하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 검증된 참조들의 목록에 기초하여 상기 확장된 샌드박스 환경에서 상기 문서를 로드하는 단계를 더 포함하는 방법.
  3. 제2항에 있어서, 상기 확장된 샌드박스 환경은 상기 검증된 참조들의 목록과 연관된 자원들에 대한 액세스를 상기 어플리케이션에 제공하는 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 샌드박스 환경은 컴퓨팅 자원들의 사전 정의된 제한된 세트 내에서 동작하도록 상기 어플리케이션에 액세스를 제공하는 방법.
  5. 제4항에 있어서, 상기 컴퓨팅 자원들의 사전 정의된 제한된 세트는 상기 참조들의 목록을 포함하는 방법.
  6. 샌드박스 환경에 참조들을 유지하기 위한 시스템으로서,
    프로세서; 및
    단계들을 수행하도록 상기 프로세서를 제어하기 위한 명령어들을 저장하는 비일시적 컴퓨터 판독가능 저장 매체
    를 포함하고,
    상기 단계들은,
    조정기로부터, 상기 샌드박스 환경에 대해 외부적인 자원들에 대한 참조들의 목록을 수신하는 단계 - 상기 참조들의 목록은 상기 샌드박스 환경 내에서 실행되는 어플리케이션에서 사용하기 위한 상기 샌드박스 환경에 대해 내부적인 문서로부터 추출됨 -,
    검증된 참조들의 목록을 산출하기 위해서, 상기 참조들의 목록 내의 참조들에 의해 표시되는 상기 자원들 중 어떤 자원들이 소정의 샌드박스 기준을 만족하는지 검증하는 단계, 및
    상기 검증된 참조들의 목록에 의해 표시되는 자원들이 확장된 샌드박스 환경에 대해 내부적인 자원들로 포함되도록 상기 어플리케이션에 대한 샌드박스 환경을 확장하는 단계
    를 포함하는 시스템.
  7. 제6항에 있어서, 상기 자원들을 검증하는 단계는 실제 자원 형식과 상기 소정의 샌드박스 기준에 의해 지정된 예상 자원 형식을 비교하는 단계를 포함하는 시스템.
  8. 제7항에 있어서, 상기 예상 자원 형식은 상기 문서의 형식과 일치(match)하는 시스템.
  9. 제7항에 있어서, 상기 예상 자원 형식은 상기 문서의 형식과 상이한 시스템.
  10. 제6항에 있어서, 상기 각각의 자원을 검증하는 단계는 상기 각각의 자원을 열고, 실제 시스템 거동과 예상 시스템 거동을 비교하는 단계를 더 포함하는 시스템.
  11. 컴퓨팅 장치에 의해 실행될 때, 상기 컴퓨팅 장치로 하여금 샌드박스 환경에 참조들을 유지하게 하는 명령어들을 저장하는 비일시적 컴퓨터 판독가능 저장 매체로서,
    상기 명령어들은,
    상기 샌드박스 환경 내에서 실행되는 어플리케이션에서 사용하기 위한 문서를 조정기에 전달하는 것 - 상기 문서는 참조들을 포함하고, 상기 문서는 상기 샌드박스 환경에 대해 내부적임 -;
    상기 조정기를 통해, 상기 문서를 파서에 전달하는 것 - 상기 파서는 상기 문서에서 상기 샌드박스 환경에 대해 외부적인 자원들에 대한 참조들을 찾아내어, 참조들의 목록을 산출함 -;
    상기 조정기를 통해, 상기 참조들의 목록을 검증기에 전달하는 것 - 상기 검증기는 상기 참조들의 목록 내의 참조들에 의해 지시되는 자원들 중 어느 자원들이 소정의 샌드박스 기준을 만족하는지 검증하여, 검증된 참조들의 목록을 산출함 -; 및
    상기 검증된 참조들의 목록에 의해 지시되는 자원들이 확장된 샌드박스 환경에 대해 내부적인 자원들로 포함되도록 상기 어플리케이션에 대한 샌드박스 환경을 확장시키는 것
    을 포함하는 비일시적 컴퓨터 판독가능 저장 매체.
  12. 제11항에 있어서, 상기 파서는 개별 샌드박스 환경에서 동작하는 비일시적 컴퓨터 판독가능 저장 매체.
  13. 제12항에 있어서, 상기 개별 샌드박스 환경은 상기 파서가 상기 문서에만 액세스할 수 있게 하는 비일시적 컴퓨터 판독가능 저장 매체.
  14. 제11항 내지 제13항 중 어느 한 항에 있어서, 상기 검증기는 개별 샌드박스 환경에서 동작하는 비일시적 컴퓨터 판독가능 저장 매체.
  15. 삭제
KR1020137033228A 2011-06-03 2012-05-10 샌드박스에 참조들을 유지하는 시스템 및 방법 KR101565230B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/153,274 US8601579B2 (en) 2011-06-03 2011-06-03 System and method for preserving references in sandboxes
US13/153,274 2011-06-03
PCT/US2012/037400 WO2012166316A1 (en) 2011-06-03 2012-05-10 System and method for preserving references in sandboxes

Publications (2)

Publication Number Publication Date
KR20140016380A KR20140016380A (ko) 2014-02-07
KR101565230B1 true KR101565230B1 (ko) 2015-11-02

Family

ID=46177527

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137033228A KR101565230B1 (ko) 2011-06-03 2012-05-10 샌드박스에 참조들을 유지하는 시스템 및 방법

Country Status (9)

Country Link
US (1) US8601579B2 (ko)
EP (1) EP2715589B1 (ko)
JP (1) JP5748905B2 (ko)
KR (1) KR101565230B1 (ko)
CN (1) CN103582888B (ko)
AU (1) AU2012262867B2 (ko)
BR (1) BR112013030584B1 (ko)
MX (1) MX2013013970A (ko)
WO (1) WO2012166316A1 (ko)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10334324B2 (en) 2008-11-26 2019-06-25 Free Stream Media Corp. Relevant advertisement generation based on a user operating a client device communicatively coupled with a networked media device
US9154942B2 (en) 2008-11-26 2015-10-06 Free Stream Media Corp. Zero configuration communication between a browser and a networked media device
US9386356B2 (en) 2008-11-26 2016-07-05 Free Stream Media Corp. Targeting with television audience data across multiple screens
US10880340B2 (en) 2008-11-26 2020-12-29 Free Stream Media Corp. Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device
US8180891B1 (en) 2008-11-26 2012-05-15 Free Stream Media Corp. Discovery, access control, and communication with networked services from within a security sandbox
US10631068B2 (en) 2008-11-26 2020-04-21 Free Stream Media Corp. Content exposure attribution based on renderings of related content across multiple devices
US10567823B2 (en) 2008-11-26 2020-02-18 Free Stream Media Corp. Relevant advertisement generation based on a user operating a client device communicatively coupled with a networked media device
US9961388B2 (en) 2008-11-26 2018-05-01 David Harrison Exposure of public internet protocol addresses in an advertising exchange server to improve relevancy of advertisements
US9986279B2 (en) 2008-11-26 2018-05-29 Free Stream Media Corp. Discovery, access control, and communication with networked services
US10419541B2 (en) 2008-11-26 2019-09-17 Free Stream Media Corp. Remotely control devices over a network without authentication or registration
US9026668B2 (en) 2012-05-26 2015-05-05 Free Stream Media Corp. Real-time and retargeted advertising on multiple screens of a user watching television
US9519772B2 (en) 2008-11-26 2016-12-13 Free Stream Media Corp. Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device
US10977693B2 (en) 2008-11-26 2021-04-13 Free Stream Media Corp. Association of content identifier of audio-visual data with additional data through capture infrastructure
US8695060B2 (en) 2011-10-10 2014-04-08 Openpeak Inc. System and method for creating secure applications
US9771403B2 (en) * 2013-12-09 2017-09-26 Sangamo Therapeutics, Inc. Methods and compositions for treating hemophilia
KR102149679B1 (ko) 2014-02-13 2020-08-31 삼성전자주식회사 데이터 저장 장치, 그 동작 방법, 및 이를 포함하는 데이터 처리 시스템
US9766981B2 (en) 2014-06-10 2017-09-19 Institute For Information Industry Synchronization apparatus, method, and non-transitory computer readable storage medium
US8938547B1 (en) 2014-09-05 2015-01-20 Openpeak Inc. Method and system for data usage accounting in a computing device
US9100390B1 (en) 2014-09-05 2015-08-04 Openpeak Inc. Method and system for enrolling and authenticating computing devices for data usage accounting
US20160071040A1 (en) 2014-09-05 2016-03-10 Openpeak Inc. Method and system for enabling data usage accounting through a relay
US9232013B1 (en) 2014-09-05 2016-01-05 Openpeak Inc. Method and system for enabling data usage accounting
US9350818B2 (en) 2014-09-05 2016-05-24 Openpeak Inc. Method and system for enabling data usage accounting for unreliable transport communication
US9633200B2 (en) * 2014-09-26 2017-04-25 Oracle International Corporation Multidimensional sandboxing for financial planning
CN104967615B (zh) * 2015-06-03 2018-02-23 浪潮集团有限公司 一种安全sdn控制器及基于该控制器的网络安全方法
US20170060112A1 (en) * 2015-08-24 2017-03-02 Katrina Danielle PIRNER Control program for accessing browser data and for controlling appliance
CN105844151B (zh) * 2016-03-18 2020-01-21 山东华软金盾软件股份有限公司 一种文件存储保护实现方法和系统
US10162653B2 (en) * 2016-03-31 2018-12-25 Vmware, Inc. Capturing components of an application using a sandboxed environment
CN107358095B (zh) 2016-05-10 2019-10-25 华为技术有限公司 一种威胁检测方法、装置及网络系统
US10700894B2 (en) 2016-06-01 2020-06-30 At&T Intellectual Property I, L.P. Network caching of outbound content from endpoint device to prevent unauthorized extraction
US11366789B2 (en) * 2017-06-29 2022-06-21 Microsoft Technology Licensing, Llc Content access
EP3602320B1 (en) * 2017-08-22 2021-12-29 Google LLC Reducing remote procedure calls for multimedia content delivery
WO2020219845A1 (en) * 2019-04-24 2020-10-29 Bluebird Bio, Inc. Wiskott-aldrich syndrome gene homing endonuclease variants, compositions, and methods of use
US10788957B1 (en) * 2019-08-22 2020-09-29 Intel Corporation Web page designing with sandboxed custom editors
KR20230015956A (ko) * 2020-06-21 2023-01-31 애플 인크. 애플리케이션 특정 네트워크 데이터 필터링

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070192623A1 (en) 2006-02-16 2007-08-16 Sashikanth Chandrasekaran Method and apparatus for preventing unauthorized access to computer system resources
JP2008500653A (ja) 2004-06-29 2008-01-10 インテル・コーポレーション サンドボックス法によるコンピュータセキュリティ向上方法
US20080016339A1 (en) 2006-06-29 2008-01-17 Jayant Shukla Application Sandbox to Detect, Remove, and Prevent Malware

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6367012B1 (en) * 1996-12-06 2002-04-02 Microsoft Corporation Embedding certifications in executable files for network transmission
US7444678B2 (en) * 2003-10-28 2008-10-28 Aol Llc Securing resources from untrusted scripts behind firewalls
US10019570B2 (en) * 2007-06-14 2018-07-10 Microsoft Technology Licensing, Llc Protection and communication abstractions for web browsers
JP2009031952A (ja) * 2007-07-25 2009-02-12 Tokai Television Broadcasting Co Ltd 情報提供システムおよび情報提供方法
US8200522B2 (en) * 2007-10-26 2012-06-12 International Business Machines Corporation Repeatable and standardized approach for deployment of a portable SOA infrastructure within a client environment
US8326872B2 (en) 2008-02-22 2012-12-04 Microsoft Corporation Database sandbox
JP5225003B2 (ja) * 2008-10-01 2013-07-03 キヤノン株式会社 メモリ保護方法、情報処理装置、メモリ保護プログラム及びメモリ保護プログラムを記録した記録媒体
US8341738B2 (en) 2009-09-29 2012-12-25 Oracle America, Inc. API signature verification for high-security platforms
US9098719B2 (en) * 2011-02-03 2015-08-04 Apple Inc. Securing unrusted content for collaborative documents

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008500653A (ja) 2004-06-29 2008-01-10 インテル・コーポレーション サンドボックス法によるコンピュータセキュリティ向上方法
US20070192623A1 (en) 2006-02-16 2007-08-16 Sashikanth Chandrasekaran Method and apparatus for preventing unauthorized access to computer system resources
US20080016339A1 (en) 2006-06-29 2008-01-17 Jayant Shukla Application Sandbox to Detect, Remove, and Prevent Malware

Also Published As

Publication number Publication date
CN103582888B (zh) 2017-02-15
MX2013013970A (es) 2014-02-27
US8601579B2 (en) 2013-12-03
JP2014519120A (ja) 2014-08-07
EP2715589B1 (en) 2018-05-09
CN103582888A (zh) 2014-02-12
KR20140016380A (ko) 2014-02-07
JP5748905B2 (ja) 2015-07-15
BR112013030584A2 (pt) 2016-09-27
EP2715589A1 (en) 2014-04-09
BR112013030584B1 (pt) 2021-04-27
WO2012166316A1 (en) 2012-12-06
US20120311702A1 (en) 2012-12-06
AU2012262867B2 (en) 2015-12-17

Similar Documents

Publication Publication Date Title
KR101565230B1 (ko) 샌드박스에 참조들을 유지하는 시스템 및 방법
AU2012262867A1 (en) System and method for preserving references in sandboxes
JP6248153B2 (ja) 信頼レベルのアクティブ化
US9946871B2 (en) Isolation and presentation of untrusted data
Jung et al. Repackaging attack on android banking applications and its countermeasures
EP2680140B1 (en) A method, an apparatus and a computer program product for extending an application in a client device
KR101882871B1 (ko) 보안 웹 위젯 런타임 시스템을 위한 방법 및 장치
US20170090929A1 (en) Hardware-assisted software verification and secure execution
US20140325644A1 (en) Operating system-independent integrity verification
WO2015183456A1 (en) Consistent extension points to allow an extension to extend functionality of an application to another application
KR20130114733A (ko) 보안 시스템에서 랜덤하게 할당된 메모리 범위로 jit를 지원하는 시스템 및 방법
US11190356B2 (en) Secure policy ingestion into trusted execution environments
KR20220090537A (ko) 정책 적용을 위한 가상 환경 유형 검증
US20220006637A1 (en) File system supporting remote attestation-based secrets
CN113239329A (zh) 一种用于移动端应用程序的可信执行环境的实现系统
US20210311644A1 (en) System and method to secure a computer system by selective control of write access to a data storage medium
EP3574428B1 (en) Safe data access through any data channel
WO2020185417A1 (en) Secure policy ingestion into trusted execution environments
EP2581853B1 (en) Method and apparatus for secure web widget runtime system
Johnstone et al. Controlled Android application execution for the IoT infrastructure
Davidson Enhancing Mobile Security and Privacy through App Splitting

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
G170 Publication of correction