KR20050039661A - 운영 체제 리소스 보호 - Google Patents
운영 체제 리소스 보호 Download PDFInfo
- Publication number
- KR20050039661A KR20050039661A KR1020040084907A KR20040084907A KR20050039661A KR 20050039661 A KR20050039661 A KR 20050039661A KR 1020040084907 A KR1020040084907 A KR 1020040084907A KR 20040084907 A KR20040084907 A KR 20040084907A KR 20050039661 A KR20050039661 A KR 20050039661A
- Authority
- KR
- South Korea
- Prior art keywords
- application program
- application
- resource
- access
- operating system
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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/54—Monitoring 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 adding security routines or objects to programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/51—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/568—Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Virology (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
본 발명은 애플리케이션 프로그램과 관련된 특권의 기능으로서 리소스에 대한 애플리케이션 프로그램 액세스를 승인하는 것에 관한 것이다. 본 발명의 실시예는 애플리케이션 프로그램 또는 애플리케이션 프로그램 그룹의 컴포넌트들과 관련된 영구 개별 아이덴티티를 사용해서, 운영 체제가 컴퓨팅 시스템에 설치된 상이한 애플리케이션 프로그램들 또는 애플리케이션 프로그램 그룹들을 식별 및 차별화할 수 있게 해준다. 애플리케이션 프로그램의 각각의 컴포넌트와 관련된 아이덴티티는 애플리케이션 프로그램의 식별 및 삭제 또는 설치 제거를 가능케 해준다. 또한 아이덴티티는 애플리케이션 프로그램의 리소스들의 격리 및 운영 체제 리소스들의 보호를 가능케 한다.
Description
본 출원은 2003년 10월 24일에 출원된 미국 임시 출원 번호 제60/513,941호의 이익을 청구한다. 이와 함께 "소프트웨어 제품용 애플리케이션 아이덴티티(Application Identity for Software Product)"라는 제목의 비임시 특허 출원, 위임 문서 번호 MS#307048.01(5102)(이 또한 2003년 10월 24일에 출원된 미국 임시 출원 번호 제60/513,941호의 이익을 청구함)가 동시에 출원되는데, 전체 명세서가 본 명세서에 참조용으로 인용된다.
본 발명의 실시예들은 컴퓨터용 운영 체제 분야에 관한 것이다. 특히, 본 발명의 실시예들은 운영 체제에 의한 애플리케이션 설치, 실행 및 삭제 관리에 관한 것이다.
운영 체제들은 그 용도 및 신뢰성 향상에 있어서 장족의 진보를 해 왔지만, 애플리케이션 프로그램 설치, 관리 및 삭제(즉, 설치 제거)에 대한 사용자 경험상 더 향상될 필요가 있다. 예를 들어, 애플리케이션 프로그램은 설치 중에 시스템 세팅을 부정확하게 구성할 수도 있으며 다른 애플리케이션 프로그램이 필요로 하는 파일을 겹쳐 쓸 수도 있다. 또한 사용자가 애드웨어(ad-ware) 또는 스파이웨어(spy-ware)와 같은 바람직하지 않은 애플리케이션들을 설치 제거하기가 어려울 수도 있다. 다수의 시스템 충돌 및 성능 강하(예를 들어, 느려진 부팅 타임)가 또 한 애플리케이션의 문제점들이 될 수도 있다. 예를 들어, 이하의 상황들이 애플리케이션 프로그램 및 아마도 기본 운영 체제가 실패하게 하는 원인이 될 수도 있다: 애플리케이션의 불완전한 설치 제거, 애플리케이션 프로그램 설치 제거중의 과도한 삭제, 및 비적합한 파일 기억.
몇몇 현 운영 체제에서, 새롭게 설치된 애플리케이션 프로그램은 새롭게 설치된 애플리케이션 프로그램이 필요로 하는 구신 버전으로 공유 DLL(dynamic-link library)를 겹쳐쓸 수도 있다. 구신 파일이 겹쳐쓰여진 파일과 호환가능하지 않으면, 겹쳐쓰여진 파일에 종속된 현 설치 애플리케이션 프로그램은 겹쳐쓰여진 파일에 액세스를 시도할 때 충돌할 수도 있다.
따라서, 애플리케이션 충돌 관리를 위한 향상된 시스템 및 방법이 하나 이상의 여타 단점들을 다루기 위해 필요하다.
본 발명의 실시예들은 운영 체제가 리소스를 보호할 수 있게 해주는 방법을 포함한다. 실시예에서, 본 발명은 애플리케이션 프로그램 또는 애플리케이션 프로그램 그룹과 관련된 영구 개별 아이덴티티를 사용해서, 운영 체제가 상이한 애플리케이션 프로그램들 또는 애플리케이션 프로그램 그룹들 및 컴포넌트들을 식별 및 차별화할 수 있게 해준다.
운영 체제 또는 다른 프로그램은 애플리케이션 프로그램들 각각과 관련된 아이덴티티들을 통해 애플리케이션 프로그램들을 조작한다. 예를 들어, 운영 체제는 (1) 깨끗한 설치 제거를 보장하고, (2) 애플리케이션이 허가하지 않은 액션을 실행하거나 서비스에 액세스하는 것을 방지하고, (3) 애플리케이션들을 서로 양호하게 격리하기 위해 시스템 리소스들을 가상화하고(virtualize), (4) 애플리케이션 충돌 롤백을 가능케 하고(예를 들어, 파일 타입 연관성을 프리-애플리케이션 설치 상태로 복귀하고), (5) 파일 및 레지스트리 소유 추적을 가능케 하기 위해 아이덴티티들을 사용한다. 보호 메카니즘들은 판독 전용 액세스 제공, 롤백을 가능케 하기 위한 변경 로깅, 및 애플리케이션 및 사용자 단위로 리소스를 가상화하는 것을 포함하는데 이들로만 제한되지는 않는다. 예를 들어, 운영 체제는 기록 보호 파일에 대한 기록 액세스를 요청한 애플리케이션 프로그램을 위해 기록 보호 파일의 복사본을 생성한다.
본 발명의 한 양상에 따라, 한 방법은 컴퓨팅 시스템에서 리소스에 대한 애플리케이션 프로그램 액세스를 승인한다. 본 방법은 요청시 식별된 리소스 액세스에 대해 애플리케이션 프로그램으로부터 요청을 수신하는 단계를 포함한다. 또한 본 방법은 애플리케이션 프로그램용 애플리케이션 식별자를 결정하는 단계를 포함한다. 본 방법은 결정된 애플리케이션 식별자 및 식별된 리소스의 함수로서 매니페스트(manifest)로부터 특권을 식별하는 단계를 포함한다. 매니페스트는 식별된 리소스에 액세스하기 위해 애플리케이션 프로그램이 가지는 특권을 나타낸다. 본 방법은 식별된 특권에 따라 식별된 리소스에 대한 애플리케이션 프로그램 액세스를 승인하는 단계를 포함한다.
본 발명의 다른 양상에 따라, 하나 이상의 컴퓨터 판독 가능 매체들은 애플리케이션 프로그램의 리소스 액세스를 승인하기 위한 컴퓨터 실행 가능 컴포넌트들을 갖는다. 컴포넌트들은 요청시 식별된 리소스 액세스에 대한 요청을 애플리케이션 프로그램으로부터 수신하기 위해 인터페이스 모듈을 포함한다. 또한 컴포넌트들은 애플리케이션 프로그램 및 컴포넌트들을 다른 애플리케이션 프로그램들과 구별하기 위해 애플리케이션 프로그램용 애플리케이션 식별자를 결정하기 위해 아이덴티티 모듈을 포함한다. 또한 컴포넌트들은 아이덴티티 모듈에 의해 결정된 애플리케이션 식별자 및 식별된 리소스의 함수로서 매니페스트로부터 특권을 식별하기 위해 필터 모듈을 포함한다. 매니페스트는 식별된 리소스에 액세스하기 위해 애플리케이션 프로그램이 가지는 특권을 나타낸다. 또한 컴포넌트들은 필터 모듈에 의해 식별된 특권에 따라 식별된 리소스에 대한 애플리케이션 프로그램 액세스를 승인하기 위해 액세스 제어 모듈을 포함한다.
본 발명의 또 다른 양상에 따라, 컴퓨터 판독 가능 매체들은 다수의 리소스들에 액세스하기 위한 애플리케이션 프로그램의 매니페스트 지정 액세스 권리들을 나타내는 데이터 구조를 기억한다. 데이터 구조는 애플리케이션 프로그램에 대응하는 아이덴티티를 나타내는 값을 기억하는 제1 필드를 포함한다. 또한 데이터 구조는 애플리케이션 프로그램과 관련된 리소스 리스트를 기억하는 제2 필드를 포함한다. 또한 데이터 구조는 제1 필드로부터의 아이덴티티 및 제2 필드에 기억된 리소스 리스트와 관련된 특권을 기억하는 제3 필드를 포함한다. 특권은 리소스 리스트의 각각의 리소스에 액세스하기 위한 애플리케이션 프로그램의 액세스 권리를 정의한다.
본 발명의 또 다른 양상에 따라, 시스템은 시스템 리소스에 대한 애플리케이션 액세스를 승인한다. 시스템은 매니페스트를 기억하기 위해 메모리 영역을 포함한다. 매니페스트는 애플리케이션 식별자 및 리소스를 특권에 사상한다. 애플리케이션 식별자는 애플리케이션 프로그램과 관련된다. 또한 시스템은 애플리케이션 프로그램으로부터의 리소스에 대한 요청에 응답해서, 애플리케이션 식별자 및 리소스의 함수로서 메모리 영역에 기억된 매니페스트로부터 특권을 결정하기 위해 컴퓨터 실행 가능 명령들을 실행하도록 구성된 프로세서를 포함한다. 프로세서는 결정된 특권에 따라 리소스에 대한 애플리케이션 프로그램 액세스를 승인하기 위해 컴퓨터 실행 가능 명령들을 실행하도록 더 구성된다.
본 발명의 다른 양상에 따라, 방법은 컴퓨팅 시스템으로부터 특정 애플리케이션 프로그램을 설치 제거한다. 특정 애플리케이션 프로그램은 적어도 하나의 관련 파일을 갖는다. 특정 애플리케이션 프로그램은 컴퓨팅 시스템에 설치된 다수의 애플리케이션 프로그램들 중 하나이다. 본 방법은 특정 애플리케이션 프로그램을 설치 제거하라는 요청을 수신하는 단계를 포함한다. 또한 본 방법은 특정 애플리케이션 프로그램과 관련된 식별자를 결정하는 단계를 포함한다. 본 방법은 다수의 애플리케이션 프로그램들 중 특정 애플리케이션 프로그램과만 관련된 파일을 결정된 식별자를 통해 식별하는 단계를 더 포함한다. 식별된 파일은 그와 관련해서 결정된 식별자를 갖는다. 또한 본 방법은 식별된 파일을 삭제하는 단계를 포함한다.
대안으로, 본 발명은 다양한 다른 방법들 및 장치들을 포함할 수도 있다.
다른 특징들은 일부분 명백해질 것이며 일부분이 후술된다.
대응 참조 부호들은 도면에서 대응 파트들을 나타낸다.
한 실시예에서, 본 발명은 리소스 보호 방법을 제공한다. 특히, 운영 체제의 기능은 파일 및 시스템 세팅을 위한 보호 선언을 가능케 한다. 선언된 보호는 애플리케이션 프로그램의 설치, 실행, 서비스 및 삭제를 관리, 추적, 예측 및 완화하기 위해 애플리케이션 라이프 사이클 중에 운영 체제가 사용할 수도 있는 액션 집합을 통해 운영 체제 또는 다른 애플리케이션 프로그램에 의해 존속 및 시행된다. 리소스 보호는 중대한 시스템 데이터(예를 들어, 파일 연관성)의 참조 완전성을 제공하고, 각각의 애플리케이션 프로그램에 의해 리소스들에 대한 액세스를 추적 및 격리함으로써 신뢰성 및 일관성을 향상시키기 위해 애플리케이션 프래질리티(fragility) 문제점들을 다루고, 보호 리소스로 시스템 및 애플리케이션들에 의한 상호 작용들의 충돌을 관리한다. 예를 들어, 본 발명의 실시예는 바이러스 또는 웜(worm)에 의해 감염된 애플리케이션 프로그램에 대한 시큐리티를 제공하는 데 사용될 수도 있다. 본 발명의 실시예는 확장성을 제공하고 통합을 가능케 하기 위해 임의의 운영 체제 모델로 동작 가능하다. 리소스 보호 기법 및 본 발명의 실시예 구현은 또한 애플리케이션 설치자가 우연히 또는 고의로 중대한 시스템 리소스를 변경 또는 대체하는 것을 방지한다. 본 발명의 실시예는 시스템 리소스를 보호하기 위한 다른 기법들과 결합될 수도 있다. 예를 들어, 컴퓨팅 시스템은 록 다운, 격리, 가상화, 트랜잭션 및 샌드박싱(sandboxing)의 결합을 포함하는 기법들을 구현할 수도 있다.
먼저 도 1을 참조하면, 운영 체제(102)의 일례의 실시예가 매니페스트(108)에 대해 리소스 액세스를 애플리케이션 프로그램(104)에 제공한다. 리소스는 파일, 폴더, 프로세스, 쓰레드, 시스템 세팅, 명명 객체, 애플리케이션 프로그래밍 인터페이스(API), 지정 코드 경로, 실행 가능 루틴 라이브러리, 운영 체제 속성 값, 및 운영 체제 리소스를 포함하는데, 이들로만 제한되지는 않는다. 명명 객체는 알파벳, 숫자, 영숫자, 또는 사람이 판독할 수 없는 데이터(예를 들어, 글로벌 유일 식별자)에 의해 식별된 임의의 객체를 포함한다. 예를 들어, 사용자 아이덴티티에 의해 보호될 수도 있는 임의의 객체는 애플리케이션 아이덴티티(예를 들어, 네트워크 소켓)에 의해 보호될 수도 있다. 예를 들어, 다수의 API들 및 코드 경로들은 메일 캐퍼빌러티를 송신하며, 상기 API들 및 코드 경로들에 대한 액세스가 제한될 수도 있다. 다른 일례에서, 시스템 리부팅 기능이 제한된다. 리소스는 또한 단지 지정 명명 객체들이 아닌 시스템의 네임 스페이스(예를 들어, '네임' 자체)를 포함한다. 예를 들어, 객체가 네임과 함께 생성되기 전에 네임에 대해 예약 또는 '스퀘팅(squatting)'함으로써 프래질리티 및 시큐리티 문제점들을 모두 야기한다.
한 실시예에서, 애플리케이션 프로그램(예를 들어, 애플리케이션 프로그램(104))에 의해 제공된 매니페스트(108)와 같은 매니페스트는 애플리케이션 프로그램이 갖고 싶어하는 특권들을 나타낸다. 동작시, 운영 체제는 운영 체제가 애플리케이션 프로그램을 위해 유지하는 계산된 또는 유효한 매니페스트를 야기하는 요청된 특권들 일부를 승인하거나 거부할 수도 있다.
애플리케이션 프로그램(104)과 같은 각각의 애플리케이션 프로그램은 다른 애플리케이션 프로그램들로부터 애플리케이션 프로그램을 구별하기 위해 애플리케이션 식별자를 할당받는다. 한 실시예에서, 애플리케이션 식별자는 애플리케이션 프로그램 그룹의 각각의 애플리케이션 프로그램이 그룹의 다른 애플리케이션 프로그램들과 동일한 리소스 액세스 또는 특권을 가질 수 있도록 애플리케이션 프로그램 그룹에 할당된다. 도 1에서, 애플리케이션 프로그램(104)은 관련된 식별자 ID1을 갖는다. 운영 체제(102)는 리소스 A(106)와 같은 리소스에 대한 애플리케이션 프로그램(104)의 액세스 시도를 인터셉트한다. 운영 체제(102)는 리소스 A(106)에 대해 애플리케이션 프로그램(104)에게 허가된 특권 또는 액세스를 결정하기 위해 매니페스트(108)를 참고한다. 본 일례에서, 메모리 영역은 매니페스트(108)를 기억한다. 매니페스트(108)는 애플리케이션 식별자 및 리소스를 특권에 사상한다. 매니페스트(108)는 애플리케이션 식별자(예를 들어, ID1) 및 리소스(예를 들어, 리소스 A(106))의 함수로서 특권(예를 들어, 특권 X)을 기억한다. 특권 X는 예를 들어, 판독 전용 액세스에 대응할 수도 있다. 운영 체제(102)는 결정된 특권에 따라 리소스 A(106)에 대한 액세스를 애플리케이션 식별자에 제공한다.
한 실시예에서, 운영 체제(102)는 컴퓨터 판독 가능 매체에서 하나 이상의 컴퓨터 실행 가능 컴포넌트들에 대한 액세스를 갖거나 기억한다. 운영 체제(102)와 관련된 프로세서는 리소스에 대한 애플리케이션 프로그램(104)으로부터의 요청에 응답해서, 애플리케이션 식별자 및 리소스의 함수로서 메모리 영역에 기억된 매니페스트(108)로부터 특권을 결정하기 위해 컴퓨터 실행 가능 컴포넌트들 또는 다른 컴퓨터 실행 가능 명령들을 실행하도록 구성된다. 프로세서는 결정된 특권에 따라 리소스 또는 복사본에 대한 애플리케이션 프로그램(104) 액세스를 승인하는 컴퓨터 실행 가능 명령들을 실행하도록 더 구성된다.
특히, 컴퓨터 실행 가능 컴포넌트들은 애플리케이션 프로그램(104)에게 리소스에 대한 액세스를 승인해 준다. 도 1의 특정 실시예에서, 컴포넌트들은 인터페이스 모듈(110), 아이덴티티 모듈(112), 필터 모듈(114), 및 액세스 제어 모듈(116)을 포함한다. 도 1의 모듈들은 운영 체제(102)와 개별적으로 독립적으로 존재할 수도 있다. 또한, 본 발명의 실시예의 기능 및 구조는 임의의 양의 모듈들, 컴포넌트들 등으로 조직될 수도 있다. 예를 들어, 모듈들은 분산될 수도 있다.
인터페이스 모듈(110)은 요청시 식별된 리소스에 대한 액세스 요청을 애플리케이션 프로그램(104)으로부터 수신한다. 한 실시예에서, 인터페이스 모듈(110)은 파일, 디렉토리, 및 시스템 세팅(예를 들어, 레지스트리 엔트리) 중 하나 이상에 대한 액세스 요청을 애플리케이션 프로그램(104)으로부터 수신한다. 아이덴티티 모듈(112)은 애플리케이션 프로그램(104) 및 컴포넌트들을 다른 애플리케이션 프로그램들과 구별하기 위해 애플리케이션 프로그램(104)용 애플리케이션 식별자를 결정한다. 한 실시예에서, 아이덴티티 모듈(112)은 애플리케이션 프로그램 그룹용 애플리케이션 식별자(예를 들어, 격리 식별자)를 결정한다. 애플리케이션 프로그램(104)이 다수의 파일들 및 시스템 세팅들을 포함할 수도 있기에, 아이덴티티 모듈(112)은 애플리케이션 프로그램(104)을 나타내는 다수의 파일들 및 시스템 세팅들 각각과 관련된 애플리케이션 식별자를 결정한다. 필터 모듈(114)은 아이덴티티 모듈(112)에 의해 결정된 애플리케이션 식별자 및 식별된 리소스의 함수로서 매니페스트(108)로부터 특권을 식별한다. 매니페스트(108)는 식별된 리소스에 액세스하기 위해 애플리케이션 프로그램(104)이 갖는 특권을 나타낸다. 액세스 제어 모듈(116)은 필터 모듈(114)에 의해 식별된 특권에 따라 식별된 리소스에 대한 애플리케이션 프로그램(104) 액세스를 승인한다. 한 실시예에서, 구성 모듈은 애플리케이션 프로그램(104)과 관련된 설치 매체로부터 애플리케이션 매니페스트를 수신한다. 애플리케이션 매니페스트는 애플리케이션 프로그램(104)과 관련된 파일들 및 리소스 변경들(예를 들어, 시스템 세팅)의 리스트를 나타낸다. 구성 모듈은 애플리케이션 매니페스트에 포함된 데이터로 운영 체제 매니페스트를 갱신할 수도 있다. 대안으로, 구성 모듈은 각각의 설치된 애플리케이션을 위한 각각의 애플리케이션 매니페스트를 유지할 수도 있다.
매니페스트
매니페스트(108)는 애플리케이션 프로그램(104) 또는 운영 체제(102)와 같은 운영 체제와 관련된 아이템(예를 들어, 파일 및 리소스 변경) 또는 객체 리스트를 포함한다. 대안으로, 애플리케이션 프로그램(104)과 관련된 아이템 리스트는 구성 파일로 기억될 수도 있으며 각각의 리소스 프로바이더에 대해 기억될 수도 있다. 다른 실시예에서, 객체 크리에이터는 객체에 대해 직접적으로 액세스 특권들을 지정한다.
매니페스트(108)는 또한 애플리케이션 프로그램(104) 또는 운영 체제(102)와 관련된 리소스들에 대한 특권 리스트를 포함할 수도 있다. 예를 들어, 애플리케이션 프로그램(104) 작성자는 운영 체제(102)의 리소스 및/또는 애플리케이션 프로그램(104)이 생성할 수도 있는 리소스에 대한 특권들을 매니페스트에서 지정할 수도 있다. 대안으로, 매니페스트는 애플리케이션 프로그램(104)과 관련된 아이덴티티 정보를 간단히 기억할 수도 있다. 다른 일례에서, 설치될 애플리케이션 프로그램(104)을 기억하는 설치 매체가 애플리케이션 프로그램(104)과 관련된 아이템들 및 애플리케이션 전용 리소스와 관련된 특권들을 리스트하고 있는 애플리케이션 매니페스트를 기억할 수도 있다. 애플리케이션 프로그램(104) 개발에 책임이 있는 제3 가입자 애플리케이션 벤더들 또는 개인들이 애플리케이션 매니페스트를 생성할 수도 있다. 다른 일례에서, 운영 체제 매니페스트는 운영 체제(102)에 의해 설치된 애플리케이션 프로그램들과 관련된 아이템 리스트를 기억한다. 운영 체제 매니페스트는 운영 체제(102)와 관련된 컴포넌트 리스트를 더 기억할 수도 있다. 한 실시예에서, 운영 체제 매니페스트는 운영 체제 컴포넌트들 또는 설치된 애플리케이션 프로그램들 각각에 대한 보호 동작 집합을 나타낸다. 집합 매니페스트는 각각의 파일, 디렉토리 및 시스템 세팅에 대해 허용될 상호 동작 타입들을 정의한다.
운영 체제(102)는 희망하는 보호 방법 및 운영 체제 컴포넌트들 및 다른 컴포넌트들이 상호 작용하고 시스템을 확장할 수도 있는 방법을 지정한다는 점에서 자체 기술적이다. 본 발명의 한 실시예에서, 운영 체제(102)의 파트인 모든 아이템 또는 리소스(예를 들어, 파일, 디렉토리, 레지스트리 키 및 값, 드라이버 등)에 대해 운영 체제(102)에 의해 시행돼야만 하는 보호 동작 타입을 선언할 수 있다.
매니페스트(108)는 컴퓨터 판독 가능 매체에서 데이터 구조로서 기억된다. 매니페스트(108)는 다수의 리소스들에 액세스하는 애플리케이션 프로그램(104)과 같은 애플리케이션 프로그램의 액세스 권리들을 지정한다. 도 1의 일례의 데이터 구조는 애플리케이션 프로그램(104)에 대응하는 아이덴티티를 나타내는 값(예를 들어, ID1)을 기억하는 제1 필드를 포함한다. 예를 들어, 제1 필드는 버전, 중앙 처리 장치, 및 공용 키 중 하나 이상을 근거로 한 값을 기억할 수도 있다. 또한 데이터 구조는 애플리케이션 프로그램(104)과 관련된 리소스(예를 들어, 리소스 A(106))를 기억하는 제2 필드를 포함한다. 예를 들어, 제2 필드는 파일, 디렉토리 및 시스템 세팅과 같은 리소스 리스트를 기억할 수도 있다. 데이터 구조는 또한 제1 필드로부터의 아이덴티티 및 제2 필드에 기억된 리소스 리스트와 관련된 특권(예를 들어, 특권 X) 또는 의미 있는 다른 선언을 기억하는 제3 필드를 포함한다. 특권은 리소스 리스트의 각각의 리소스에 대해 액세스하는 애플리케이션 프로그램(104)의 액세스 권리를 정의한다.
애플리케이션 작성자는 신뢰 정보 섹션으로 매니페스트(108)와 같은 매니페스트를 생성할 수도 있다. 애플리케이션 작성자는 또한 스트롱 네임(strong name)을 애플리케이션에 할당하고 애플리케이션의 매니페스트를 (예를 들어, 디지털 서명 또는 증명서로) 사인할 수도 있다. 애플리케이션이 설치될 때, 운영 체제(102)는 애플리케이션 매니페스트의 증명서 및 서명의 타당성 검사를 위해 하나 이상의 증명서 스토어들을 체크하도록 구성될 수도 있다. 한 실시예에서, 사인된 드라이버 팩키지들만이 설치된다. 예를 들어, 엔터프라이즈는 자신의 증명서 스토어를 가질 수도 있다. 유사하게, 특정 시스템은 애플리케이션 매니페스트가 타당성 검사를 받을 수도 있는 증명서 스토어를 가질 수도 있다. 타당성 검사를 받으면, 운영 체제(102)는 매니페스트 데이터 및 미리 구성된 디폴트 정책들을 근거로 신뢰 액션들을 관리하도록 구성될 수도 있다.
매니페스트(108)와 같은 매니페스트는 여러 방법들로 사인될 수도 있다. 예를 들어, 매니페스트는 검증을 위한 스토어에 유지된 증명서로 인증 프로세스를 사용해서 사인될 수도 있다. 도메인 관리자는 또한 특정 엔터프라이즈 또는 도메인을 위한 매니페스트들을 사인할 수도 있다. 예를 들어, 배치(deployment) 매니페스트는 어떤 애플리케이션들이 특정 설치를 위해 사인되는지를 지정하는데 사용될 수도 있다. 로컬 관리자들도 또한 매니페스트들을 사인할 수도 있다. 각각의 개별 기계는 사인 키로 구성될 수도 있다.
한 실시예에서, 매니페스트(108)는 위크 네임(weak name) 및 스트롱 네임을 모두 포함할 수도 있다. 위크 네임은 전형적인 애플리케이션 파일 네임에 대응하며, 스트롱 네임은 파일 네임, 버전 번호, 문화, 및 공용 키에 대응할 수도 있다. 다른 실시예에서, 스트롱 네임은 모듈 사인 전용 키의 해시일 수도 있다. 또 다른 실시예에서, 스트롱 네임은 공용 키 토큰일 수도 있다.
예를 들어, 이하의 XML은 매니페스트(108)에 대한 하나의 스트롱 네임을 나타낼 수도 있다.
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="x86"
name="SampleApp"
publicKeyToken="0123456789abcdef"
type="typeA"/>
다음은 매니페스트(108)의 한 실시예의 샘플 신뢰 정보 섹션이다.
<trustInfo>
<security>
<requestedPrivileges>
<requestedExecutionLevel
leastPrivileged="true"
adminPrivileged="true"
requireDefaultDesktop="false"/>
</requestedPrivileges>
</security>
</trustInfo>
매니페스트(108)를 갖지 않는 애플리케이션에 있어서, 운영 체제(102)는 선정된 디폴트에 따라 설정된 요청된 특권들로 매니페스트(108)를 생성하도록 구성될 수도 있다. 예를 들어, 매니페스트(108)는 사용자 액세스의 최하위 특권 레벨을 요청하도록 구성될 수도 있다.
대안으로, 또한, 운영 체제는 애플리케이션이 실제로 사용하는 특권들만을 제공하기 위해 애플리케이션 액션들을 관측하고 매니페스트를 커스터마이즈할 수도 있다. 애플리케이션을 수회 실행한 후에, 매니페스트는 로크되고 명백한 사용자 입력 또는 관리자 정책이 매니페스트에 의해 제공된 특권들을 확장하도록 요구받는다. 몇몇 실시예들에서, 취약한 애플리케이션이 설치 후 곧 절충될(compromised) 가능성은 애플리케이션이 이후에 절충될 가능성 보다 비교적 낮다. 애플리케이션이 매니페스트가 로크된 후에 절충되면, 절충 애플리케이션의 동작은 매니페스트에 의해 허용된 동작들로 제한되는데, 이는 애플리케이션의 절충되지 않은 동작에 의해 결정되었다.
액세스 제어 제공
다음으로 도 2를 참조하면, 일례의 플로우챠트가 액세스 제어 방법의 동작을 도시하고 있다. 한 실시예에서, 본 발명은 컴퓨팅 시스템에서 리소스에 대한 애플리케이션 프로그램 액세스를 승인한다. 본 방법은 요청시 식별된 리소스 액세스에 대한 요청을 애플리케이션 프로그램으로부터 수신하는 단계(202), 애플리케이션 프로그램용 애플리케이션 식별자를 결정하는 단계(204), 결정된 애플리케이션 식별자 및 식별된 리소스의 함수로서 매니페스트(예를 들어, 운영 체제 매니페스트 및/또는 애플리케이션 프로그램 매니페스트)로부터 특권을 식별하는 단계(206), 및 식별된 특권에 따라 식별된 리소스에 대한 애플리케이션 프로그램 액세스를 승인하는 단계(208)를 포함한다. 한 실시예에서, 애플리케이션 프로그램용 애플리케이션 식별자를 결정하는 단계(204)는 모든 파일, 폴더, 시스템 세팅 변경(예를 들어, 레지스트리 키 및 값) 또는 리소스에 유일하고 일관적이며 영구적인 반복 가능 식별자를 태그로 붙이는 단계를 포함한다.
한 실시예에서, 운영 체제는 도 2에 도시된 방법을 실행한다. 다른 실시예에서, 운영 체제와 개별적인 애플리케이션 프로그램 또는 서비스는 도 2에 도시된 방법을 실행한다. 하나 이상의 컴퓨터 판독 가능 매체들은 도 2에 도시된 방법을 실행하기 위한 컴퓨터 실행 가능 명령들을 갖는다.
다양한 일례의 특권들 또는 다른 액세스 형태들은 리소스를 보호하기 위한 샘플 완화 아키텍처를 참조해서 이제부터 기술된다.
일례의 완화 아키텍처
도 3을 참조하면, 일례의 플로우챠트가 다양한 리소스들을 보호하기 위한 완화 아키텍처를 도시하고 있다. 한 실시예에서, 도 3에 도시된 방법은 리소스 액세스를 시도하는 애플리케이션 프로그램의 애플리케이션 식별자를 근거로 매니페스트에 기술된 리소스 특권들을 시행한다. 특정 특권들이 본 명세서에 기술되어 있지만, 다양한 특권들, 특권 레벨들, 또는 본 명세서에 기술되지 않은 액세스가 본 발명의 범위 내에 속한다. 마찬가지로, 특정 리소스들이 본 명세서에 기술되어 있지만, 본 명세서에 기술되지 않은 다양한 리소스들이 본 발명의 범위 내에 속한다.
도 3에서, 식별자 ID1를 갖는 애플리케이션 프로그램과 같은 애플리케이션 프로그램이 다양한 리소스들에 대한 액세스를 요청한다. 본 발명의 실시예는 요청을 수신하고 리소스에 대해 애플리케이션 프로그램을 위해 지정된 특권 또는 액세스에 따라 요청을 처리한다. 도 3의 일례에서, 애플리케이션 프로그램은 판독 전용 특권으로 몇몇 운영 체제 리소스들(예를 들어, 파일들 및 세팅들)에 액세스한다. 애플리케이션 프로그램이 상기 리소스들 중 하나에 대한 판독 액세스 요청을 송신하면, 본 발명의 실시예는 하나의 리소스에 대한 애플리케이션 프로그램 판독 전용 액세스를 승인해준다. 애플리케이션 프로그램이 상기 판독 전용 리소스들 중 하나를 변경하려는 요청을 송신하면(302), 본 발명의 실시예는 하나의 리소스에 대한 애플리케이션 프로그램 액세스를 거부한다. 요청은 묵묵히 실패하거나(예를 들어, 애플리케이션 프로그램에 아무런 응답도 리턴되지 않음) 또는 명백히(예를 들어, 네가티브 응답이 애플리케이션 프로그램에 리턴됨) 실패한다(304). 애플리케이션 프로그램은 또한 판독-기록 특권으로 애플리케이션 전용 리소스들(애플리케이션 프로그램과 관련된 파일들 및 세팅들)에 액세스한다. 리소스들이 애플리케이션 프로그램과 관련되기 때문에, 리소스 변경은 일반적으로 운영 체제 프래질리티 문제점들을 야기하지 않는다. 운영 체제는 상기 리소스들의 의미에 대해서는 거의 알지 못하며 관심을 갖지 않는다.
애플리케이션 프로그램은 보호 특권으로 다른 운영 체제 리소스들에 액세스한다. 애플리케이션 프로그램이 보호 운영 체제 리소스들(예를 들어, 세팅들 또는 파일들) 중 하나를 변경하려는 요청을 송신하면(306), 본 발명의 실시예는 애플리케이션 프로그램을 위해 보호 리소스의 가상 뷰를 리턴한다(308). 특히, 보호 특권에 대해, 본 발명의 실시예는 이미 존재하지 않으면 애플리케이션 프로그램에 의한 판독 기록 액세스를 위해 요청된 리소스의 복사본을 생성한다. 복사본이 아직 존재하지 않는 한 실시예에서, 애플리케이션 프로그램으로부터의 요청이 판독 액세스 전용이면 복사본이 생성되지 않는다. 리소스 복사본은 애플리케이션 프로그램 또는 동일한 애플리케이션 식별자를 갖는 애플리케이션 프로그램들의 그룹에 의해서만 사용된다. 애플리케이션 식별자는 본 발명의 실시예가 상이한 애플리케이션 식별자들을 갖는 애플리케이션 프로그램들에게 하나 이상의 리소스들의 자체 가상 뷰 또는 복사본을 제공할 수 있게 해준다. 예를 들어, 운영 체제가 시스템 세팅의 자체 복사본을 유지하는 동시에, 시스템 세팅에 값을 기록하는 애플리케이션 프로그램은 시스템 세팅의 자체 복사본을 수신한다. 몇몇 일례의 실시예들에서, 상이한 애플리케이션들은 시스템 세팅들(예를 들어, 레지스트리 엔트리들)의 상이한 가상 뷰들을 수신할 수도 있다. (예를 들어, 사용자가) 희망하는 시스템 보호 타입에 따라, 리소스는 사용자에 대해 및/또는 애플리케이션 프로그램에 대해 가상화될 수도 있다. 특정 애플리케이션 식별자를 갖는 애플리케이션 프로그램에 의한 가상화 리소스 변경은 다른 애플리케이션 식별자들을 갖는 애플리케이션 프로그램들에게 영향을 주지 않는다(예를 들어, 가시적이지 않다). 개별 애플리케이션들 또는 애플리케이션 그룹들에게 선택된 시스템 리소스들의 자체 뷰를 제공함으로써, 운영 체제는 하나의 애플리케이션이 다른 애플리케이션 프로그램들이 필요로 하는 리소스들을 겹쳐쓰거나 파괴하는 것을 방지할 수도 있다.
한 실시예에서, 애플리케이션 프로그램은 컴퓨팅 시스템에 애플리케이션 프로그램을 설치할 때 리소스의 가상화된 복사본을 사용한다. 예를 들어, 애플리케이션 프로그램은 시스템 세팅을 기억하는 파일의 일반 복사본을 사용해서 컴퓨팅 시스템에 시스템 세팅을 적용할 수도 있다.
애플리케이션 프로그램은 애플리케이션 전용 리소스들에 액세스한다. 애플리케이션 전용 리소스들은 애플리케이션 프로그램에 지정된 리소스들을 포함한다. 운영 체제 및 다른 애플리케이션 프로그램들은 일반적으로 애플리케이션 전용 리소스들에 의해 영향을 받지 않는다. 애플리케이션 프로그램이 애플리케이션 전용 리소스를 변경하려는 요청을 송신하면(310), 본 발명의 실시예는 요청을 허용하고 처리한다(312).
애플리케이션 프로그램은 시스템 확장성(예를 들어, 운영 체제에 기능 추가)을 변경하려는 요청을 송신할 수도 있다(314). 한 실시예에서, 본 발명의 실시예는 요청된 변경을 허용한다(312).
시스템 확장성 및 애플리케이션 전용 리소스(예를 들어, 파일 및 시스템 세팅)에 대한 변경은 로그되거나 기록될 수도 있다(318). 일반적으로, 시스템 확장성 변경은 운영 체제를 변경하지 않고 운영 체제에 추가 기능을 제공한다. 시스템 확장성 변경 및 애플리케이션 전용 리소스 변경을 기록함으로써, 변경과 관련된 애플리케이션 프로그램의 완전한 삭제 또는 설치 제거 뿐만 아니라 변경의 롤백이 가능해진다.
일례의 완화 기법
도 4를 참조하면, 일례의 플로우챠트가 파일, 시스템 세팅, 및 확장에 대한 액세스 제어를 제공하는 방법의 동작을 도시하고 있다. 도 4의 일례에서, 운영 체제는 방법을 구현한다. 그러나, 운영 체제와 관련되지 않은 애플리케이션 프로그램 또는 서비스도 또한 방법을 구현할 수 있다. 도 4에서, 프로세스는 CreateProcess()와 같은 함수를 통해 애플리케이션 프로그램(예를 들어, xxxx.exe)을 실행하도록 생성된다. 운영 체제는 애플리케이션 프로그램과 관련된 애플리케이션 식별자가 존재하는지를 결정한다(402). 존재하지 않으면, 운영 체제는 애플리케이션 식별자를 결정하고 정보를 보존한다(예를 들어, 매니페스트에 결정된 애플리케이션 식별자를 기억한다)(404). 애플리케이션 프로그램은 동작을 실행한다(406). 운영 체제는 동작을 분석한다. 예를 들어, 한 실시예에서, 특별 특권들에 따라 실행되는 승인 신뢰 설치 프로세스들만이 보호 영역에서 추가, 변경 또는 삭제를 할 수 있다. 애플리케이션 프로그램들이 보호 영역에서 데이터를 생성하거나 변경하는 것이 차단된다.
도 4의 실시예에서, 동작이 파일 동작이면(408), 운영 체제는 파일 동작이 파일에 영향을 주는지를(예를 들어, 파일 동작이 파일을 변경하는지를) 결정한다(410). 파일 동작이 파일에 영향을 주지 않으면, 운영 체제는 파일 시스템에서 파일 동작이 실행되는 것을 허용한다(414). 파일 동작이 파일에 영향을 주면, 운영 체제는 예를 들면, 도 3에 도시된 완화 기법에 따라 완화된 파일 동작을 실행한다(412). 파일 시스템에 대한 변경이 만일 있다면 이는 로그에 기록된다(415).
동작이 시스템 세팅 동작이면(416), 운영 체제는 시스템 세팅 동작이 시스템 세팅에 영향을 주는지를(예를 들어, 시스템 세팅 동작이 시스템 세팅을 변경하는지를) 결정한다(418). 시스템 세팅 동작이 시스템 세팅에 영향을 주지 않으면, 운영 체제는 시스템 세팅에서 시스템 세팅 동작이 실행되도록 허용한다(422). 시스템 세팅 동작이 시스템 세팅에 영향을 주면, 운영 체제는 예를 들면, 도 3에 도시된 완화 기법에 따라 완화된 시스템 세팅 동작을 실행한다(420). 시스템 세팅에 대한 변경이 만일 있다면 이는 로그에 기록된다(415).
동작이 운영 체제에 확장을 로드하려는 요청을 나타내면(424), 운영 체제는 애플리케이션 프로그램(예를 들어, xxxx.exe)이 보호를 희망하는지를(예를 들어, "되살리기(undo)"가 가능한지를) 결정한다(426). 예를 들어, 애플리케이션 프로그램은 운영 체제에 보호를 희망함을 명백하게 알릴 수도 있다. 애플리케이션 프로그램이 보호를 희망하지 않으면, 운영 체제는 확장 로드를 허용한다(428). 애플리케이션 프로그램이 보호 희망을 나타내면, 운영 체제는 확장이 외부 확장(예를 들어, 제3 가입자에 의해 제공됨)인지를 결정한다(430). 확장이 외부 확장이 아니면, 운영 체제는 확장 로드를 허용한다(428). 확장이 외부 확장이면, 운영 체제는 도 3에 도시된 완화 기법에 따라 완화된 확장 로드를 실행한다(432). 확장 로드는 로그에 기록될 수도 있다. 예를 들어, 기록은 운영 체제를 실행하는 컴퓨팅 시스템의 사용자에 의해 구성될 수도 있다.
가상화에 따라, 애플리케이션은 자체 로컬 네임스페이스에서 객체들을 생성 및 변경하고, 운영 체제는 글로벌 네임스페이스에서 객체들을 생성 및 변경한다. 글로벌 네임스페이스는 하나이며, 로컬 네임스페이스는 잠정적으로 다수이다. 생성 동작의 경우, 애플리케이션은 로컬 네임스페이스에서 객체를 생성한다. 애플리케이션이 객체를 변경하고자 시도할 때, 운영 체제는 객체가 애플리케이션을 위해 로컬 네임스페이스에 존재하는지를 체크한다. 로컬 객체가 존재하면, 애플리케이션은 로컬 네임스페이스에서 객체를 오픈한다. 애플리케이션이 글로벌 네임스페이스에서 객체를 변경하고자 시도할 때, 운영 체제는 애플리케이션의 로컬 네임스페이스로 객체를 복사해 주고 상기 로컬 객체에 대한 동작 실행을 허용한다. 리소스가 로컬 또는 글로벌 네임스페이스에 존재하지 않으면, 오픈 동작은 실패한다.
도 5를 참조하면, 일례의 플로우챠트가 시스템 세팅에 대한 액세스 제어를 제공하는 방법의 동작을 도시하고 있다. 도 5가 시스템 세팅과 관련된 일례를 도시하고 있지만, 본 발명의 가상화 양상이 다른 객체들(예를 들어, 명명 객체들) 및 네임스페이스들을 위해 사용될 수도 있다. 도 5에서, 예를 들어, 운영 체제와 같은 본 발명의 실시예는 애플리케이션 프로그램이 요청한 시스템 세팅에 대한 동작을 분석한다. 특히, 운영 체제는 요청 동작이 시스템 세팅을 기록 또는 삭제하는지를 결정한다(502). 요청 동작이 시스템 세팅을 기록 또는 삭제하지 않으면(예를 들어, 판독 전용 액세스가 요청되면), 운영 체제는 시스템 세팅의 가상 복사본이 현재 존재하는지를 결정한다(504). 가상 복사본이 존재하면, 운영 체제는 가상 복사본을 식별하고(506) 시스템 세팅의 가상 복사본에 대한 요청 동작을 실행한다(508). 가상 복사본이 존재하지 않으면, 운영 체제는 시스템 세팅에 대한 요청 동작을 실행한다(508).
요청 동작이 시스템을 기록 또는 삭제하면, 운영 체제는 요청 애플리케이션 프로그램이 판독 전용 키와 관련되는지를(예를 들어, 요청 애플리케이션 프로그램이 신뢰할만한 설치자가 아닌지를) 결정한다(510). 요청 애플리케이션 프로그램이 (예를 들어, 운영 체제에 의해 유지된 액세스 제어 리스트를 통해) 판독 전용 액세스와 관련되면, 운영 체제는 요청 동작을 실패시키거나 거부한다(512). 요청 애플리케이션 프로그램이 판독 전용 액세스와 관련되지 않으면, 운영 체제는 요청 동작이 시스템 제한 세팅을 기록 또는 삭제하는지를 결정한다(514). 요청 동작이 시스템 제한 세팅을 기록 또는 삭제하면, 운영 체제는 요청 애플리케이션 프로그램이 동작을 실행하도록 승인받았는지를 결정한다(516). 예를 들어, 운영 체제는 요청 애플리케이션 프로그램이 컴퓨팅 시스템에서 관리자 특권들을 갖는지를 결정할 수도 있다. 요청 애플리케이션 프로그램이 동작을 실행하도록 승인되었으면, 운영 체제는 요청 동작을 실행한다(508). 요청 애플리케이션 프로그램이 동작을 실행하도록 승인받지 않았으면, 운영 체제는 요청 동작을 실패시키거나 거부한다(512).
요청 동작이 시스템 제한 세팅을 기록 또는 삭제하지 않으면, 운영 체제는 요청 동작이 보호 세팅(예를 들어, 요청 애플리케이션 프로그램과 관련된 시스템 세팅의 복사본)을 위한 것인지를 결정한다(518). 운영 체제가 요청 동작이 보호 세팅을 위한 것으로 결정하면, 운영 체제는 요청 애플리케이션 프로그램의 애플리케이션 식별자에 의해 보호 세팅을 가상화한다(520). 즉, 운영 체제는 시스템 세팅의 가상 복사본을 식별하고, 시스템 세팅의 식별된 가상 복사본에 대한 요청 동작을 실행한다(508). 운영 체제가 요청 동작이 보호 세팅을 위한 것이 아니라고 결정하면, 운영 체제는 요청 동작이 전용 세팅(예를 들어, 요청 애플리케이션 프로그램과 관련된 시스템 세팅)을 위한 것인지를 결정한다(522). 운영 체제가 요청 동작이 전용 세팅을 위한 것이라고 결정하면, 운영 체제는 전용 시스템 세팅에 대한 요청 동작을 실행한다(508). 운영 체제가 요청 동작이 전용 세팅을 위한 것이 아니라고 결정하면, 운영 체제는 프로세싱을 종료하며 요청을 묵묵히 또는 명백하게 실패시킨다.
애플리케이션이 로컬 네임스페이스로부터 객체를 삭제하고자 시도하고 동일한 네임을 갖는 글로벌 객체가 존재하면, 시스템은 로컬 객체를 삭제된 것으로 마크하고 상기 객체를 네임스페이스에 남겨둔다. 따라서, 시스템은 상기 객체에 대한 애플리케이션의 질의들이 객체의 네임을 보지 않아야만 함을 검출할 수 있다. 애플리케이션이 로컬 네임스페이스에는 존재하지만 글로벌 네임스페이스에는 존재하지 않는 객체를 삭제하고자 시도할 때, 시스템은 로컬 객체를 삭제한다. 운영 체제 구성에 따라, 글로벌 객체 삭제는 모든 대응 로컬 객체들의 삭제를 야기할 수도 있다. 시스템은 애플리케이션이 이러한 방식으로 대응하는 객체들이 삭제돼야만 하는지를 명시할 수 있게 해주며, 리소스 프로바이더는 로컬 객체에 대한 명시를 기억한다. 또한, 글로벌 객체를 추가해서 모든 로컬 네임스페이스들로부터 삭제라고 마크된 모든 대응 객체들을 삭제할 수도 있다.
이러한 설계에 따라, 애플리케이션은 글로벌 네임스페이스에서 작업중이라고 생각하지만, 실제로는, 자체 네임스페이스에서 작업한다. 시스템은 애플리케이션이 글로벌 네임스페이스에서 작업중이라고 생각하게 하기 위해 전체 경로 질의들, 열거(enumeration), 및 다른 동작들을 처리한다. 예를 들어, 네임스페이스 열거는 특정 디렉토리 하에 모든 파일들을 리스팅하는 것을 포함한다. 시스템은 지정된 네임스페이스에서(예를 들어, 먼저 로컬 네임스페이스로 시작해서, 그 다음은 글로벌 네임스페이스에서) 모든 객체들을 질의한다. 시스템은 글로벌 네임스페이스 열거가 로컬 네임스페이스에서 발견된 중복 객체들을 무시한다. 열거는 또한 로컬 네임스페이스로부터 삭제로 마크된 객체들 및 대응 글로벌 네임스페이스 객체를 무시한다.
리소스 공유를 기대하는 애플리케이션들의 경우, 운영 체제는 동일한 가상화 애플리케이션 그룹(예를 들어, 동일한 격리 아이덴티티)에 애플리케이션들을 배치할 수도 있다. 대안으로, 운영 체제는 네임스페이스의 특정 부분이 가상화되지 않아야만 한다고 지정할 수도 있다. 또 다른 디안에서, 애플리케이션들은 다른 애플리케이션들이 액세스할 수도 있는 가상화된 네임스페이스의 일부분을 지정한다. 클라이언트 애플리케이션은 액세스가 요구되는 애플리케이션들을 지정한다. 클라이언트 애플리케이션이 공유 가상화 네임스페이스에 액세스할 때, 운영 체제는 타겟 애플리케이션들의 대응 공개 네임스페이스를 공유한다.
몇몇 환경들에서, 운영 체제는 다수의 가상화 층들을 갖기를 희망할 수도 있다. 사용자에 대한 가상화 층 및 애플리케이션 그룹에 대한 가상화 층이 있을 수도 있다. 다수의 가상화 층들의 다양한 순서가 본 발명의 범위 내에 속한다. 본 일례에서, 사용자 가상화 층은 애플리케이션 가상화 층 보다 우선한다. 따라서, 객체에 대한 질의 요청들 및 오픈 요청들은 먼저 현 사용자의 가상화 층들을 체크하고, 그 후 현 애플리케이션 그룹의 가상화 층을 체크하며, 마지막으로 글로벌 네임스페이스를 체크한다. 운영 체제는 발견된 제1 객체를 리턴하거나, 또는, 객체가 임의의 가상화 층들 또는 글로벌 네임스페이스에 존재하지 않는 경우 객체를 리턴하지 않는다. 유사하게, 기록 동작의 경우, 운영 체제는 먼저 객체를 오픈한다. 객체가 최고 우선 층에 존재하면, 기록 동작은 상기 객체에 대해 실행된다. 객체가 최고 우선 층에 존재하지 않으면, 객체는 최고 우선 층으로 복사되고 기록 동작이 복사된 객체에 대해 실행된다. 몇몇 실시예들에서 운영 체제들이 프리퍼런스로서 특정 가상화 층을 지정하도록 코드화하는 것을 허용할 수 있지만, 생성 동작은 최고 우선 층에서 발생된다.
유사하게, 객체를 삭제할 때, 몇몇 실시예들에서 운영 체제들이 프리퍼런스로서 특정 가상화 층을 지정하도록 코드화하는 것을 허용할 수 있지만, 동작은 최고 우선 가상화 층에서 발생된다. 정확한 객체가 발견되면, 운영 체제는 객체가 임의의 애플리커블 하위 순위 네임스페이스에 존재하는지를 체크한다. 객체가 하위 순위 네임스페이스에 존재하면, 의도된 삭제 객체가 "삭제"로 마크되며 네임스페이스에서 유지된다. 객체가 하위 순위 네임스페이스에 존재하지 않으면, 객체는 해당 네임스페이스로부터 삭제 및 제거된다. 몇몇 구성들에서, 운영 체제는 보다 높은 순위의 네임스페이스들로부터 대응 객체를 삭제할 수도 있다. 그러나, 상위 순서 객체의 크리에이터는 이러한 경우에 객체가 삭제되지 않도록 명시할 수도 있다.
하위 순위 네임스페이스에 객체를 추가할 때, 운영 체제는 상위 순서 네임스페이스들로부터 삭제로 마크된 모든 대응 객체들을 제거한다. 탐색 및 삭제는 타겟 네임스페이스로부터 시작해서 다음 애플리커블 상위 순서 층으로 가며, 탐색으로 삭제로 마크되지 않은 대응 객체가 발견되거나 모든 애플리커블 층들이 탐색될 때까지 계속된다.
열거 동작은 모든 애플리커블 가상화 층들에 대해 문맥 및 글로벌 네임스페이스를 설명한다. 열거는 최고 우선 애플리커블 네임스페이스로부터 시작해서 글로벌 네임스페이스로 이동한다. 열거하다가 삭제로 마크된 객체와 마주칠 때, 상기 객체에 대한 열거는 하위 순서 네임스페이스들에서 무시된다. 열거는 또한 상위 순위 네임스페이스들에서 이전에 발견된 대응 객체들을 무시한다.
운영 체제를 위한 내부 객체 보호
운영 체제는 다양한 객체들을 생성한다. 그 중 몇몇 객체들은 애플리케이션들에 의한 액세스를 위한 것이며 다른 객체들(예를 들어, 내부 객체들)은 운영 체제 컴포넌트들에 의해서만 액세스될 수 있다. 운영 체제는 객체들을 위한 액세스 권리들(예를 들어, 오픈 및 판독 액세스)을 정의한다.
한 실시예에서, 내부 운영 체제 객체들은 내부 운영 체제 컴포넌트들에 의해서만 액세스될 수 있어야만 한다. 외부 코드가 내부 객체들을 액세스하는 것을 방지하기 위해, 운영 체제는 내부 운영 체제 컴포넌트들에 의해서만 액세스되도록 내부 객체를 마크한다. 내부 운영 체제 코드로서 실행되는 실행 시간 객체들은 내부 운영 체제 아이덴티티와 관련된다. 따라서, 실행 시간 객체가 내부 객체에 액세스하고자 시도할 때, 운영 체제는 실행 시간 객체가 내부 운영 체제 아이덴티티와 관련되는지를 체크한다. 실행 시간 객체가 내부 운영 체제 아이덴티티를 가지면, 운영 체제는 액세스를 허용한다. 그렇지 않으면, 운영 체제는 적합한 액션을 구현한다. 적합한 액션은 액세스 거부, 액세스 시도 로깅 등을 포함할 수도 있다.
내부 운영 체제 컴포넌트가 객체를 생성할 때, 크리에이터가 특별히 외부 액세스에 유용한 것으로 객체를 마크하지 않는 한, 객체는 내부 운영 체제 컴포넌트들에 의해서만 액세스되도록 마크된다. 운영 체제는 스토어, 매니페스트, 구성 파일, 디지털 서명 등으로부터 리소스 정보를 사용해서 내부 객체들을 오프라인으로 마크할 수도 있다.
몇몇 운영 체제 컴포넌트들은 미들웨어 컴포넌트들로서 분류되는데, 이는 상기 컴포넌트들이 운영 체제의 파트일지라도, 외부 애플리케이션들의 액세스가 허용되는 몇몇 특별 예외들을 제외하고 내부 객체들에 액세스하지 못함을 의미한다. 한 실시예에서, 운영 체제는 미들웨어 컴포넌트들이 특별 예외 내부 객체 사용을 멈추고 외부 객체들로 이동하기를 원한다. 이러한 문제점을 다루기 위해, 운영 체제는 미들웨어 애플리케이션 아이덴티티를 미들웨어 컴포넌트들과 관련시킨다. 특별 예외 내부 객체들은 추가로 비난(deprecated) 속성으로 마크된다. 미들웨어 컴포넌트가 비난 객체에 액세스할 때, 시스템은 액세스 감사 및/또는 액세스 차단과 같은 적합한 액션으로 응답한다. 미들웨어 비난 리소스 검출은 보다 일반적으로 외부 객체들 또는 다른 외부 객체들 또는 다른 내부 객체들을 비난하는데 적용될 수도 있다.
애플리케이션 프로그램 삭제
이제부터 도 6을 참조하면, 일례의 플로우챠트가 애플리케이션 아이덴티티 정보를 사용해서 애플리케이션 되살리기를 실행하기 위한 방법을 도시하고 있다. 특히, 플로우챠트는 애플리케이션 프로그램 및 컴포넌트들(예를 들어, 파일 및 리소스)와 관련된 애플리케이션 식별자를 통해 컴퓨팅 시스템으로부터 설치된 애플리케이션 프로그램을 완전히 삭제하는 방법을 도시한다. 현존 애플리케이션 프로그램들이 현재 설치 제거 기능을 지원할 수도 있지만, 현 운영 체제는 특정 애플리케이션 프로그램과 관련된 컴포넌트들이 설치 제거 프로세스 중에 삭제된다고 확증하는 메카니즘이 결여된다. 본 발명의 실시예는 어떤 파일들이 특정 애플리케이션 프로그램과 관련되는지를 추적하는 데이터 스토어(예를 들어, 로그)를 유지한다. 따라서, 애플리케이션이 설치 제거될 때, 운영 체제는 설치 제거 프로세스에 의해 남겨진 임의의 파일들(예를 들어, 애플리케이션의 네임스페이스에서 가상화된 파일들을 포함)을 식별 및 삭제한다. 이는 운영 체제의 동작을 확장 또는 변경함으로써 생성되거나 다른 가상화 레벨들(예를 들어, 하위 레벨들)에서 생성된 소자들을 포함하는 애플리케이션의 모든 소자들을 설치 제거함으로써 애플리케이션 프로그램의 보다 완전한 설치 제거를 제공한다. 본 방법은 또한 애플리케이션 프로그램이 컴퓨팅 시스템으로부터 설치 제거된 후에도 종종 설치된 애플리케이션을 수반하는 스파이웨어, 애드웨어, 또는 다른 비희망 애플리케이션 프로그램들을 삭제하는데 도움이 된다.
한 실시예에서, 삭제될 특정 애플리케이션 프로그램은 컴퓨팅 시스템에 설치된 다수의 애플리케이션 프로그램들 중 하나이다. 본 발명의 실시예는 특정 애플리케이션 프로그램을 설치 제거하라는 요청을 수신한다(602). 요청은 예를 들어, 컴퓨팅 시스템의 사용자로부터 온 것일 수도 있다. 또는 요청은 운영 체제의 현 버전을 설치하기 전에 애플리케이션 프로그램의 이전 버전을 설치 제거하는 업그레이드 유틸리티에 의해 생성될 수도 있다. 본 발명의 실시예는 특정 애플리케이션 프로그램과 관련된 식별자를 결정한다(604). 예를 들어, 식별자는 애플리케이션 프로그램의 파트일 수도 있으며 또는 메모리 영역에 개별적으로 기억될 수도 있다. 본 발명의 실시예는 결정된 식별자를 통해 특정 애플리케이션 프로그램과 관련된 하나 이상의 파일들만을 식별한다(606). 즉, 식별된 파일들은 컴퓨팅 시스템에 설치된 다른 애플리케이션 프로그램들 중 임의의 프로그램과 관련되지 않는다. 시스템의 각각의 파일이 관련된 적어도 하나의 애플리케이션 식별자를 가지기에, 특정 애플리케이션 프로그램과만 관련된 파일들을 식별해서 결정된 식별자에 대한 탐색을 실행하게 된다. 본 발명의 실시예는 식별된 파일을 삭제한다(608). 한 실시예에서, 본 발명은 임의의 사용자 파일들(예를 들어, 워드 프로세싱 문서들, 스프레드시트 문서들)을 삭제하는 것을 방지한다.
또한, 특정 애플리케이션 프로그램 설치에 응답해서 발생된 시스템 세팅 또는 리소스 변경이 식별되고(610) 복귀된다(612). 예를 들어, 애플리케이션 프로그램 설치 중에, 컴퓨팅 시스템에 적용된 임의의 시스템 세팅들은 본 발명의 실시예에 의해 로그 및 유지된다. 애플리케이션에 의해 이루어진 파일 및 시스템 세팅 변경들은 소유권 추적을 위해 태그가 붙는다. 로그는 각각의 변경 사항들을 설치중인 애플리케이션 프로그램의 애플리케이션 식별자와 연관시킨다. 한 실시예에서, 로그는 하나 이상의 변경들의 롤백을 허용하도록 유지된다. 예를 들어, 사용자는 시스템에 대한 가장 최신 변경을 되살리기하기를 희망할 수도 있다. 다른 일례에서, 운영 체제는 특정 애플리케이션 프로그램과 관련된 변경들을 롤백함으로써 특정 애플리케이션 프로그램의 완전한 설치 제거를 실행한다. 애플리케이션 프로그램의 삭제 또는 설치 제거 중에, 본 발명의 실시예는 결정된 식별자를 사용해서, 설치 제거중인 애플리케이션 프로그램의 애플리케이션 식별자와 관련된 적용된 세팅들 또는 변경들을 식별 및 복귀하거나 또는 삭제한다. 예를 들어, 파일 타입 연관성 변경은 애플리케이션 프로그램을 설치 제거해서 관련된 애플리케이션 프로그램 없이 특정 파일 타입을 남기지 않도록 로그될 수도 있다. 즉, 애플리케이션 프로그램 설치 중에 파일 타입 연관이 달성되면, 파일 타입 연관은 애플리케이션 프로그램이 설치 제거될 때 복귀된다.
일례의 운영 환경
도 7은 컴퓨터(130) 형태의 범용 컴퓨팅 디바이스의 일례를 도시한다. 본 발명의 한 실시예에서, 컴퓨터(130)와 같은 컴퓨터 또는 다른 컴퓨팅 시스템은 도시되고 본 명세서에 기술된 다른 도면들에서 사용되기에 적합하다. 컴퓨터(130)는 하나 이상의 프로세서들 또는 프로세싱 유닛들(132) 및 시스템 메모리(134)를 갖는다. 본 실시예에서, 시스템 버스(136)는 시스템 메모리(134)를 포함하는 다양한 시스템 컴포넌트들을 프로세서들(132)에 결합시킨다. 버스(136)는 메모리 버스 또는 메모리 컨트롤러, 주변 버스, 가속화 그래픽스 포트, 및 다양한 버스 아키텍처들 중 임의의 아키텍처를 사용하는 프로세서 또는 로컬 버스를 포함해서 수개의 타입들의 버스 구조들 중 하나 이상의 임의의 버스 구조를 나타낸다. 예를 들어, 아키텍처들은 ISA(Industry Standard Architecture) 버스, MCA(Micro Channel Architecture) 버스, EISA(Enhanced ISA) 버스, VESA(Video Electronics Standards Association) 로컬 버스, 및 메저닌 버스로도 공지된 PCI(Peripheral Component Interconnect) 버스를 포함하는데, 이들로만 제한되지 않는다.
컴퓨터(130)는 통상 적어도 몇몇 형태의 컴퓨터 판독 가능 매체들을 포함한다. 휘발성 및 비휘발성 매체들, 제거 가능 및 제거 불가능 매체들을 모두 포함하는 컴퓨터 판독 가능 매체는 컴퓨터(130)에 의해 액세스될 수 있는 임의의 유용한 매체들일 수 있다. 예를 들어, 컴퓨터 판독 가능 매체는 컴퓨터 기억 매체 및 통신 매체를 포함하는데, 이들로만 제한되지는 않는다. 컴퓨터 기억 매체는 컴퓨터 판독 가능 명령들, 데이터 구조, 프로그램 모듈, 또는 다른 데이터와 같은 정보를 기억하기 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 제거 가능 및 제거 불가능 매체들을 모두 포함한다. 예를 들어, 컴퓨터 기억 매체들은 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, DVD(digital versatile disks) 또는 다른 광 디스크 스토리지, 자기 카셋트, 자기 테이프, 자기 디스크 스토리지 또는 다른 자기 기억 장치들, 또는 희망 정보를 기억하는데 사용될 수 있고 컴퓨터(130)에 의해 액세스될 수 있는 임의의 다른 매체들을 포함한다. 통신 매체는 통상 컴퓨터 판독 가능 명령들, 데이터 구조들, 프로그램 모듈들, 또는 반송파 또는 다른 전송 메카니즘과 같이 변조된 데이터 신호로 된 다른 데이터를 포함하며, 임의의 정보 전달 매체들을 포함한다. 본 기술 분야에 숙련된 자들은 변조된 데이터 신호에 익숙한데, 이는 정보를 신호로 인코드하는 방식으로 설정되거나 변경된 특징들 중 하나 이상의 특징을 갖는다. 유선망 또는 다이렉트-와이어드 커넥션과 같은 유선 매체, 및 음향, RF, 적외선 및 다른 무선 매체들과 같은 무선 매체는 통신 매체의 일례들이다. 상술된 바들의 임의의 결합도 컴퓨터 판독 가능 매체의 범위 내에 포함된다.
시스템 메모리(134)는 제거 가능 및/또는 제거 불가능, 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 기억 매체들을 포함한다. 도시된 실시예에서, 시스템 메모리(134)는 판독 전용 메모리(ROM; 138) 및 랜덤 액세스 메모리(RAM; 140)를 포함한다. 예를 들어, 시동 중과 같이, 컴퓨터(130) 내의 소자들 간의 정보 전송을 돕는 기본 루틴들을 포함하는 기본 입출력 시스템(BIOS; 142)은 통상 ROM(138)에 기억된다. RAM(140)은 통상 즉시 액세스될 수 있으며 및/또는 프로세싱 유닛(132)에 의해 현재 동작 중인 데이터 및/또는 프로그램 모듈들을 포함한다. 도 7은 예를 들어, 운영 체제(144), 애플리케이션 프로그램(146), 다른 프로그램 모듈(148) 및 프로그램 데이터(150)를 도시하고 있지만, 이들로만 제한되지 않는다.
컴퓨터(130)는 또한 다른 제거 가능/제거 불가능, 휘발성/비휘발성 컴퓨터 기억 매체들을 포함할 수도 있다. 예를 들어, 도 7은 제거 불가능 비휘발성 자기 매체 판독 또는 기록용 하드 디스크 드라이브(140)를 도시한다. 도 7은 또한 제거 가능 비휘발성 자기 디스크(158) 판독 또는 기록용 자기 디스크 드라이브(156), 및 CD-ROM 또는 다른 광 매체들과 같은 제거 가능 비휘발성 광 디스크(162) 판독 또는 기록용 광 디스크 드라이브(160)를 도시한다. 일례의 운영 환경에서 사용될 수 있는 다른 제거 가능/제거 불가능, 휘발성/비휘발성 컴퓨터 기억 매체는 자기 테이프 카셋트, 플래시 메모리 카드, DVD, 디지털 비디오 테이프, 고체 상태 RAM, 고체 상태 ROM 등을 포함하는데, 이들로만 제한되지 않는다. 하드 디스크 드라이브(154), 자기 디스크 드라이브(156) 및 광 디스크 드라이브(160)는 통상 인터페이스(166)와 같은 비휘발성 메모리 인터페이스에 의해 시스템 버스(136)에 연결된다.
상술되고 도 7에 도시된 드라이브들 또는 다른 대용량 기억 장치들 및 관련 컴퓨터 기억 매체들은 컴퓨터 판독 가능 명령들, 데이터 구조들, 프로그램 모듈들, 및 다른 데이터를 위한 컴퓨터(130)용 스토리지를 제공한다. 도 7에서, 예를 들어, 하드 디스크 드라이브(154)는 운영 체제(170), 애플리케이션 프로그램들(172), 다른 프로그램 모듈들(174), 및 프로그램 데이터(176)를 기억하는 것으로 도시되어 있다. 상기 컴포넌트들은 운영 체제(144), 애플리케이션 프로그램들(146), 다른 프로그램 모듈들(148), 및 프로그램 데이터(150)와 동일할 수도 상이할 수도 있음을 주지하라. 운영 체제(170), 애플리케이션 프로그램들(172), 다른 프로그램 모듈들(174) 및 프로그램 데이터(176)는 최소한 상이한 복사본들임을 설명하기 위해 상이한 번호들이 주어진다.
사용자는 키보드(180) 및 포인팅 디바이스(182)(예를 들어, 마우스, 트랙볼, 펜, 또는 터치 패드)와 같은 입력 장치들 또는 사용자 인터페이스 선택 장치들을 통해 컴퓨터(130)에 커맨드 및 정보를 입력할 수도 있다. 다른 입력 장치들(도시되지 않음)은 마이크로폰, 조이스틱, 게임 패드, 위성 접시, 스캐너 등을 포함할 수도 있다. 여타 입력 장치들은 시스템 버스(136)에 결합된 사용자 입력 인터페이스(184)를 통해 프로세싱 유닛(132)에 접속되지만, 병렬 포트, 게임 포트 또는 USB(Universal Serial Bus)와 같은 다른 인터페이스 및 버스 구조들에 의해 연결될 수도 있다. 모니터(188) 또는 다른 타입의 디스플레이 디바이스가 비디오 인터페이스(190)와 같은 인터페이스를 통해 시스템 버스(136)에 접속된다. 모니터 (188)외에, 컴퓨터들은 종종 출력 주변 인터페이스(도시되지 않음)를 통해 연결될 수도 있는 스피커 및 프린터와 같은 다른 주변 출력 장치들(도시되지 않음)을 포함한다.
컴퓨터(130)는 원격 컴퓨터(194)와 같은 하나 이상의 원격 컴퓨터들로의 로지컬 커넥션들을 사용해서 네트워크 환경에서 동작할 수 있다. 원격 컴퓨터(194)는 퍼스널 컴퓨터, 서버, 루터, 네트워크 PC, 피어 디바이스, 또는 다른 공통 네트워크 노드일 수 있으며, 컴퓨터(130)와 관련해서 상술된 소자들 중 다수 또는 전부를 통상 포함한다. 도 7에 도시된 로지컬 커넥션들은 근거리 통신망(LAN; 196) 및 광역 통신망(WAN; 198)을 포함하는데, 다른 네트워크들을 포함할 수도 있다. LAN(196) 및 WAN(198)은 유선망, 무선망, 또는 그 결합 등일 수 있다. 네트워크 환경은 사무실에서 흔한 것으로, 기업간 컴퓨터 네트워크, 인트라넷, 및 글로벌 컴퓨터 네트워크(예를 들어, 인터넷)이다.
LAN 환경에서 사용될 때, 컴퓨터(130)는 네트워크 인터페이스 또는 어댑터(186)를 통해 LAN(196)에 접속된다. WAN 환경에서 사용될 때, 컴퓨터(130)는 인터넷과 같은 WAN(198)을 통한 통신 설정을 위해 모뎀(178) 또는 다른 수단을 통상 포함한다. 내부 또는 외부에 있을 수 있는 모뎀(178)은 사용자 입력 인터페이스(184) 또는 다른 적합한 메카니즘을 통해 시스템 버스(136)에 접속된다. 네트워크 환경에서, 컴퓨터(130)와 관련해서 도시된 프로그램 모듈들, 또는 그 일부들은 원격 메모리 기억 장치(도시되지 않음)에 기억될 수도 있다. 예를 들어, 도 7은 메모리 디바이스에 상주하는 것으로 원격 애플리케이션 프로그램들(192)을 도시하고 있지만, 이로만 제한되지 않는다. 도시된 네트워크 커넥션들은 일례이며, 컴퓨터들 간에 통신 링크를 설정하는 다른 수단이 사용될 수도 있다.
일반적으로, 컴퓨터(130)의 데이터 프로세서는 컴퓨터의 다양한 컴퓨터 판독 가능 기억 매체에서 상이한 시간들에 기억된 명령들을 통해 프로그램화된다. 프로그램 및 운영 체제는 예를 들어, 플로피 디스크 또는 CD-ROM에 통상 분산된다. 프로그램 및 운영 체제는 상기 장소로부터 컴퓨터의 제2 메모리에 설치되거나 로드된다. 실행시, 프로그램 및 운영 체제는 적어도 일부가 컴퓨터의 제1 전자 메모리에 로드된다. 본 명세서에 기술된 발명은 마이크로프로세서 또는 다른 데이터 프로세서와 관련해서 후술된 단계들을 구현하기 위한 명령들 또는 프로그램을 포함하는 여타 다양한 타입의 컴퓨터 판독 가능 기억 매체들을 포함한다. 본 발명은 또한 본 명세서에 기술된 방법 및 기술에 따라 프로그래밍될 때 컴퓨터 자체를 포함한다.
설명을 위해, 운영 체제와 같은 프로그램들 및 다른 실행 가능 프로그램 컴포넌트들은 본 명세서에서 개별 블록들로 도시된다. 그러나, 프로그램들 및 컴포넌트들은 컴퓨터의 상이한 기억 컴포넌트들에 다양한 시간에 상주하며, 컴퓨터의 데이터 프로세서(들)에 의해 실행된다고 인식된다.
컴퓨터(130)를 포함해서 일례의 컴퓨팅 시스템 환경과 관련해서 기술되었지만, 본 발명은 다수의 다른 범용 또는 특별 용도의 컴퓨팅 시스템 환경들 또는 구성들에 의해 동작될 수 있다. 컴퓨팅 시스템 환경은 본 발명의 기능 또는 용도의 범위에 임의의 제한을 가하려는 의도가 아니다. 또한, 컴퓨팅 시스템 환경은 일례의 운영 환경에 도시된 컴포넌트들 중 임의의 한 컴포넌트 또는 결합물과 관련해서 임의의 종속성 또는 요구 사항을 갖는 것으로 해석돼서는 안된다. 본 발명에 의해 사용되기에 적합할 수도 있는 공지된 컴퓨팅 시스템들, 환경들 및/또는 구성들의 일례들은 퍼스널 컴퓨터, 서버 컴퓨터, 핸드헬드 또는 랩탑 디바이스, 멀티프로세서 시스템, 마이크로프로세서-베이스 시스템, 셋탑 박스, 프로그래머블 컨수머 일렉트로닉스, 휴대폰, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 상술된 시스템들 또는 디바이스들 중 임의의 시스템 또는 디바이스를 포함하는 분산 컴퓨팅 환경 등을 포함하는데, 이들로만 제한되지 않는다.
본 발명은 하나 이상의 컴퓨터들 또는 다른 디바이스들에 의해 실행되는 프로그램 모듈들과 같은 컴퓨터 실행 가능 명령들의 일반적인 문맥에서 기술될 수도 있다. 일반적으로, 프로그램 모듈들은 특정 태스크들을 실행하거나 특정 추상 데이터 타입들을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함하는데, 이들로만 제한되지 않는다. 본 발명은 또한 통신망을 통해 연결된 원격 처리 장치들에 의해 태스크들이 실행되는 분산 컴퓨팅 환경에서 구현될 수도 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈들은 메모리 기억 장치들을 포함해서 로컬 및 원격 컴퓨터 기억 매체들 모두에 위치할 수도 있다.
소프트웨어 아키텍처 정황에서의 인터페이스는 소프트웨어 모듈, 컴포넌트, 코드부, 또는 다른 컴퓨터 실행 가능 명령들의 시퀀스를 포함한다. 인터페이스는 예를 들어, 제1 모듈 대신 컴퓨팅 태스크들을 실행하는 제2 모듈에 액세스하는 제1 모듈을 포함한다. 한 일례에서, 제1 모듈 및 제2 모듈은 운영 체제에 의해 제공되는 애플리케이션 프로그래밍 인터페이스(API), COM(component object model) 인터페이스(예를 들어, 피어-투-피어 애플리케이션 커뮤니케이션), 및 XMI(extensible markup language metadata interchange format) 인터페이스(예를 들어, 웹 서비스들 간의 커뮤니케이션)를 포함한다.
인터페이스는 J2EE(Java 2 Platform Enterprise Edition), COM, 또는 DCOM(distributed COM) 일례들과 같은 밀결합 동기 구현일 수도 있다. 대안으로, 또한, 인터페이스는 웹 서비스(예를 들어, 간단한 객체 액세스 프로토콜을 사용함)에서와 같은 소결합 비동기 구현일 수도 있다. 일반적으로, 인터페이스는 밀결합, 소결합, 동기, 및 비동기와 같은 특징들의 임의의 결합을 포함한다. 또한, 인터페이스는 표준 프로토콜, 소유권 주장 가능 프로토콜, 또는 표준 및 소유권 주장 가능 프로토콜들의 임의의 결합들에 순응할 수도 있다.
본 명세서에 기술된 인터페이스들은 모두 싱글 인터페이스의 파트일 수도 있으며, 또는 개별 인터페이스들 또는 임의의 결합으로 구현될 수도 있다. 인터페이스들은 기능을 제공하기 위해 국부적으로 또는 원격으로 실행될 수 있다. 또한, 인터페이스들은 도시되거나 본 명세서에 기술된 기능들 보다 더 많은 기능을 또는 더 적은 기능을 포함할 수도 있다.
동작시, 컴퓨터(130)는 애플리케이션 프로그램 및 리소스와 관련된 특권에 따라 리소스에 대한 애플리케이션 프로그램 액세스를 승인하기 위해 도면들에 도시된 바와 같은 컴퓨터 실행 가능 명령들을 실행한다. 도면에 도시되고 본 명세서에 기술된 시스템들 및 방법들은 소프트웨어 또는 하드웨어로 또는 본 기술 분야에 공지된 몇몇 기술들을 사용해서 구현될 수도 있다.
매니페스트 일례
이하의 일례들이 본 발명을 더 설명한다. 후술된 몇몇 일례들은 레지스트리에 대한 참조를 포함하지만, 본 발명의 실시예는 레지스트리에만 제한되지 않는다. 본 발명의 실시예들은 시스템 세팅들을 기억하기 위한 임의의 메카니즘에 의해 동작될 수 있다. 속성들은 몇몇 메카니즘들과 함께 유전되지만, 유전성은 다른 메카니즘과 함께 보증되지는 않는다. 이하의 표 1은 매니페스트의 일례의 특권들을 열거하고 있으며 각각의 레벨들과 관련된 리소스 보호 타입을 기술한다.
특권 | 보호 타입 |
readOnlyIgnoreWrites | 판독 전용 - 본 특권과 관련된 파일들 또는 세팅들은 설치중 또는 서비스중일 때(예를 들어, 업그레이드 중) 운영 체제에 의해서만 변경될 수 있다. 파일 또는 세팅에 기록하려는 다른 시도는 묵묵히 무시된다(예를 들어, 기록이 발생하지 않았더라도 성공 응답을 리턴한다). |
readOnlyFailWrites | 판독 전용 - 본 특권과 관련된 파일들 또는 세팅들은 설치중 또는 서비스중일 때(예를 들어, 업그레이드 중) 운영 체제에 의해서만 변경될 수 있다. 파일 또는 세팅에 기록하려는 다른 시도는 명백히 무시된다(예를 들어, 실패 응답을 리턴한다). |
OSOnlyIgnoreWrites | 본 특권과 관련된 파일들 또는 세팅들은 운영 체제 컴포넌트에 의해서만 변경될 수 있다. 파일 또는 세팅에 기록하려는 다른 시도는 묵묵히 무시된다(예를 들어, 기록이 발생하지 않았더라도 성공 응답을 리턴한다). |
OSOnlyFailWrites | 본 특권과 관련된 파일들 또는 세팅들은 운영 체제 컴포넌트에 의해서만 변경될 수 있다. 파일 또는 세팅에 기록하려는 다른 시도는 명백히 무시된다(예를 들어, 실패 응답을 리턴한다). |
change recording | 본 특권과 관련된 세팅을 위해 기억된 상이한 값들은 애플리케이션 단위로 보유되지만 글로벌 단위로 가시적이다(기록한 최종 애플리케이션). 글로벌 값이 설치 제거중인 애플리케이션에 속한면, 현 글로벌 값은 애플리케이션 설치 제거중에 가장 최신 애플리케이션 알고리즘을 사용해서 롤백된다. |
applicationVirtualized | 본 특권과 관련된 파일들 또는 세팅들의 변경은 애플리케이션으로부터의 기록 요청에 응답해서 애플리케이션 단위로 가상화된다. |
userVirtualized | 본 특권과 관련된 파일들 또는 세팅들의 변경은 사용자로부터의 기록 요청에 응답해서 사용자 단위로 가상화된다. |
applicationAndUserVirtualized | 본 특권과 관련된 파일들 또는 세팅들의 변경은 애플리케이션 프로그램을 실행하는 사용자로부터의 기록 요청에 응답해서 사용자 단위 및 애플리케이션 단위로 가상화된다. |
notProtected | 본 특권과 관련된 파일들 또는 세팅들은 그와 관련해서 보호되거나 완화되지 않는다. 적합하게 허용된 임의의 제3 가입자 애플리케이션 또는 관리자가 상기 파일들 및 세팅들을 변경할 수도 있다. |
다른 일례에서, 샘플 운영 체제 컴포넌트(예를 들어, "Comp Name")는 컴포넌트와 관련된 리소스들에 대한 이하의 보호 동작을 희망한다.
디렉토리 네임 | 보호 동작 |
C:\Comp Name\ | 아이덴티티 베이스 액세스 특권들 |
C:\Comp Name\Sub\ | App 가상 |
C:\Common Files\Shared\Comp Name\ | 아이덴티티 베이스 액세스 특권들(실패 기록) |
디렉토리 네임 | 파일 네임 | 보호 동작 |
C:\ | CompName.dll | 아이덴티티 베이스 액세스 특권들 |
C:\Comp Name\ | Sample.sys | 아이덴티티 베이스 액세스 특권들 |
C:\Comp Name\Sub\ | CompName.dat | App 가상 |
C:\Common Files\Shared\Comp Name\ | Common.dll | 아이덴티티 베이스 액세스 특권들(실패 기록) |
C:\Common Files\Shared | Base.dll | App 가상 |
키 네임 | 보호 동작 |
HKLM\Software\Comp Name\ | 아이덴티티 베이스 액세스 특권들 |
HKLM\Software\Comp Name\SubKey\ | 아이덴티티 베이스 액세스 특권들 |
HKLM\Software\Comp Name\Settings\ | App 가상 |
HKCR\.comp | 아이덴티티 베이스 액세스 특권들 |
키 네임 | 값 네임 | 보호 동작 |
HKLM\Software\Comp Name\ | Version | 아이덴티티 베이스 액세스 특권들 |
HKLM\Software\Comp Name\SubKey\ | SubValue | 아이덴티티 베이스 액세스 특권들 |
HKCR\.comp\ | (Default) | 아이덴티티 베이스 액세스 특권들 |
HKEY_USERS\.Default\Environment\ | MyEnv | 아이덴티티 베이스 액세스 특권들 |
달리 지시되지 않는 한, 도시되고 본 명세서에 기술된 방법들의 실행 순서 또는 성능은 중요한 것이 아니다. 즉, 달리 지시되지 않는 한, 방법 요소들은 임의의 순서로 실행될 수도 있으며, 방법들은 본 명세서에 기술된 바 보다 더 많은 요소들을 또는 더 적은 요소들을 포함할 수도 있다.
본 발명의 요소들 또는 실시예(들)을 소개할 때, "한", "하나의", "그" 및 "상기"라는 용어는 하나 이상의 요소들을 의미한다. "포함하다" 및 "갖는다"라는 용어들은 열거된 요소들 외에 추가 요소들이 있을 수도 있음을 의미하다.
상술된 바에서, 본 발명의 수개의 목적들이 달성될 수도 있으며 다른 장점적인 결과들이 달성됨을 알 것이다.
본 발명의 범위 내에서 다양한 변경들이 상술된 구성들, 제품들, 및 방법들에서 이루어질 수 있기에, 상술된 설명에 포함되고 첨부된 도면들에 도시된 모든 요소들은 단지 설명을 위한 것으로 제한의 의미가 아니라고 해석된다.
본 발명에 따라 운영 체제가 리소스를 보호할 수 있게 해주는 향상된 시스템 및 방법이 제공된다.
도 1은 애플리케이션 프로그램에 리소스 액세스를 제공하는 운영 체제의 일례의 실시예를 도시한 도면.
도 2는 액세스 제어 방법의 동작을 도시한 일례의 플로우챠트.
도 3은 다양한 리소스들을 보호하기 위한 완화(mitigation) 아키텍처를 도시한 일례의 플로우챠트.
도 4는 파일, 시스템 세팅 및 확장에 대한 액세스 제어를 제공하는 방법의 동작을 도시한 일례의 플로우챠트.
도 5는 시스템 세팅에 대한 액세스 제어를 제공하는 방법의 동작을 도시한 일례의 플로우챠트.
도 6은 컴퓨팅 시스템으로부터 설치된 애플리케이션 프로그램을 삭제하는 동작을 도시한 일례의 플로우챠트.
도 7은 본 발명이 구현될 수도 있는 적합한 컴퓨팅 시스템 환경의 일례를 도시한 블록도.
<도면의 주요 부분에 대한 부호의 설명>
102 : 운영 체제 104 : 애플리케이션 프로그램
106 : 리소스 108 : 매니페스트
110 : 인터페이스 모듈 112 : 아이덴티티 모듈
114 : 필터 모듈 116 : 액세스 제어 모듈
130 : 컴퓨터
Claims (22)
- 컴퓨팅 시스템에서 리소스에 대한 애플리케이션 프로그램 액세스를 승인하는 컴퓨터 구현 방법에 있어서,요청시 식별된 리소스로의 액세스를 위한 요청을 애플리케이션 프로그램으로부터 수신하는 단계;애플리케이션 프로그램용 애플리케이션 식별자를 결정하는 단계;결정된 애플리케이션 식별자 및 식별된 리소스의 함수로서 매니페스트(manifest)로부터 특권(privilege)을 식별하는 단계; 및식별된 특권에 따라 식별된 리소스에 대한 애플리케이션 프로그램 액세스를 승인하는 단계를 포함하며, 상기 매니페스트는 식별된 리소스에 액세스하기 위해 애플리케이션 프로그램이 가지는 특권을 나타내는 것을 특징으로 하는 컴퓨터 구현 방법.
- 제1항에 있어서,상기 매니페스트로부터 특권을 식별하는 단계가 상기 애플리케이션 프로그램과 관련된 매니페스트로부터 특권을 식별하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
- 제1항에 있어서,상기 매니페스트로부터 특권을 식별하는 단계가 상기 컴퓨팅 시스템에서 실행되는 운영 체제와 관련된 상기 매니페스트로부터 특권을 식별하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
- 제1항에 있어서,애플리케이션 프로그램용 애플리케이션 식별자를 결정하는 단계가 애플리케이션 프로그램을 나타내는 다수의 파일들 및 시스템 세팅들 각각과 관련된 애플리케이션 식별자를 결정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
- 제1항에 있어서,식별된 리소스에 대한 애플리케이션 프로그램 액세스를 승인하는 단계가 식별된 리소스에 대한 애플리케이션 프로그램 판독 전용 액세스를 승인하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
- 제1항에 있어서,식별된 리소스에 대한 애플리케이션 프로그램 액세스를 승인하는 단계가 식별된 리소스에 대한 애플리케이션 프로그램 액세스를 거부하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
- 제1항에 있어서,식별된 리소스에 대한 애플리케이션 프로그램 액세스를 승인하는 단계가 애플리케이션 프로그램에 의해 사용되도록 리소스의 복사본을 생성하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
- 제7항에 있어서,애플리케이션 프로그램이 컴퓨팅 시스템에 설치되며, 리소스의 생성된 복사본을 사용해서 컴퓨팅 시스템에 애플리케이션 프로그램을 설치하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
- 제1항에 있어서,애플리케이션 프로그램이 컴퓨팅 시스템에 설치되며, 컴퓨팅 시스템에 시스템 세팅을 적용하는 단계를 포함해서 컴퓨팅 시스템에 애플리케이션 프로그램을 설치하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
- 제1항에 있어서,요청시 식별된 리소스에 대한 액세스 요청을 애플리케이션 프로그램으로부터 수신하는 단계가 파일, 디렉토리, 명명 객체, 및 시스템 세팅 중 하나 이상에 대한 액세스 요청을 애플리케이션 프로그램으로부터 수신하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
- 제1항에 있어서,애플리케이션 프로그램 설치 후 애플리케이션 프로그램의 하나 이상의 액션들을 근거로 매니페스트를 생성하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
- 컴퓨팅 시스템으로부터 특정 애플리케이션 프로그램 및 관련 시스템 세팅들 및 객체들을 설치 제거하는 컴퓨터 구현 방법으로서, 상기 특정 애플리케이션 프로그램은 관련된 적어도 하나의 파일을 가지며, 컴퓨팅 시스템에 설치된 다수의 애플리케이션 프로그램들 중 하나인 컴퓨터 구현 방법에 있어서,특정 애플리케이션 프로그램을 설치 제거하라는 요청을 수신하는 단계;특정 애플리케이션 프로그램과 관련된 식별자를 결정하는 단계;결정된 식별자를 통해 다수의 애플리케이션 프로그램들 중 특정 애플리케이션 프로그램과만 관련된 파일을 식별하는 단계; 및식별된 파일을 삭제하는 단계를 포함하며, 상기 식별된 파일은 관련된 결정된 식별자를 갖는 것을 특징으로 하는 컴퓨터 구현 방법.
- 제12항에 있어서,결정된 식별자를 통해, 특정 애플리케이션 프로그램 설치에 응답해서 적용된 하나 이상의 리소스 변경들을 식별하는 단계; 및식별된 리소스 변경들을 복귀하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
- 제13항에 있어서,적용된 리소스 변경들의 로그를 유지하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
- 제14항에 있어서,하나 이상의 리소스 변경들을 식별하는 단계가 파일 타입 연관을 식별하는 단계를 포함하고, 식별된 리소스 변경들을 복귀하는 단계가 로그에 유지된 이전 연관으로 파일 타입 연관을 복귀하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
- 제12항에 있어서,다수의 애플리케이션 프로그램들 중 특정 애플리케이션 프로그램과만 관련된 파일을 식별하는 단계가 다수의 애플리케이션 프로그램들 중 특정 애플리케이션 프로그램과만 관련된 하나 이상의 객체들을 식별하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
- 선행 항들 중 임의의 항에 기재된 컴퓨터 구현 방법을 실행하기 위한 컴퓨터 실행 가능 컴포넌트들을 갖는 것을 특징으로 하는 하나 이상의 컴퓨터 판독 가능 매체.
- 선행 항들 중 임의의 항에 기재된 컴퓨터 구현 방법을 실행하기 위한 것을 특징으로 하는 시스템.
- 다수의 리소스들에 액세스하기 위한 애플리케이션 프로그램의 매니페스트 지정 액세스 권리들을 나타내는 데이터 구조를 기억하는 컴퓨터 판독 가능 매체에 있어서, 상기 데이터 구조가애플리케이션 프로그램에 대응하는 아이덴티티를 나타내는 값을 기억하는 제1 필드;애플리케이션 프로그램과 관련된 리소스 리스트를 기억하는 제2 필드; 및제1 필드로부터의 아이덴티티 및 제2 필드에 기억된 리소스 리스트와 관련된 특권을 기억하는 제3 필드를 포함하며, 상기 특권이 리소스 리스트의 각각의 리소스에 액세스하기 위한 애플리케이션 프로그램의 액세스 권리를 정의하는것을 특징으로 하는 컴퓨터 판독 가능 매체.
- 제19항에 있어서,제1 필드가 버전, 중앙 처리 장치, 및 공용 키 중 하나 이상을 근거로 한 값을 기억하는 것을 특징으로 하는 컴퓨터 판독 가능 매체.
- 제19항에 있어서,제2 필드가 파일, 디렉토리, 명명 객체 및 시스템 세팅 중 하나 이상을 포함하는 리소스 리스트를 기억하는 것을 특징으로 하는 컴퓨터 판독 가능 매체.
- 제19항에 있어서,제3 필드가 의미 있는 선언(declaration of intent)을 나타내는 특권을 기억하는 것을 특징으로 하는 컴퓨터 판독 가능 매체.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US51394103P | 2003-10-24 | 2003-10-24 | |
US60/513,941 | 2003-10-24 | ||
US10/868,182 US20050091658A1 (en) | 2003-10-24 | 2004-06-15 | Operating system resource protection |
US10/868,182 | 2004-06-15 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20050039661A true KR20050039661A (ko) | 2005-04-29 |
Family
ID=34396616
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020040084907A KR20050039661A (ko) | 2003-10-24 | 2004-10-22 | 운영 체제 리소스 보호 |
Country Status (5)
Country | Link |
---|---|
US (2) | US20050091658A1 (ko) |
EP (1) | EP1526429A3 (ko) |
JP (1) | JP2005129066A (ko) |
KR (1) | KR20050039661A (ko) |
CN (1) | CN1617101A (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013162208A1 (en) * | 2012-04-24 | 2013-10-31 | Samsung Electronics Co., Ltd. | Scalable and secure application resource management and access control for multicore operating systems |
US9098726B2 (en) | 2012-04-24 | 2015-08-04 | Samsung Electronics Co., Ltd. | Scalable and secure application resource management and access control for multicore operating systems |
KR20220014537A (ko) * | 2020-07-29 | 2022-02-07 | 네이버 주식회사 | 어플리케이션 리소스 최적화를 위한 방법과 시스템 |
Families Citing this family (188)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040133606A1 (en) * | 2003-01-02 | 2004-07-08 | Z-Force Communications, Inc. | Directory aggregation for files distributed over a plurality of servers in a switched file system |
TW561358B (en) | 2001-01-11 | 2003-11-11 | Force Corp Z | File switch and switched file system |
US8239354B2 (en) | 2005-03-03 | 2012-08-07 | F5 Networks, Inc. | System and method for managing small-size files in an aggregated file system |
US8195760B2 (en) * | 2001-01-11 | 2012-06-05 | F5 Networks, Inc. | File aggregation in a switched file system |
US7509322B2 (en) | 2001-01-11 | 2009-03-24 | F5 Networks, Inc. | Aggregated lock management for locking aggregated files in a switched file system |
US7512673B2 (en) | 2001-01-11 | 2009-03-31 | Attune Systems, Inc. | Rule based aggregation of files and transactions in a switched file system |
US7461256B2 (en) * | 2002-07-29 | 2008-12-02 | International Business Machines Corporation | Generating watermark signals |
US20040127242A1 (en) * | 2002-12-31 | 2004-07-01 | Dashevsky Jane Y. | Apparatus and associated methods for the synchronization of shared content |
US20050091535A1 (en) * | 2003-10-24 | 2005-04-28 | Microsoft Corporation | Application identity for software products |
US20050091658A1 (en) * | 2003-10-24 | 2005-04-28 | Microsoft Corporation | Operating system resource protection |
JP4368184B2 (ja) * | 2003-11-19 | 2009-11-18 | 株式会社日立製作所 | ブラックリストによる緊急アクセス遮断装置 |
US7480655B2 (en) * | 2004-01-09 | 2009-01-20 | Webroor Software, Inc. | System and method for protecting files on a computer from access by unauthorized applications |
US20050283779A1 (en) * | 2004-05-19 | 2005-12-22 | Pronk Van Hoogeveen Joost W D | Method and apparatus for deploying software applications using a zone architecture |
CN100481013C (zh) * | 2004-08-03 | 2009-04-22 | 索芙特瑞斯提股份有限公司 | 用于经由上下文策略控制来控制应用程序间关联的系统和方法 |
US7587594B1 (en) | 2004-08-30 | 2009-09-08 | Microsoft Corporation | Dynamic out-of-process software components isolation for trustworthiness execution |
US8117559B2 (en) * | 2004-09-30 | 2012-02-14 | Citrix Systems, Inc. | Method and apparatus for virtualizing window information |
US7752600B2 (en) * | 2004-09-30 | 2010-07-06 | Citrix Systems, Inc. | Method and apparatus for providing file-type associations to multiple applications |
US8095940B2 (en) * | 2005-09-19 | 2012-01-10 | Citrix Systems, Inc. | Method and system for locating and accessing resources |
US7680758B2 (en) * | 2004-09-30 | 2010-03-16 | Citrix Systems, Inc. | Method and apparatus for isolating execution of software applications |
US8171479B2 (en) * | 2004-09-30 | 2012-05-01 | Citrix Systems, Inc. | Method and apparatus for providing an aggregate view of enumerated system resources from various isolation layers |
US7853947B2 (en) * | 2004-09-30 | 2010-12-14 | Citrix Systems, Inc. | System for virtualizing access to named system objects using rule action associated with request |
JP4411173B2 (ja) * | 2004-09-30 | 2010-02-10 | 富士通株式会社 | コンピュータシステムの管理方法およびコンピュータ管理システムおよびコンピュータ管理プログラム |
US20060069662A1 (en) * | 2004-09-30 | 2006-03-30 | Citrix Systems, Inc. | Method and apparatus for remapping accesses to virtual system resources |
US7725601B2 (en) * | 2004-10-12 | 2010-05-25 | International Business Machines Corporation | Apparatus, system, and method for presenting a mapping between a namespace and a set of computing resources |
US7882317B2 (en) * | 2004-12-06 | 2011-02-01 | Microsoft Corporation | Process isolation using protection domains |
US8020141B2 (en) * | 2004-12-06 | 2011-09-13 | Microsoft Corporation | Operating-system process construction |
US7600232B2 (en) * | 2004-12-07 | 2009-10-06 | Microsoft Corporation | Inter-process communications employing bi-directional message conduits |
US7451435B2 (en) * | 2004-12-07 | 2008-11-11 | Microsoft Corporation | Self-describing artifacts and application abstractions |
FR2880487B1 (fr) * | 2004-12-31 | 2007-06-01 | Cit Alcatel | Procede de controle d'acces |
US7885970B2 (en) * | 2005-01-20 | 2011-02-08 | F5 Networks, Inc. | Scalable system for partitioning and accessing metadata over multiple servers |
US7802294B2 (en) * | 2005-01-28 | 2010-09-21 | Microsoft Corporation | Controlling computer applications' access to data |
US7810153B2 (en) * | 2005-01-28 | 2010-10-05 | Microsoft Corporation | Controlling execution of computer applications |
US7958347B1 (en) | 2005-02-04 | 2011-06-07 | F5 Networks, Inc. | Methods and apparatus for implementing authentication |
US20060200861A1 (en) * | 2005-03-04 | 2006-09-07 | Dell Products L.P. | Robust and fault-tolerant registry for web-enabled information handling devices to protect against "malware" |
US20060209328A1 (en) * | 2005-03-15 | 2006-09-21 | Microsoft Corporation | Systems and methods that facilitate selective enablement of a device driver feature(s) and/or application(s) |
WO2006110976A1 (en) * | 2005-04-18 | 2006-10-26 | Research In Motion Limited | Implementing customizable container services as component wireless applications |
US7665098B2 (en) * | 2005-04-29 | 2010-02-16 | Microsoft Corporation | System and method for monitoring interactions between application programs and data stores |
US8464317B2 (en) * | 2005-05-06 | 2013-06-11 | International Business Machines Corporation | Method and system for creating a protected object namespace from a WSDL resource description |
US7332818B2 (en) * | 2005-05-12 | 2008-02-19 | Endicott Interconnect Technologies, Inc. | Multi-chip electronic package with reduced line skew and circuitized substrate for use therein |
US7774405B2 (en) * | 2005-05-16 | 2010-08-10 | Microsoft Corporation | Coordination of set enumeration information between independent agents |
US7730522B2 (en) * | 2005-05-16 | 2010-06-01 | Microsoft Corporation | Self-registering objects for an IPC mechanism |
US8849968B2 (en) | 2005-06-20 | 2014-09-30 | Microsoft Corporation | Secure and stable hosting of third-party extensions to web services |
US8074288B2 (en) * | 2005-07-15 | 2011-12-06 | Microsoft Corporation | Isolation of application-specific data within a user account |
US8320880B2 (en) * | 2005-07-20 | 2012-11-27 | Qualcomm Incorporated | Apparatus and methods for secure architectures in wireless networks |
US8977657B2 (en) * | 2005-07-28 | 2015-03-10 | International Business Machines Corporation | Finding lost objects in a file system having a namespace |
WO2007030796A2 (en) * | 2005-09-09 | 2007-03-15 | Salesforce.Com, Inc. | Systems and methods for exporting, publishing, browsing and installing on-demand applications in a multi-tenant database environment |
JP4685567B2 (ja) * | 2005-09-15 | 2011-05-18 | 株式会社日立製作所 | 情報処理装置によるサービス提供システム |
US7779034B2 (en) * | 2005-10-07 | 2010-08-17 | Citrix Systems, Inc. | Method and system for accessing a remote file in a directory structure associated with an application program executing locally |
US20070083620A1 (en) * | 2005-10-07 | 2007-04-12 | Pedersen Bradley J | Methods for selecting between a predetermined number of execution methods for an application program |
US8131825B2 (en) * | 2005-10-07 | 2012-03-06 | Citrix Systems, Inc. | Method and a system for responding locally to requests for file metadata associated with files stored remotely |
EP1942437A4 (en) * | 2005-10-26 | 2012-08-01 | Panasonic Corp | DATA PROCESSING DEVICE |
US8074231B2 (en) | 2005-10-26 | 2011-12-06 | Microsoft Corporation | Configuration of isolated extensions and device drivers |
US20070094495A1 (en) * | 2005-10-26 | 2007-04-26 | Microsoft Corporation | Statically Verifiable Inter-Process-Communicative Isolated Processes |
DE602006014192D1 (de) * | 2005-12-02 | 2010-06-17 | Citrix Systems Inc | Uthentifizierungsbescheinigungen von einem proxy-server für eine virtualisierte berechnungsumgebung zum zugriff auf eine remote-ressource |
JP4795787B2 (ja) | 2005-12-09 | 2011-10-19 | 株式会社日立製作所 | ストレージシステム、nasサーバ、及びスナップショット方法 |
US8539481B2 (en) * | 2005-12-12 | 2013-09-17 | Microsoft Corporation | Using virtual hierarchies to build alternative namespaces |
US8312459B2 (en) * | 2005-12-12 | 2012-11-13 | Microsoft Corporation | Use of rules engine to build namespaces |
US7996841B2 (en) * | 2005-12-12 | 2011-08-09 | Microsoft Corporation | Building alternative views of name spaces |
US20070136356A1 (en) * | 2005-12-12 | 2007-06-14 | Microsoft Corporation | Mechanism for drivers to create alternate namespaces |
KR100772872B1 (ko) * | 2006-02-24 | 2007-11-02 | 삼성전자주식회사 | 다중 자바 어플리케이션 환경에서 가상 아이디를 이용하여자원을 관리하는 장치 및 그 방법 |
US9038071B2 (en) * | 2006-03-30 | 2015-05-19 | Microsoft Technology Licensing, Llc | Operating system context isolation of application execution |
US8001528B2 (en) | 2006-03-30 | 2011-08-16 | Microsoft Corporation | Organization of application state and configuration settings |
US20070260577A1 (en) * | 2006-03-30 | 2007-11-08 | Microsoft Corporation | Providing COM access to an isolated system |
US8417746B1 (en) | 2006-04-03 | 2013-04-09 | F5 Networks, Inc. | File system management with enhanced searchability |
US7836079B2 (en) * | 2006-04-07 | 2010-11-16 | Microsoft Corporation | Virtual universal naming convention name space over local file system |
JP2007293639A (ja) * | 2006-04-26 | 2007-11-08 | Yokogawa Electric Corp | アクセス制御方法、アクセス制御方法を用いた機器及びシステム |
US8032898B2 (en) * | 2006-06-30 | 2011-10-04 | Microsoft Corporation | Kernel interface with categorized kernel objects |
US7712143B2 (en) | 2006-09-27 | 2010-05-04 | Blue Ridge Networks, Inc. | Trusted enclave for a computer system |
EP3493074A1 (en) * | 2006-10-05 | 2019-06-05 | Splunk Inc. | Time series search engine |
US7809955B2 (en) | 2006-10-17 | 2010-10-05 | Blue Ridge Networks, Inc. | Trustable communities for a computer system |
US8584109B2 (en) | 2006-10-27 | 2013-11-12 | Microsoft Corporation | Virtualization for diversified tamper resistance |
KR100915803B1 (ko) * | 2006-12-05 | 2009-09-07 | 한국전자통신연구원 | 임베디드 리눅스 커널의 보안성 강화를 위한 응용 프로그램구동 방법 및 시스템 |
US8156507B2 (en) * | 2006-12-08 | 2012-04-10 | Microsoft Corporation | User mode file system serialization and reliability |
US8640215B2 (en) * | 2007-03-23 | 2014-01-28 | Microsoft Corporation | Secure isolation of application pools |
WO2008135692A1 (fr) * | 2007-03-30 | 2008-11-13 | France Telecom | Gestion d'acces a des ressources d'un systeme d'exploitation |
US8789063B2 (en) | 2007-03-30 | 2014-07-22 | Microsoft Corporation | Master and subordinate operating system kernels for heterogeneous multiprocessor systems |
US20090077097A1 (en) * | 2007-04-16 | 2009-03-19 | Attune Systems, Inc. | File Aggregation in a Switched File System |
US20080289000A1 (en) * | 2007-05-16 | 2008-11-20 | Motorola, Inc. | Method and electronic device for managing applications |
WO2008147973A2 (en) * | 2007-05-25 | 2008-12-04 | Attune Systems, Inc. | Remote file virtualization in a switched file system |
US9870263B2 (en) * | 2007-06-29 | 2018-01-16 | Microsoft Technology Licensing, Llc | System virtualization instance management for terminal sessions |
US8566296B2 (en) * | 2007-09-14 | 2013-10-22 | Oracle International Corporation | Support for compensation aware data types in relational database systems |
US7904434B2 (en) * | 2007-09-14 | 2011-03-08 | Oracle International Corporation | Framework for handling business transactions |
US20090094596A1 (en) * | 2007-10-05 | 2009-04-09 | Scense B.V. | Systems and methods for an adaptive installation |
US8171483B2 (en) | 2007-10-20 | 2012-05-01 | Citrix Systems, Inc. | Method and system for communicating between isolation environments |
US8548953B2 (en) * | 2007-11-12 | 2013-10-01 | F5 Networks, Inc. | File deduplication using storage tiers |
US8117244B2 (en) | 2007-11-12 | 2012-02-14 | F5 Networks, Inc. | Non-disruptive file migration |
US20090204705A1 (en) * | 2007-11-12 | 2009-08-13 | Attune Systems, Inc. | On Demand File Virtualization for Server Configuration Management with Limited Interruption |
US8180747B2 (en) | 2007-11-12 | 2012-05-15 | F5 Networks, Inc. | Load sharing cluster file systems |
US8352785B1 (en) | 2007-12-13 | 2013-01-08 | F5 Networks, Inc. | Methods for generating a unified virtual snapshot and systems thereof |
GB2456134A (en) * | 2007-12-31 | 2009-07-08 | Symbian Software Ltd | Typed application development |
US7792934B2 (en) * | 2008-01-02 | 2010-09-07 | Citrix Systems International Gmbh | Loading of server-stored user profile data |
JP5178319B2 (ja) * | 2008-05-22 | 2013-04-10 | キヤノン株式会社 | アプリケーションプラットフォーム |
US8549582B1 (en) | 2008-07-11 | 2013-10-01 | F5 Networks, Inc. | Methods for handling a multi-protocol content name and systems thereof |
US8561137B2 (en) * | 2008-07-23 | 2013-10-15 | Oracle International Corporation | Techniques for identity authentication of virtualized machines |
US8103718B2 (en) * | 2008-07-31 | 2012-01-24 | Microsoft Corporation | Content discovery and transfer between mobile communications nodes |
US8649276B2 (en) * | 2008-07-31 | 2014-02-11 | Microsoft Corporation | Content transfer |
DE102008046639B4 (de) * | 2008-09-09 | 2011-02-24 | Adrian Dr. Spalka | Verfahren zur Bereitstellung mindestens einer Leistung über ein Serversystem |
US8667512B2 (en) * | 2008-10-29 | 2014-03-04 | Qualcomm Incorporated | Flexible hierarchical settings registry for operating systems |
US8149431B2 (en) * | 2008-11-07 | 2012-04-03 | Citrix Systems, Inc. | Systems and methods for managing printer settings in a networked computing environment |
US20100251227A1 (en) * | 2009-03-25 | 2010-09-30 | Microsoft Corporation | Binary resource format and compiler |
US8612994B1 (en) * | 2009-03-30 | 2013-12-17 | Symantec Corporation | Methods and systems for activating and deactivating virtualization layers |
US8090797B2 (en) | 2009-05-02 | 2012-01-03 | Citrix Systems, Inc. | Methods and systems for launching applications into existing isolation environments |
US8881140B1 (en) | 2009-09-04 | 2014-11-04 | Symantec Corporation | Systems and methods for virtualizing software associated with external computer hardware devices |
US10721269B1 (en) | 2009-11-06 | 2020-07-21 | F5 Networks, Inc. | Methods and system for returning requests with javascript for clients before passing a request to a server |
US8782429B2 (en) * | 2009-12-23 | 2014-07-15 | Ab Initio Technology Llc | Securing execution of computational resources |
US9262187B2 (en) * | 2010-02-05 | 2016-02-16 | Microsoft Technology Licensing, Llc | Extension point declarative registration for virtualization |
US8204860B1 (en) | 2010-02-09 | 2012-06-19 | F5 Networks, Inc. | Methods and systems for snapshot reconstitution |
US9195500B1 (en) | 2010-02-09 | 2015-11-24 | F5 Networks, Inc. | Methods for seamless storage importing and devices thereof |
EP2534604A4 (en) * | 2010-02-11 | 2013-12-04 | Hewlett Packard Development Co | ACCESS OF FILE EXECUTABLE ON THE BASIS OF IDENTITY |
US9098363B2 (en) | 2010-04-07 | 2015-08-04 | Apple Inc. | Search extensibility to third party applications |
US8347100B1 (en) | 2010-07-14 | 2013-01-01 | F5 Networks, Inc. | Methods for DNSSEC proxying and deployment amelioration and systems thereof |
US9009790B2 (en) * | 2010-09-11 | 2015-04-14 | At&T Intellectual Property I, L.P. | Association of multiple public user identifiers to disparate applications in an end-user's device |
US9286298B1 (en) | 2010-10-14 | 2016-03-15 | F5 Networks, Inc. | Methods for enhancing management of backup data sets and devices thereof |
US8650658B2 (en) | 2010-10-25 | 2014-02-11 | Openpeak Inc. | Creating distinct user spaces through user identifiers |
US8478888B2 (en) | 2011-01-28 | 2013-07-02 | Bmc Software, Inc. | System and method for stateless, fault tolerance and load balanced data collection using overlay namespaces |
US8650640B2 (en) * | 2011-02-24 | 2014-02-11 | International Business Machines Corporation | Using a declaration of security requirements to determine whether to permit application operations |
US20120284702A1 (en) * | 2011-05-02 | 2012-11-08 | Microsoft Corporation | Binding applications to device capabilities |
US20120291103A1 (en) * | 2011-05-09 | 2012-11-15 | Google Inc. | Permission-based administrative controls |
JP5287930B2 (ja) * | 2011-06-01 | 2013-09-11 | 株式会社リコー | 装置、セキュリティ管理方法、セキュリティ管理プログラム及び記録媒体 |
CN102855432B (zh) * | 2011-06-27 | 2015-11-25 | 北京奇虎科技有限公司 | 一种文件、文件夹解锁和删除方法及系统 |
US8396836B1 (en) | 2011-06-30 | 2013-03-12 | F5 Networks, Inc. | System for mitigating file virtualization storage import latency |
US9118686B2 (en) * | 2011-09-06 | 2015-08-25 | Microsoft Technology Licensing, Llc | Per process networking capabilities |
US8990561B2 (en) | 2011-09-09 | 2015-03-24 | Microsoft Technology Licensing, Llc | Pervasive package identifiers |
US9773102B2 (en) * | 2011-09-09 | 2017-09-26 | Microsoft Technology Licensing, Llc | Selective file access for applications |
US20130067531A1 (en) * | 2011-09-12 | 2013-03-14 | Microsoft Corporation | Access Brokering Based on Declarations and Consent |
US9733791B2 (en) | 2011-09-12 | 2017-08-15 | Microsoft Technology Licensing, Llc | Access to contextually relevant system and application settings |
US9800688B2 (en) | 2011-09-12 | 2017-10-24 | Microsoft Technology Licensing, Llc | Platform-enabled proximity service |
US8239918B1 (en) | 2011-10-11 | 2012-08-07 | Google Inc. | Application marketplace administrative controls |
US8463850B1 (en) | 2011-10-26 | 2013-06-11 | F5 Networks, Inc. | System and method of algorithmically generating a server side transaction identifier |
CN102521031B (zh) | 2011-12-13 | 2014-11-05 | 华为终端有限公司 | 移动终端预置应用程序的管理方法和移动终端 |
US9020912B1 (en) | 2012-02-20 | 2015-04-28 | F5 Networks, Inc. | Methods for accessing data in a compressed file system and devices thereof |
KR101308351B1 (ko) * | 2012-02-24 | 2013-09-17 | 주식회사 팬택 | 어플리케이션에 권한을 할당하는 단말기 및 상기 단말기의 권한 할당 방법 |
CN103366118A (zh) * | 2012-04-06 | 2013-10-23 | 腾讯科技(深圳)有限公司 | 进行安装包病毒查杀的方法及装置 |
CN103581145B (zh) * | 2012-08-06 | 2017-02-08 | 联想(北京)有限公司 | 一种电子设备及应用于电子设备的安全防护方法 |
US9519501B1 (en) | 2012-09-30 | 2016-12-13 | F5 Networks, Inc. | Hardware assisted flow acceleration and L2 SMAC management in a heterogeneous distributed multi-tenant virtualized clustered system |
US10356204B2 (en) | 2012-12-13 | 2019-07-16 | Microsoft Technology Licensing, Llc | Application based hardware identifiers |
CN104137073B (zh) * | 2012-12-31 | 2017-11-21 | 华为技术有限公司 | 一种获取文件的方法和装置 |
EP2951676B1 (en) * | 2013-01-29 | 2020-12-30 | BlackBerry Limited | Managing application access to data |
CN103136024B (zh) * | 2013-01-31 | 2016-02-24 | 广东欧珀移动通信有限公司 | 一种应用程序的可靠卸载方法、装置及移动装置 |
US10375155B1 (en) | 2013-02-19 | 2019-08-06 | F5 Networks, Inc. | System and method for achieving hardware acceleration for asymmetric flow connections |
US9554418B1 (en) | 2013-02-28 | 2017-01-24 | F5 Networks, Inc. | Device for topology hiding of a visited network |
CN103246595B (zh) | 2013-04-08 | 2016-06-08 | 小米科技有限责任公司 | 应用程序管理方法、装置、服务器及终端设备 |
US9390088B2 (en) | 2013-04-22 | 2016-07-12 | International Business Machines Corporation | Ensuring access to long-term stored electronic documents |
US9858247B2 (en) | 2013-05-20 | 2018-01-02 | Microsoft Technology Licensing, Llc | Runtime resolution of content references |
US9787820B2 (en) * | 2013-08-07 | 2017-10-10 | Linkedin Corporation | Navigating between a mobile application and a mobile browser |
US9361454B2 (en) | 2014-05-30 | 2016-06-07 | Apple Inc. | Methods for restricting resources used by an application based on a base profile and an application specific profile |
US9600662B2 (en) * | 2014-06-06 | 2017-03-21 | T-Mobile Usa, Inc. | User configurable profiles for security permissions |
US11838851B1 (en) | 2014-07-15 | 2023-12-05 | F5, Inc. | Methods for managing L7 traffic classification and devices thereof |
CN104133641A (zh) * | 2014-07-24 | 2014-11-05 | 深圳市同洲电子股份有限公司 | 一种外部存储设备文件清除方法以及装置 |
US11275861B2 (en) * | 2014-07-25 | 2022-03-15 | Fisher-Rosemount Systems, Inc. | Process control software security architecture based on least privileges |
US10182013B1 (en) | 2014-12-01 | 2019-01-15 | F5 Networks, Inc. | Methods for managing progressive image delivery and devices thereof |
US9843452B2 (en) | 2014-12-15 | 2017-12-12 | Amazon Technologies, Inc. | Short-duration digital certificate issuance based on long-duration digital certificate validation |
US20160179828A1 (en) * | 2014-12-19 | 2016-06-23 | International Business Machines Corporation | Revision management |
US11895138B1 (en) | 2015-02-02 | 2024-02-06 | F5, Inc. | Methods for improving web scanner accuracy and devices thereof |
US10834065B1 (en) | 2015-03-31 | 2020-11-10 | F5 Networks, Inc. | Methods for SSL protected NTLM re-authentication and devices thereof |
GB2539433B8 (en) * | 2015-06-16 | 2018-02-21 | Advanced Risc Mach Ltd | Protected exception handling |
US11461456B1 (en) * | 2015-06-19 | 2022-10-04 | Stanley Kevin Miles | Multi-transfer resource allocation using modified instances of corresponding records in memory |
US11176240B1 (en) * | 2021-04-20 | 2021-11-16 | Stanley Kevin Miles | Multi-transfer resource allocation using modified instances of corresponding records in memory |
US9992236B2 (en) * | 2015-06-22 | 2018-06-05 | Dell Products L.P. | Systems and methods for providing protocol independent disjoint port names |
US10404698B1 (en) | 2016-01-15 | 2019-09-03 | F5 Networks, Inc. | Methods for adaptive organization of web application access points in webtops and devices thereof |
US10797888B1 (en) | 2016-01-20 | 2020-10-06 | F5 Networks, Inc. | Methods for secured SCEP enrollment for client devices and devices thereof |
EP3513544B1 (en) | 2016-09-16 | 2021-12-01 | Pivotal Software, Inc. | Credential management in cloud-based application deployment |
CN107844699A (zh) * | 2016-09-20 | 2018-03-27 | 中兴通讯股份有限公司 | 一种应用程序的访问权限控制方法和装置 |
US10412198B1 (en) | 2016-10-27 | 2019-09-10 | F5 Networks, Inc. | Methods for improved transmission control protocol (TCP) performance visibility and devices thereof |
US10241896B2 (en) * | 2016-11-08 | 2019-03-26 | Salesforce, Inc. | Formation and manipulation of test data in a database system |
CN108417258A (zh) * | 2017-02-10 | 2018-08-17 | 深圳市理邦精密仪器股份有限公司 | 权限管理方法、装置和监护仪 |
US10956615B2 (en) | 2017-02-17 | 2021-03-23 | Microsoft Technology Licensing, Llc | Securely defining operating system composition without multiple authoring |
US10567492B1 (en) | 2017-05-11 | 2020-02-18 | F5 Networks, Inc. | Methods for load balancing in a federated identity environment and devices thereof |
US10325116B2 (en) * | 2017-06-30 | 2019-06-18 | Vmware, Inc. | Dynamic privilege management in a computer system |
US10365910B2 (en) * | 2017-07-06 | 2019-07-30 | Citrix Systems, Inc. | Systems and methods for uninstalling or upgrading software if package cache is removed or corrupted |
CN109246065A (zh) * | 2017-07-11 | 2019-01-18 | 阿里巴巴集团控股有限公司 | 网络隔离方法和装置以及电子设备 |
CN108228353A (zh) * | 2017-12-29 | 2018-06-29 | 北京元心科技有限公司 | 资源访问控制方法、装置及相应终端 |
US11223689B1 (en) | 2018-01-05 | 2022-01-11 | F5 Networks, Inc. | Methods for multipath transmission control protocol (MPTCP) based session migration and devices thereof |
US10833943B1 (en) | 2018-03-01 | 2020-11-10 | F5 Networks, Inc. | Methods for service chaining and devices thereof |
CN108804944A (zh) * | 2018-06-04 | 2018-11-13 | 北京奇虎科技有限公司 | 基于数据表的资源权限配置方法及装置 |
US11068614B2 (en) * | 2018-08-30 | 2021-07-20 | Dell Products, L.P. | System-level data security based on environmental properties |
US12003422B1 (en) | 2018-09-28 | 2024-06-04 | F5, Inc. | Methods for switching network packets based on packet data and devices |
US11675902B2 (en) | 2018-12-05 | 2023-06-13 | Vmware, Inc. | Security detection system with privilege management |
CN112784283B (zh) * | 2019-11-08 | 2024-07-05 | 华为技术有限公司 | 能力的管理方法和计算机设备 |
CN111240752B (zh) * | 2019-12-31 | 2021-08-17 | 北京元心科技有限公司 | 操作系统自适配方法及系统 |
US11501010B2 (en) * | 2020-05-20 | 2022-11-15 | Snowflake Inc. | Application-provisioning framework for database platforms |
US11593354B2 (en) | 2020-05-20 | 2023-02-28 | Snowflake Inc. | Namespace-based system-user access of database platforms |
US11249988B2 (en) | 2020-05-20 | 2022-02-15 | Snowflake Inc. | Account-level namespaces for database platforms |
CN111897651B (zh) * | 2020-07-28 | 2024-03-19 | 华中科技大学 | 一种基于标签的内存系统资源管理方法 |
US11768933B2 (en) * | 2020-08-11 | 2023-09-26 | Saudi Arabian Oil Company | System and method for protecting against ransomware without the use of signatures or updates |
CN112764832A (zh) * | 2021-01-21 | 2021-05-07 | 青岛海信移动通信技术股份有限公司 | 一种应用程序安装、卸载方法及通信终端 |
CN112685730B (zh) * | 2021-03-18 | 2021-06-22 | 北京全息智信科技有限公司 | 一种操作系统账户的权限控制方法、装置及电子设备 |
WO2023084561A1 (ja) * | 2021-11-09 | 2023-05-19 | 日本電気株式会社 | インストール制御装置、インストール制御方法、共有システム、共有方法及び記憶媒体 |
Family Cites Families (65)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB8529890D0 (en) * | 1985-12-04 | 1986-01-15 | Watson P | Garbage collection in computer system |
JPH0734177B2 (ja) * | 1987-07-16 | 1995-04-12 | 日本電気株式会社 | 知識情報参照装置 |
CA1323448C (en) * | 1989-02-24 | 1993-10-19 | Terrence C. Miller | Method and apparatus for translucent file system |
JP2520543B2 (ja) * | 1991-09-06 | 1996-07-31 | インターナショナル・ビジネス・マシーンズ・コーポレイション | プログラムの実行を管理する方法及びシステム |
US5412717A (en) * | 1992-05-15 | 1995-05-02 | Fischer; Addison M. | Computer system security method and apparatus having program authorization information data structures |
DE69323926T2 (de) * | 1992-05-15 | 1999-09-30 | Addison M. Fischer | Verfahren und Vorrichtung zur Sicherheit eines Computersystem mit Programmberechtigungsdatenstrukturen |
CA2124720C (en) * | 1993-06-25 | 2002-10-22 | Michael R. C. Seaman | Integration of systems management services with an underlying system object model |
US5560005A (en) * | 1994-02-25 | 1996-09-24 | Actamed Corp. | Methods and systems for object-based relational distributed databases |
JP4145365B2 (ja) * | 1994-08-03 | 2008-09-03 | 株式会社野村総合研究所 | ファイルアクセス制御装置 |
US5754854A (en) * | 1994-11-14 | 1998-05-19 | Microsoft Corporation | Method and system for providing a group of parallel resources as a proxy for a single shared resource |
US5825877A (en) * | 1996-06-11 | 1998-10-20 | International Business Machines Corporation | Support for portable trusted software |
US5799306A (en) * | 1996-06-21 | 1998-08-25 | Oracle Corporation | Method and apparatus for facilitating data replication using object groups |
US7356847B2 (en) * | 1996-06-28 | 2008-04-08 | Protexis, Inc. | System for dynamically encrypting content for secure internet commerce and providing embedded fulfillment software |
JPH10111833A (ja) * | 1996-10-07 | 1998-04-28 | Hitachi Ltd | アクセス権限管理方式 |
US5915085A (en) * | 1997-02-28 | 1999-06-22 | International Business Machines Corporation | Multiple resource or security contexts in a multithreaded application |
US6385707B1 (en) * | 1998-02-24 | 2002-05-07 | Adaptec, Inc. | Method and apparatus for backing up a disk drive upon a system failure |
US6182086B1 (en) * | 1998-03-02 | 2001-01-30 | Microsoft Corporation | Client-server computer system with application recovery of server applications and client applications |
US6505300B2 (en) * | 1998-06-12 | 2003-01-07 | Microsoft Corporation | Method and system for secure running of untrusted content |
US6308274B1 (en) * | 1998-06-12 | 2001-10-23 | Microsoft Corporation | Least privilege via restricted tokens |
US6381742B2 (en) * | 1998-06-19 | 2002-04-30 | Microsoft Corporation | Software package management |
US6523166B1 (en) * | 1998-09-21 | 2003-02-18 | Microsoft Corporation | Method and system for on-demand installation of software implementations |
US6378127B1 (en) * | 1998-09-21 | 2002-04-23 | Microsoft Corporation | Software installation and validation using custom actions |
US6317143B1 (en) * | 1999-01-26 | 2001-11-13 | Gateway, Inc. | Programmable graphical user interface control system and method |
US6970924B1 (en) * | 1999-02-23 | 2005-11-29 | Visual Networks, Inc. | Methods and apparatus for monitoring end-user experience in a distributed network |
US6449617B1 (en) * | 1999-06-15 | 2002-09-10 | Microsoft Corporation | Edit command delegation program for editing electronic files |
US7149222B2 (en) * | 1999-12-21 | 2006-12-12 | Converged Access, Inc. | Integrated access point network device |
JP4177957B2 (ja) * | 2000-03-22 | 2008-11-05 | 日立オムロンターミナルソリューションズ株式会社 | アクセス制御システム |
US6640317B1 (en) * | 2000-04-20 | 2003-10-28 | International Business Machines Corporation | Mechanism for automated generic application damage detection and repair in strongly encapsulated application |
US6871344B2 (en) * | 2000-04-24 | 2005-03-22 | Microsoft Corporation | Configurations for binding software assemblies to application programs |
US6854108B1 (en) * | 2000-05-11 | 2005-02-08 | International Business Machines Corporation | Method and apparatus for deterministic replay of java multithreaded programs on multiprocessors |
US6327628B1 (en) * | 2000-05-19 | 2001-12-04 | Epicentric, Inc. | Portal server that provides a customizable user Interface for access to computer networks |
US6973577B1 (en) * | 2000-05-26 | 2005-12-06 | Mcafee, Inc. | System and method for dynamically detecting computer viruses through associative behavioral analysis of runtime state |
US20030159070A1 (en) * | 2001-05-28 | 2003-08-21 | Yaron Mayer | System and method for comprehensive general generic protection for computers against malicious programs that may steal information and/or cause damages |
CA2424352A1 (en) * | 2000-05-28 | 2001-12-06 | Yaron Mayer | System and method for comprehensive general generic protection for computers against malicious programs that may steal information and/or cause damages |
US20010056463A1 (en) * | 2000-06-20 | 2001-12-27 | Grady James D. | Method and system for linking real world objects to digital objects |
US6868539B1 (en) * | 2000-06-28 | 2005-03-15 | Microsoft Corp. | System and method providing single application image |
US7350204B2 (en) * | 2000-07-24 | 2008-03-25 | Microsoft Corporation | Policies for secure software execution |
JP4548758B2 (ja) * | 2000-09-05 | 2010-09-22 | 大日本印刷株式会社 | 共有アクセス管理機能を備えた携帯可能な情報処理装置 |
WO2002033525A2 (en) * | 2000-10-17 | 2002-04-25 | Chuang Shyne Song | A method and system for detecting rogue software |
US20020083183A1 (en) * | 2000-11-06 | 2002-06-27 | Sanjay Pujare | Conventionally coded application conversion system for streamed delivery and execution |
US6611836B2 (en) * | 2000-12-26 | 2003-08-26 | Simdesk Technologies, Inc. | Server-side recycle bin system |
US20020087665A1 (en) * | 2000-12-29 | 2002-07-04 | Marshall Donald Brent | Method and system for integrated resource management |
GB0102518D0 (en) * | 2001-01-31 | 2001-03-21 | Hewlett Packard Co | Trusted operating system |
EP1239377A1 (de) * | 2001-03-07 | 2002-09-11 | Abb Research Ltd. | Datenorganisationssystem und Verfahren zur Gliederungsstrukturverwaltung und -synchronisation |
JP2002288087A (ja) * | 2001-03-23 | 2002-10-04 | Humming Heads Inc | 情報処理装置及びその方法、情報処理システム及びその制御方法、プログラム |
US7028305B2 (en) * | 2001-05-16 | 2006-04-11 | Softricity, Inc. | Operating system abstraction and protection layer |
US7016920B2 (en) * | 2001-05-25 | 2006-03-21 | International Business Machines Corporation | Method for tracking relationships between specified file name and particular program used for subsequent access in a database |
US7290266B2 (en) * | 2001-06-14 | 2007-10-30 | Cisco Technology, Inc. | Access control by a real-time stateful reference monitor with a state collection training mode and a lockdown mode for detecting predetermined patterns of events indicative of requests for operating system resources resulting in a decision to allow or block activity identified in a sequence of events based on a rule set defining a processing policy |
US7117504B2 (en) * | 2001-07-10 | 2006-10-03 | Microsoft Corporation | Application program interface that enables communication for a network software platform |
US7017162B2 (en) * | 2001-07-10 | 2006-03-21 | Microsoft Corporation | Application program interface for network software platform |
US7483970B2 (en) * | 2001-12-12 | 2009-01-27 | Symantec Corporation | Method and apparatus for managing components in an IT system |
US7448084B1 (en) * | 2002-01-25 | 2008-11-04 | The Trustees Of Columbia University In The City Of New York | System and methods for detecting intrusions in a computer system by monitoring operating system registry accesses |
US20030204730A1 (en) * | 2002-04-29 | 2003-10-30 | Barmettler James W. | Secure transmission and installation of an application |
US20040003390A1 (en) * | 2002-06-27 | 2004-01-01 | Microsoft Corporation | System and method for installing a software application in a non-impactfull manner |
US20040054896A1 (en) * | 2002-09-12 | 2004-03-18 | International Business Machines Corporation | Event driven security objects |
US7069474B2 (en) * | 2002-09-18 | 2006-06-27 | Sun Microsystems, Inc. | System and method for assessing compatibility risk |
US7178163B2 (en) * | 2002-11-12 | 2007-02-13 | Microsoft Corporation | Cross platform network authentication and authorization model |
US7200760B2 (en) * | 2002-12-31 | 2007-04-03 | Protexis, Inc. | System for persistently encrypting critical software data to control the operation of an executable software program |
US7409389B2 (en) * | 2003-04-29 | 2008-08-05 | International Business Machines Corporation | Managing access to objects of a computing environment |
US7210125B2 (en) * | 2003-07-17 | 2007-04-24 | International Business Machines Corporation | Method and system for application installation and management using an application-based naming system including aliases |
US20050033777A1 (en) * | 2003-08-04 | 2005-02-10 | Moraes Mark A. | Tracking, recording and organizing changes to data in computer systems |
US20050091535A1 (en) * | 2003-10-24 | 2005-04-28 | Microsoft Corporation | Application identity for software products |
US20050091658A1 (en) * | 2003-10-24 | 2005-04-28 | Microsoft Corporation | Operating system resource protection |
GB0327950D0 (en) * | 2003-12-03 | 2004-01-07 | Ibm | Determining the configuration of a data processing system at the time a transaction was processed |
WO2005059720A1 (en) * | 2003-12-17 | 2005-06-30 | Telecom Italia S.P.A. | Method and apparatus for monitoring operation of processing systems, related network and computer program product therefor |
-
2004
- 2004-06-15 US US10/868,182 patent/US20050091658A1/en active Pending
- 2004-09-10 US US10/938,094 patent/US20050091214A1/en not_active Abandoned
- 2004-10-04 EP EP04023598A patent/EP1526429A3/en not_active Withdrawn
- 2004-10-21 CN CNA2004100882889A patent/CN1617101A/zh active Pending
- 2004-10-22 KR KR1020040084907A patent/KR20050039661A/ko not_active Application Discontinuation
- 2004-10-25 JP JP2004310057A patent/JP2005129066A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013162208A1 (en) * | 2012-04-24 | 2013-10-31 | Samsung Electronics Co., Ltd. | Scalable and secure application resource management and access control for multicore operating systems |
US9098726B2 (en) | 2012-04-24 | 2015-08-04 | Samsung Electronics Co., Ltd. | Scalable and secure application resource management and access control for multicore operating systems |
KR20220014537A (ko) * | 2020-07-29 | 2022-02-07 | 네이버 주식회사 | 어플리케이션 리소스 최적화를 위한 방법과 시스템 |
Also Published As
Publication number | Publication date |
---|---|
US20050091658A1 (en) | 2005-04-28 |
EP1526429A3 (en) | 2006-09-13 |
JP2005129066A (ja) | 2005-05-19 |
US20050091214A1 (en) | 2005-04-28 |
EP1526429A2 (en) | 2005-04-27 |
CN1617101A (zh) | 2005-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20050039661A (ko) | 운영 체제 리소스 보호 | |
US8646044B2 (en) | Mandatory integrity control | |
US20050091535A1 (en) | Application identity for software products | |
US9684785B2 (en) | Providing multiple isolated execution environments for securely accessing untrusted content | |
US7823186B2 (en) | System and method for applying security policies on multiple assembly caches | |
KR101201118B1 (ko) | 바이러스 방지 소프트웨어 어플리케이션들의 지식 베이스를모으는 시스템 및 방법 | |
JP4931255B2 (ja) | 仮想化されたファイル・システム | |
US7698741B2 (en) | Controlling the isolation of an object | |
US7900243B2 (en) | Method and system for managing execution of an application module | |
US8539481B2 (en) | Using virtual hierarchies to build alternative namespaces | |
US8046831B2 (en) | Automating software security restrictions on system resources | |
US20140380316A1 (en) | Techniques for dynamic disk personalization | |
US20100175104A1 (en) | Safe and secure program execution framework with guest application space | |
US20090300599A1 (en) | Systems and methods of utilizing virtual machines to protect computer systems | |
CN112805708B (zh) | 保护计算机系统上的选定磁盘 | |
US8413253B2 (en) | Protecting persistent secondary platform storage against attack from malicious or unauthorized programs | |
US20210382739A1 (en) | Partially Privileged Lightweight Virtualization Environments | |
KR20090075691A (ko) | 병합된 레지스트리 키들 내의 레지스트리 요소의 가상 삭제를 수행하기 위한 시스템, 복수의 레지스트리 키 또는 값을 포함하는 가상 병합 키의 뷰를 포함하는 레지스트리 키들 또는 값들의 복수의 집합의 뷰를 사일로에서 실행되는 프로세스들에게 제공하기 위한 방법 및 컴퓨터 판독가능 매체 | |
US7650501B1 (en) | System and methods for construction, fusion, prosecution, and maintenance of minimized operating environments | |
JP2004303243A (ja) | 高信頼性コンピューティングシステムにおけるノードのセキュリティ属性 | |
Wu et al. | Towards a binary integrity system for windows | |
Paul et al. | Comparing java and. net security: Lessons learned and missed | |
Faden | Multilevel filesystems in solaris trusted extensions | |
Griffiths et al. | Fireguard-A secure browser with reduced forensic footprint | |
Ančincová et al. | Fedora 22 SELinux User's and Administrator's Guide |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |