KR100915803B1 - 임베디드 리눅스 커널의 보안성 강화를 위한 응용 프로그램구동 방법 및 시스템 - Google Patents

임베디드 리눅스 커널의 보안성 강화를 위한 응용 프로그램구동 방법 및 시스템 Download PDF

Info

Publication number
KR100915803B1
KR100915803B1 KR1020070100071A KR20070100071A KR100915803B1 KR 100915803 B1 KR100915803 B1 KR 100915803B1 KR 1020070100071 A KR1020070100071 A KR 1020070100071A KR 20070100071 A KR20070100071 A KR 20070100071A KR 100915803 B1 KR100915803 B1 KR 100915803B1
Authority
KR
South Korea
Prior art keywords
application
setting information
user
application program
security
Prior art date
Application number
KR1020070100071A
Other languages
English (en)
Other versions
KR20080052342A (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 한국전자통신연구원
Priority to US11/999,217 priority Critical patent/US8677477B2/en
Priority to EP08154727.5A priority patent/EP2045747B1/en
Priority to CN200810096083.3A priority patent/CN101403973B/zh
Publication of KR20080052342A publication Critical patent/KR20080052342A/ko
Application granted granted Critical
Publication of KR100915803B1 publication Critical patent/KR100915803B1/ko
Priority to US14/218,706 priority patent/US20140201830A1/en

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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
    • G06F21/6227Protecting 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 where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Abstract

본 발명은 임베디드 리눅스 커널의 보안성 강화를 위한 응용 프로그램 구동 방법 및 시스템에 관한 것으로서, 더욱 상세하게는 슈퍼유저의 권한을 분산하여 임베디드 리눅스 커널의 보안성을 강화하는 시스템 및 방법에 관한 것이다. 본 발명에 따른 응용 프로그램 구동 방법은, 사용자에 의해 선택된 응용 프로그램의 보안설정정보를 검색하는 단계; 상기 보안설정정보에 포함된 상기 응용 프로그램에 연관된 사용자 ID(Userid)로 상기 응용 프로그램 프로세스의 사용자 계정을 전환하는 단계; 상기 보안설정정보에 포함된 캐퍼빌리티의 설정 정보에 따라 상기 응용 프로그램 프로세스의 캐퍼빌리티를 설정하는 단계; 상기 보안설정정보에 포함된 기본 디렉토리 정보에 따라 상기 응용 프로그램 프로세스의 기본 디렉토리를 변경하는 단계; 및 상기 응용 프로그램을 구동하는 단계를 통하여 임베디드 리눅스 커널상에서 응용 프로그램을 구동하는 응용 프로그램 구동 방법을 제공한다. 본 발명은 한 명의 사용자가 시스템을 사용하는 임베디드 시스템의 특성을 고려하여 각각의 응용 프로그램 프로세스가 각각의 사용자에 의해 실행되는 것으로 간주함으로써, 종래의 리눅스 시스템 보안 기능을 충분히 활용하여 임베디드 리눅스 시스템을 구성할 수 있다.
임베디드 리눅스 커널, 보안

Description

임베디드 리눅스 커널의 보안성 강화를 위한 응용 프로그램 구동 방법 및 시스템{Application Program Launching Method and System for Improving Security of Embedded Linux Kernel}
본 발명은 임베디드 리눅스 커널의 보안성 강화를 위한 응용 프로그램 구동 방법 및 시스템에 관한 것으로서, 보다 상세하게는 슈퍼 유저의 권한을 분산하여 임베디드 리눅스 커널의 보안성을 강화하는 시스템 및 방법에 관한 것이다.
하드웨어 프로세서 기술의 발전에 따라 임베디드 시스템의 성능은 비약적으로 향상되어왔다. 그 결과, 임베디드 시스템은 유/무선 네트워크를 통하여 외부와 연결될 수 있게 되었다. 또한, PDA/PMP와 같은 장치에 리눅스와 같은 범용 운영체제를 사용함에 따라 일반 사용자 또는 프로그램 제작자가 작성한 외부 프로그램들이 임베디드 시스템에서 실행될 수 있게 되었다. 이러한 변화에 따라 임베디드 시스템의 보안성 강화기능은 더욱 필수적인 기능이 되었다.
리눅스와 같은 운영체제에 있어서 종래의 보안 방법은 서버-클라이언트 환경과 같은 다중 사용자 환경에 기반하여 개발되어 왔다. 다중 사용자 환경에서 운영체제는 일반 사용자로부터 시스템을 보호하기 위해 일반 사용자의 프로세스와 시스템을 관리하는 프로세스를 구분하는 것이 필요하고, 이러한 구분을 위해 운영체제는 시스템 관리에 필요한 권한을 집중시킨 슈퍼유저 계정을 별도로 유지한다. 리눅스와 같은 유닉스 계열의 운영체제에서, 슈퍼유저 계정은 일반적으로 'root'라는 계정으로 사용되고, 'root' 계정은 일반적으로 특정 포트와 프로세스의 바인딩(binding), 커널 모듈(kernel module)의 로딩(loading), 파일 시스템의 마운팅(mounting)과 언마운팅(unmounting) 및 기타 다양한 시스템 운영활동을 포함하는 권한을 가지게 된다.
따라서, 종래의 리눅스 운영체제는 'root' 계정을 제외한 사용자 계정에 대해 보안 정책을 적용하는 방식으로 보안성 강화 방법을 운영하여 왔다. 가장 일반적인 예로서 보안 커널(security kernel)을 들 수 있다. 보안 커널은 커널 내부에서의 보안성을 강화하는 방법으로서, 사용자 계정 단위로 파일의 소유자 및 소유 그룹을 비소유자로부터 구분하여 파일에 대한 접근을 제어하거나 사용자 계정에 따라 네트워크 접속, 프로세스 간의 통신에 대하여 접근제어를 수행한다.
반면, 종래의 서버-클라이언트 환경과 달리 임베디드 시스템은 다중 사용자 환경이 아닌 단독 사용자 환경에서 주로 운용된다. 일인의 사용자가 시스템을 사용함에 따라, 임베디드 시스템은 별도의 사용자 계정을 필요로 하지 않고, 대부분의 프로세스는 슈퍼유저 계정(root)으로 실행된다.
도 1은 임베디드 리눅스 시스템에서 종래의 보안방법에 따라 응용 프로그램을 실행하는 환경을 도시한 블록도이다. 도 1을 참조하면, 각각의 응용 프로그램의 프로세스들(110, 120, 130)은 'root' 계정을 통해 실행이 되고, 따라서 리눅스 커널(100)에 아무런 제한없이 접근할 수 있다. 이러한 응용 프로그램들은 슈퍼유저에 부여된 권한(이하, '슈퍼유저 권한'이라 한다)을 필요로 하지 않거나 권한의 일부만을 필요로 하는 경우가 있음에도 불구하고, 슈퍼유저에 부여된 권한 전체를 사용하게 되어 불필요한 시스템 접근을 허용할 수 있다. 따라서 임베디드 리눅스 시스템에서 다중 사용자 환경을 가정한 종래의 리눅스 운영체제의 보안방법에 따라 응용 프로그램을 구동하는 것은 비효율적일 뿐만 아니라 새로운 보안 위험까지 초래할 수 있는 것이다.
본 발명에서 해결하고자 하는 과제는, 임베디드 시스템이 지닌 사용자 환경의 특수성을 감안하면서도 기존의 리눅스 운영체제에서 사용되는 여러 가지 보안방법을 큰 수정없이 사용할 수 있는 임베디드 리눅스 커널상에서의 응용 프로그램 구동 방법 및 시스템을 제공하는 것이다.
본 발명의 일 측면은 사용자에 의해 선택된 응용 프로그램의 보안설정정보를 검색하는 단계; 상기 보안설정정보에 포함된 상기 응용 프로그램에 연관된 사용자 ID(Userid)로 상기 응용 프로그램 프로세스의 사용자 계정을 전환하는 단계; 상기 보안설정정보에 포함된 캐퍼빌리티의 설정 정보에 따라 상기 응용 프로그램 프로세스의 캐퍼빌리티를 설정하는 단계; 상기 보안설정정보에 포함된 기본 디렉토리 정보에 따라 상기 응용 프로그램 프로세스의 기본 디렉토리를 변경하는 단계; 및 상기 응용 프로그램을 구동하는 단계를 통하여 임베디드 리눅스 커널상에서 응용 프로그램을 구동하는 응용 프로그램 구동 방법을 제공한다. 바람직하게는, 상기 응용 프로그램의 상기 보안설정정보를 검색하는 단계 이전에 상기 응용 프로그램을 설치하는 단계를 더 포함할 수 있고, 상기 응용 프로그램 설치 단계는 설 치될 응용 프로그램에 사용자 ID를 할당하는 단계; 상기 응용 프로그램에 필요한 캐퍼빌리티의 설정 정보를 구성하는 단계; 상기 응용 프로그램에 상응하는 기본 디렉토리를 지정하는 단계; 및 상기 사용자 ID, 상기 캐퍼빌리티 및 상기 기본 디렉토리를 포함하는 보안설정정보를 레지스트리에 저장하는 단계를 포함할 수 있다.
본 발명의 다른 측면은 사용자로부터 응용 프로그램의 선택을 수신하는 사용자 인터페이스; 레지스트리 관리자와 통신하여 레지스트리로부터 상기 응용 프로그램의 보안설정정보를 검색하는 레지스트리 인터페이스; 및 상기 보안설정정보에 따라 사용자 계정, 캐퍼빌리티 및 기본 디렉토리를 설정하고 상기 응용 프로그램의 프로세스를 구동하는 제어부를 통하여 임베디드 리눅스 커널상에서 응용 프로그램을 구동하는 응용 프로그램 구동 시스템을 제공한다. 바람직하게는, 상기 응용 프로그램을 설치하는 과정에서 상기 응용 프로그램의 상기 보안설정정보를 추출하여 상기 레지스트리에 저장하는 응용 프로그램 설치부를 더 포함할 수 있다.
본 발명의 다른 측면은 사용자에 의해 선택된 응용 프로그램의 보안설정정보를 검색하는 단계; 상기 보안설정정보에 포함된 상기 응용 프로그램에 연관된 사용자 ID로 상기 응용 프로그램 프로세스의 사용자 계정을 전환하는 단계; 상기 보안설정정보에 포함된 캐퍼빌리티의 설정정보에 따라 상기 응용 프로그램 프로세스의 캐퍼빌리티를 설정하는 단계; 상기 보 안설정정보에 포함된 기본 디렉토리의 정보에 따라 상기 응용 프로그램 프로세스의 기본 디렉토리를 변경하는 단계; 및 상기 응용 프로그램을 구동하는 단계를 통하여, 임베디드 리눅스 커널상에서 응용 프로그램을 구동하기 위한 방법을 수행하기 위해 컴퓨터로 실행할 수 있는 프로그램을 저장하는 컴퓨터 판독가능 기록매체를 제공한다.
본 발명은 한 명의 사용자가 시스템을 사용하는 임베디드 시스템의 특성을 고려하여 각각의 응용 프로그램 프로세스가 각각의 사용자에 의해 실행되는 것으로 간주함으로써, 임베디드 리눅스 시스템이 종래의 리눅스 시스템 보안 기능을 활용하여 구성될 수 있도록 한다.
또한, 본 발명은 리눅스 시스템이 기본적으로 가지고 있는 슈퍼유저의 역할을 최소화하고 실행 환경의 분리를 통하여 배타적인 실행 공간을 확보함으로써, 침해 사고에 대한 영향을 최소화할 수 있다.
또한, 본 발명은 리눅스 운영체제를 기반으로 하는 임베디드 시스템에 적합한 보안 시스템의 구조를 제안함으로써, 임베디드 시스템 환경에서의 보안성을 향상시키며 리눅스 운영체제와 같은 범용 운영체제가 임베디드 시스템으로 손쉽게 전환될 수 있도록 하는 기반 기술을 제공한다.
또한, 본 발명은 기존의 범용 운영체제에서 사용되고 있는 다중 사 용자 환경 기반의 보안 기능들을 큰 수정없이 임베디드 환경에 적용할 수 있는 방법을 제공함으로써, 낮은 비용으로 임베디드 환경의 보안성을 향상시킬 수 있는 기반 기술을 제공한다.
도 2는 본 발명의 일 실시예에 따른 응용 프로그램 구동 과정을 개념적으로 도시한 블록도이다.
도 2를 참조하면, 사용자(210)는 응용 구동 프로세스(220)를 통해 구동할 응용 프로그램을 선택한다. 이에 따라, 응용 구동 프로세스(220)는 사용자(210)가 선택한 각각의 응용 프로그램(232, 234, 236)을 리눅스 커널(240)상에서 구동한다.
따라서, 사용자(210)는 직접 응용 프로그램을 구동할 수 없고, 오직 응용 구동 프로세스(220)를 통해서만 구동할 수 있다. 다시 말하면, 본 발명의 응용 구동 프로세스(220)는 사용자(210)와 응용 프로그램(232, 234, 236)의 사이에서 일종의 인터페이스와 같이 작용한다. 상기와 같은 기능을 수행하기 위해, 응용 구동 프로세스(220)는 임베디드 리눅스 시스템상에서 시스템이 운용되는 동안 계속 상주해야 함에 따라 일종의 데몬(daemon)으로써 구현될 수 있다. 또한, 응용 구동 프로세스(220)는 일반적으로 GUI의 형태로 구현될 수 있고, 이러한 경우 임베디드 리눅스 시스템에서 바탕화 면이나 아이콘들을 관리하는 윈도우 관리자를 겸할 수 있다. 바람직하게는, 윈도우 관리자를 수정함으로써 응용 구동 프로세스(220)를 구현할 수 있다.
도 3은 본 발명의 일 실시예에 따른 응용 구동 프로세스가 적용되는 환경을 도시한 블록도이다.
도 3을 참조하면, 응용 구동 프로세스(320)는 응용 프로그램을 구동하기 위하여 레지스트리 관리자(330)에게 응용 프로그램의 보안설정정보를 질의하고, 레지스트리 관리자(330)로부터 응용 프로그램의 보안설정정보를 수신할 수 있다. 레지스트리 관리자(330)는 레지스트리의 값을 관리하기 위해 시스템에 상주하는 프로세스로써, 일반적으로 리눅스 운영체제에서는 'gconfd'라는 이름의 데몬으로 구현되어 있다.
여기서, 레지스트리(332)란 각 응용 프로그램에 관련된 정보들의 집합이 저장되는 일종의 DB이다. 도 3에 도시된 바와 같이, 레지스트리(332)는 각 응용 프로그램에 관련된 보안설정정보 이외에 다양한 정보를 포함할 수 있다.
보안설정정보는 응용 프로그램에 관련된 사용자 ID(Userid), 캐퍼빌리티 및 기본 디렉토리에 대한 정보를 포함한다. 예를 들어, 도 3에서 레지스트리(332)에 저장된 응용 1의 제 1 필드는 사용자 ID로서 '100'을 포함하고, 제 2 필드는 캐퍼빌리티로써 '0x40f00000'을 포함하고, 제 3 필드 는 기본 디렉토리로써 '/usr/local/class1'을 포함한다.
여기서, '캐퍼빌리티(capability)'란 '리눅스 캐퍼빌리티 시스템'이 프로세스의 권한을 제어하기 위해 참조하는 프로세스의 속성으로서, '리눅스 캐퍼빌리티 시스템'은 슈퍼유저 권한을 부분적으로 일반 사용자의 프로세스에 부여하는 기술이다. 더 자세하게는, 프로세스의 설정된 캐퍼빌리티는 프로세스가 사용할 수 있는 권한을 나타내고, 캐퍼빌리티 커널 모듈은 상기 캐퍼빌리티에 기반하여 프로세스의 동작을 제한함으로써 상기 시스템을 구현한다. 리눅스 커널 2.2.13 에서 캐퍼빌리티는 이하 표와 같이 구현되어 있다. 아래 정보는 커널 소스 /include/linux/capability.h에 정의되어 있다.
이름 번호 설명
CAP_CHOWN 0 파일 소유권 변경에 대한 제한 갱신
CAP_DAC_OVERRIDE 1 파일에 대한 액세스 제한 갱신
CAP_DAC_READ_SEARCH 2 파일 및 디렉토리의 읽기 및 검색에 대한 제한 갱신
CAP_FOWNER 3 프로세스가 소유하는 파일에 대한 제한 갱신
CAP_FSETID 4 setuid 비트 설정 허용
CAP_KILL 5 타계정이 소유하는 프로세스에 대한 신호 전송 허용
CAP_SETGID 6 그룹 ID 조작 허용
CAP_SETUID 7 사용자 ID 조작 허용
CAP_SETPGAP 8 다른 프로세스에게 캐퍼빌리티 전달
CAP_LINUX_IMMUTABLE 9 부가만 가능한 불변 속성의 수정 허용
CAP_NET_BIND_SERVICE 10 1024 이하 소켓에 대한 바인딩 허용
CAP_NET_BROADCAST 11 네트워크 브로드캐스팅 및 멀티캐스트 액세스 허용
CAP_NET_ADMIN 12 네트워크 관리자 태스크(인터페이스, 방화벽, 라우팅, ...) 허용
CAP_NET_RAW 13 raw 소켓의 사용 허용
CAP_IPC_LOCK 14 메모리 세그먼트의 잠금 허용
CAP_IPC_OWNER 15 IPC 소유권 검사 갱신
CAP_SYS_MODULE 16 커널 모듈의 부가 및 제거
CAP_SYS_RAWIO 17 ioperm 및 iopl에 대한 액세스 허용
CAP_SYS_CHROOT 18 chroot()의 사용 허용
CAP_SYS_PTRACE 19 임의 프로세스에 대한 트레이싱 허용
CAP_SYS_PACCT 20 프로세스 계정의 설정 허용
CAP_SYS_ADMIN 21 시스템 관리자 태스크(마운트, 스와핑, ...)
CAP_SYS_BOOT 22 시스템 리부팅 허용
CAP_SYS_NICE 23 프로세스 우선권 설정
CAP_SYS_RESOURCE 24 자원 제한 갱신
CAP_SYS_TIME 25 시스템 시계 변경 허용
CAP_SYS_TTY_CONFIG 26 tty 장치의 설정 허용
예를 들어, 도 3에서 응용1 프로세스(342)가 슈퍼유저 권한에 해당하는 동작을 수행하기 위해 리눅스 커널(310)에 접근을 시도하는 경우, 캐퍼빌리티 커널 모듈(312)은 응용1 프로세스(342)의 캐퍼빌리티(0x40f00000)를 검사하여 응용1 프로세스(342)가 해당 슈퍼유저 권한이 있는지 판단하고 그 결과에 따라 응용1 프로세스(342)의 리눅스 커널(310)에 대한 접근을 제어한다.
응용 구동 프로세스(320)는 레지스트리 관리자(330)에게 보안설정정 보를 질의하기 위해 사용자에 의해 선택된 응용 프로그램을 식별하기 위한 식별 정보를 레지스트리 관리자(330)에게 전송할 수 있다. 일 실시예에서, 상기 식별 정보는 응용 프로그램에 연관된 사용자 ID가 사용될 수 있다. 사용자 ID는 응용 프로그램별로 상이한 값을 가지기 때문에 식별 정보로써 사용될 수 있다. 이러한 경우, 응용 구동 프로세스(320)는 사용자의 선택과 사용자 ID를 매핑하기 위한 매핑 테이블을 포함할 수 있다. 매핑 테이블에 대해서는 이하 도 4에서 다시 설명하기로 한다.
응용 구동 프로세스(320)의 질의에 따라 레지스트리 관리자(330)는 레지스트리(332)로부터 보안설정정보를 검색하여 응용 구동 프로세스(320)에 전송한다. 응용 구동 프로세스(320)는 상기 전송된 보안설정정보에 따라 응용 프로그램을 구동한다. 각각의 응용 프로그램(342, 344, 346, 348)들은 각각의 응용 프로그램에 연관된 사용자 ID의 사용자 계정으로 실행되고, 실행에 필요한 권한을 나타내는 캐퍼빌리티 속성을 가지며, 지정된 기본 디렉토리 상에서 실행된다.
여기서, 기본 디렉토리는 프로세스가 인식하는 파일 시스템의 'root' 디렉토리로서, 응용 1 프로세스(342) 및 응용 2 프로세스(344)와 같이 각각의 기본 디렉토리를 가질 수 있고, 응용 3 프로세스(346) 및 응용 4 프로세스(348)와 같이 프로세스 간에 기본 디렉토리를 공유할 수도 있다.
도 4는 본 발명의 일 실시예에 따른 응용 구동 프로세스의 구성을 도시한 블록도이다.
응용 구동 프로세스(400)는 제어부(402), 사용자 인터페이스(404), 레지스트리 인터페이스(406) 및 매핑 테이블(408)을 포함한다. 사용자 인터페이스(404)는 사용자(410)로부터 구동할 응용 프로그램의 선택을 수신한다. 상기 수신한 선택에 기반하여 레지스트리 인터페이스(406)는 레지스트리 관리자(430)에게 보안설정정보를 질의한다. 상기 질의 과정에서, 레지스트리 인터페이스(406)는 레지스트리 관리자(430)에게 선택된 응용 프로그램에 대한 식별 정보를 같이 전송한다. 일 실시예에서, 상기 식별 정보로서 응용 프로그램에 연관된 사용자 ID가 사용될 수 있고, 응용 구동 프로세스(400)는 사용자의 선택으로부터 상기 사용자 ID를 검색하기 위해 아이콘과 같은 사용자의 선택 정보와 사용자 ID 간의 매핑 테이블(408)을 포함할 수 있다.
레지스트리 인터페이스(406)는 레지스트리 관리자(430)로부터 보안설정정보를 수신하고, 제어부(402)는 수신한 보안설정정보에 따라 사용자 계정, 캐퍼빌리티 및 기본 디렉토리를 설정하여 응용 프로그램의 프로세스를 구동할 수 있다.
도 5는 본 발명의 일 실시예에 따른 응용 프로그램의 구동 과정을 도시한 순서도이다.
응용 프로그램을 구동하기에 앞서 우선 응용 프로그램을 설치한다(501). 응용 프로그램의 설치과정을 설명하기 위해 도 6을 참조하여 설명한다.
도 6은 본 발명의 일 실시예에 따른 응용 프로그램의 설치 과정을 도시한 순서도이다. 일 실시예에서, 설치 과정은 별도의 설치 프로세스에 의해 수행될 수 있다. 도 6을 참조하면, 우선 설치하는 응용 프로그램에 사용자 ID가 할당된다(601). 여기서 할당되는 사용자 ID는 기 설치된 응용 프로그램에 할당된 사용자 ID와 다른 새로운 사용자 ID이다. 임베디드 시스템의 특성상 구동되는 응용 프로그램의 숫자가 비교적 적기 때문에 각각의 응용 프로그램마다 별도의 사용자 ID를 부여하는 것이 가능하다. 기 설치된 응용 프로그램의 사용자 ID와 다른 사용자 ID를 할당함으로써 각각의 응용 프로그램 프로세스는 각기 다른 사용자에 의해 실행되는 것과 같이 실행되고, 다중 사용자 환경과 같이 프로세스마다 상호 배타적인 영역을 가질 수 있게 된다. 또한 사용자 계정을 프로세스 단위로 분리함으로써 각 프로세스의 사용자 ID는 본 발명에 따른 보안 시스템이 적용되는 기본 단위가 된다.
다음으로, 응용 프로그램의 프로세스에 설정할 캐퍼빌리티에 대한 설정 정보가 구성된다(602). 설치 프로세스는 응용 프로그램이 작동하는데 필요한 슈퍼 유저 권한을 판단하여 필요한 권한에 대응한 캐퍼빌리티가 설 정될 수 있도록 설정 정보를 구성한다. 응용 구동 프로세스는 이때 구성된 설정 정보를 이용하여 응용 프로그램의 구동과정에서 응용 프로그램 프로세스의 캐퍼빌리티를 설정할 수 있다.
캐퍼빌리티 설정 정보의 구성이 완료되면, 다음으로 설치 프로세스는 응용 프로그램의 기본 디렉토리를 지정한다(603). 상술한 바와 같이, 기본 디렉토리는 응용 프로그램이 각각 소유하거나 공유할 수 있다. 따라서, 설치 프로세스는 응용 프로그램의 특성에 따라 적합한 기본 디렉토리를 지정한다. 이러한 방법을 통하여 각각의 응용 프로그램이 슈퍼 유저 권한의 일부를 가지면서도 시스템의 동작에 직접적으로 관여하는 파일에 접근하지 못하게 함으로서 악의적인 응용 프로그램으로부터 시스템을 보호하고 일부 응용 프로그램이 공격을 받았을 경우에도 공격의 범위를 공격받은 응용 프로그램으로 한정할 수 있다. 또한, 기본 디렉토리를 다른 프로세스와 분리함으로써 실행에 있어서 수정 및 변경되는 파일이 중복되는 것을 피할 수 있다. 이에 따라, 프로세스 상호 간의 보안성을 강화함과 동시에 바이러스와 같은 침해사고시 피해에 대한 영향을 최소화할 수 있다.
상기 과정에 따라 설정된 사용자 ID, 캐퍼빌리티 및 기본 디렉토리를 포함하는 보안설정정보를 레지스트리에 저장한다(604). 레지스트리에 저장된 보안설정정보는 이후 설치된 응용 프로그램을 구동하는 과정에서 사용된다.
다시 도 5를 참조하면, 사용자는 구동할 응용 프로그램을 선택한다(502). 일 실시예에서, 상기 응용 프로그램에 대한 선택은 GUI의 형태로 구현된 사용자 인터페이스를 통해 수행될 수 있다.
상기 사용자의 선택에 따라, 레지스트리 인터페이스는 레지스트리 관리자를 통해 레지스트리로부터 선택된 응용 프로그램에 대한 보안설정정보를 검색한다(503). 보안설정정보는 구동될 응용 프로그램에 연관된 사용자 ID, 캐퍼빌리티 및 기본 디렉토리를 포함한다. 제어부는 보안설정정보에 포함된 사용자 ID로 응용 프로그램 프로세스의 사용자 계정을 전환한다. 일 실시예에서, 제어부는 리눅스 시스템의 setuid()와 같은 명령을 사용하여 응용 프로그램 프로세스의 사용자 계정을 전환할 수 있다.
사용자 계정의 전환이 이루어진 후, 응용 구동 프로세스는 응용 프로그램 프로세스가 시스템 관리 프로세스인지 판단한다(505). 여기서 '시스템 관리 프로세스'란 프로그램 실행에 있어서 시스템 관리의 목적으로 슈퍼유저 권한을 필요로 하는 응용 프로그램을 통칭하는 것이다. 상기 판단은 보안설정정보에 포함된 캐퍼빌리티의 설정정보를 참조하여 판단될 수 있다. 캐퍼빌리티의 설정정보에 따라 응용 프로그램 프로세스가 슈퍼유저 권한을 필요로 하지 않는 것으로 판단되면, 상기 응용 프로그램 프로세스는 시스템 관리 프로세스가 아니므로 캐퍼빌리티 설정 단계(506)는 생략될 수 있다. 본 발명에 따르면, 모든 응용 프로그램의 프로세스는 응용 구동 프로세스의 자식 프로세스로써 fork() 명령어를 통해 생성되고, 생성과정에서 리눅스 커널은 기본 캐퍼빌리티(default capability)를 적용하여 새로운 프로세스를 생성한다. 따라서, 응용 프로그램 프로세스가 시스템 관리 프로세스가 아닌 경우 캐퍼빌리티 설정 과정을 생략하고 구동될 수 있다.
만약, 응용 프로그램 프로세스가 슈퍼유저 권한을 필요로 하는 것으로 판단되면, 상기 응용 프로그램 프로세스는 시스템 관리 프로세스이므로 응용 구동 프로세서는 캐퍼빌리티 설정 단계를 수행한다(506). 보안설정정보는 이미 응용 프로그램의 설치과정에서 추출된 캐퍼빌리티의 설정정보를 포함하고 있기 때문에, 제어부는 보안설정정보에 포함된 캐퍼빌리티의 설정정보에 따라 응용 프로그램 프로세스의 캐퍼빌리티를 설정한다.
캐퍼빌리티 설정이 생략 또는 종료된 후, 보안설정정보에 포함된 기본 디렉토리에 대한 정보에 따라 제어부는 응용 프로그램 프로세스의 기본 디렉토리를 변경하고(507), 응용 프로그램을 구동한다(508). 상기 기본 디렉토리 변경과정에서 제어부는 리눅스 시스템의 chroot()와 같은 명령어를 사용할 수 있다.
이상 설명한 임베디드 리눅스 커널의 보안성 강화를 위한 응용 프로그램 구동 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 유형의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는, ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드로 저장되고 실행될 수 있다.
이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것은 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.
도 1은 임베디드 리눅스 시스템에서 종래의 보안방법에 따라 응용 프로그램을 실행하는 환경을 도시한 블록도이다.
도 2는 본 발명의 일 실시예에 따른 응용 프로그램 구동 과정을 개념적으로 도시한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 응용 구동 프로세스가 적용되는 환경을 도시한 블록도이다.
도 4는 본 발명의 일 실시예에 따른 응용 구동 프로세스의 구성을 도시한 블록도이다.
도 5는 본 발명의 일 실시예에 따른 응용 프로그램의 구동 과정을 도시한 순서도이다.
도 6은 본 발명의 일 실시예에 따른 응용 프로그램의 설치 과정을 도시한 순서도이다.

Claims (15)

  1. 임베디드 리눅스 커널상에서 응용 프로그램을 구동하기 위한 방법에 있어서,
    사용자에 의해 선택된 응용 프로그램의 보안설정정보를 검색하는 단계;
    상기 보안설정정보에 포함된 상기 응용 프로그램에 연관된 사용자 ID(Userid)로 상기 응용 프로그램 프로세스의 사용자 계정을 전환하는 단계;
    상기 보안설정정보에 포함된 캐퍼빌리티의 설정 정보에 따라 상기 응용 프로그램 프로세스의 캐퍼빌리티를 설정하는 단계; 및
    상기 응용 프로그램을 구동하는 단계
    를 포함하는 응용 프로그램 구동 방법.
  2. 제 1항에 있어서,
    상기 응용 프로그램을 구동하는 단계 이전에 상기 보안설정정보에 포함된 기본 디렉토리 정보에 따라 상기 응용 프로그램 프로세스의 기본 디렉토리를 변경하는 단계를 더 포함하는 응용 프로그램 구동 방법.
  3. 제 1항 또는 제 2항에 있어서,
    상기 응용 프로그램 프로세스의 캐퍼빌리티를 설정하는 단계 이전에, 상기 응용 프로그램 프로세스가 시스템 관리 프로세스인지 판단하는 단계를 더 포함하며,
    상기 응용 프로그램 프로세스의 캐퍼빌리티를 설정하는 단계는, 상기 응용 프로그램 프로세스가 시스템 관리 프로세스임이 판단되는 경우 수행하는 응용 프로그램 구동 방법.
  4. 제 1항에 있어서,
    상기 응용 프로그램의 상기 보안설정정보를 검색하는 단계 이전에 상기 응용 프로그램을 설치하는 단계를 더 포함하는 응용 프로그램 구동 방법.
  5. 제 4항에 있어서,
    상기 응용 프로그램을 설치하는 단계는,
    설치될 응용 프로그램에 사용자 ID를 할당하는 단계;
    상기 응용 프로그램에 필요한 캐퍼빌리티의 설정 정보를 구성 하는 단계; 및
    상기 사용자 ID 및 상기 캐퍼빌리티를 포함하는 보안설정정보를 레지스트리에 저장하는 단계
    를 포함하는 응용 프로그램 구동 방법.
  6. 제 5항에 있어서,
    상기 응용 프로그램을 설치하는 단계는 상기 보안설정정보를 상기 레지스트리에 저장하는 단계 이전에 상기 응용 프로그램에 상응하는 기본 디렉토리를 지정하는 단계를 더 포함하고, 상기 보안설정정보는 상기 기본 디렉토리를 더 포함하는 응용 프로그램 구동 방법.
  7. 제 1항 또는 제 4항에 있어서,
    상기 사용자 ID는 응용 프로그램별로 상이한 값을 갖는 응용 프로그램 구동 방법.
  8. 제 1항 또는 제 4항에 있어서,
    상기 응용 프로그램의 상기 보안설정정보를 검색하는 단계는 레지스트리로부터 상기 응용 프로그램의 상기 보안설정정보를 검색하는 응용 프로그램 구동 방법.
  9. 제 8항에 있어서,
    상기 응용 프로그램의 상기 보안설정정보를 검색하는 단계는 상기 레지스트리로부터 상기 응용 프로그램의 상기 보안설정정보를 검색하기 위한 식별 정보로써 상기 응용 프로그램에 연관된 상기 사용자 ID를 사용하는 응용 프로그램 구동 방법.
  10. 임베디드 리눅스 커널상에서 응용 프로그램을 구동하기 위한 시스템에 있어서,
    사용자로부터 응용 프로그램의 선택을 수신하는 사용자 인터페이스;
    레지스트리 관리자와 통신하여 레지스트리로부터 상기 응용 프로그램의 보안설정정보를 검색하는 레지스트리 인터페이스; 및
    상기 보안설정정보에 따라 사용자 계정, 캐퍼빌리티 및 기본 디렉토리를 설정하고 상기 응용 프로그램의 프로세스를 구동하는 제어부
    를 포함하는 응용 프로그램 구동 시스템.
  11. 제 10항에 있어서,
    상기 응용 프로그램의 상기 선택과 상기 응용 프로그램에 연관된 사용자 ID를 매핑하는 매핑 테이블을 더 포함하는 응용 프로그램 구동 시스템.
  12. 제 11항에 있어서,
    상기 레지스트리 인터페이스는 상기 응용 프로그램을 식별하기 위한 식별정보로써 상기 응용 프로그램에 연관된 상기 사용자 ID를 사용하여 상기 레지스트리 관리자와 통신하는 응용 프로그램 구동 시스템.
  13. 제 10항 내지 제 12항 중 어느 한 항에 있어서,
    상기 사용자 인터페이스는 GUI로 구성되는 응용 프로그램 구동 시스템.
  14. 제 10항 내지 제 12항 중 어느 한 항에 있어서,
    상기 응용 프로그램을 설치하는 과정에서 상기 응용 프로그램의 상기 보안설정정보를 추출하여 상기 레지스트리에 저장하는 응용 프로그램 설치부를 더 포함하는 응용 프로그램 구동 시스템.
  15. 임베디드 리눅스 커널상에서 응용 프로그램을 구동하기 위한 방법을 수행하기 위해 컴퓨터로 실행할 수 있는 프로그램을 저장한 기록매체에 있어서, 상기 방법은,
    사용자에 의해 선택된 응용 프로그램의 보안설정정보를 검색하는 단계;
    상기 보안설정정보에 포함된 상기 응용 프로그램에 연관된 사용자 ID로 상기 응용 프로그램 프로세스의 사용자 계정을 전환하는 단계;
    상기 보안설정정보에 포함된 캐퍼빌리티의 설정정보에 따라 상기 응용 프로그램 프로세스의 캐퍼빌리티를 설정하는 단계;
    상기 보안설정정보에 포함된 기본 디렉토리의 정보에 따라 상기 응용 프로그램 프로세스의 기본 디렉토리를 변경하는 단계; 및
    상기 응용 프로그램을 구동하는 단계
    를 포함하는 프로그램을 저장한 컴퓨터 판독가능 기록매체.
KR1020070100071A 2006-12-05 2007-10-04 임베디드 리눅스 커널의 보안성 강화를 위한 응용 프로그램구동 방법 및 시스템 KR100915803B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US11/999,217 US8677477B2 (en) 2006-12-05 2007-12-04 Application program launching method and system for improving security of embedded Linux kernel
EP08154727.5A EP2045747B1 (en) 2006-12-05 2008-04-17 Application program launching method and system for improving security of embedded linux kernel
CN200810096083.3A CN101403973B (zh) 2006-12-05 2008-04-30 提高嵌入式Linux内核安全性的应用程序启动方法和系统
US14/218,706 US20140201830A1 (en) 2006-12-05 2014-03-18 Application program launching method and system for improving security of embedded linux kernel

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020060122245 2006-12-05
KR20060122245 2006-12-05

Publications (2)

Publication Number Publication Date
KR20080052342A KR20080052342A (ko) 2008-06-11
KR100915803B1 true KR100915803B1 (ko) 2009-09-07

Family

ID=39807173

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070100071A KR100915803B1 (ko) 2006-12-05 2007-10-04 임베디드 리눅스 커널의 보안성 강화를 위한 응용 프로그램구동 방법 및 시스템

Country Status (4)

Country Link
US (2) US8677477B2 (ko)
EP (1) EP2045747B1 (ko)
KR (1) KR100915803B1 (ko)
CN (1) CN101403973B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101195292B1 (ko) 2012-03-08 2012-10-26 윤종선 계정 관리 장치 및 방법

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100915803B1 (ko) * 2006-12-05 2009-09-07 한국전자통신연구원 임베디드 리눅스 커널의 보안성 강화를 위한 응용 프로그램구동 방법 및 시스템
US9753746B2 (en) * 2008-12-19 2017-09-05 Paul Krzyzanowski Application store and intelligence system for networked telephony and digital media services devices
US8650658B2 (en) 2010-10-25 2014-02-11 Openpeak Inc. Creating distinct user spaces through user identifiers
US20120102564A1 (en) * 2010-10-25 2012-04-26 Openpeak Inc. Creating distinct user spaces through mountable file systems
US20120227035A1 (en) * 2011-03-03 2012-09-06 Microsoft Corporation Cross platform service notification
US9015790B2 (en) * 2011-07-20 2015-04-21 Red Hat, Inc. Integrating sudo rules with entities represented in an LDAP directory
US8695060B2 (en) 2011-10-10 2014-04-08 Openpeak Inc. System and method for creating secure applications
CN102591727B (zh) * 2012-01-04 2014-09-17 华为终端有限公司 对应用数据进行处理的方法和计算节点
CN103377042B (zh) * 2012-04-24 2016-04-13 深圳市腾讯计算机系统有限公司 视窗系统的类Unix环境下的提权方法和系统
CN103514003B (zh) * 2012-06-28 2018-02-13 腾讯科技(深圳)有限公司 程序安装方法及装置
US9058189B1 (en) * 2012-08-08 2015-06-16 Google Inc. Automatic user account selection for launching an application
CN104091132B (zh) * 2014-06-17 2017-07-28 小米科技有限责任公司 在路由设备上运行插件的方法、装置及路由设备
US11275861B2 (en) * 2014-07-25 2022-03-15 Fisher-Rosemount Systems, Inc. Process control software security architecture based on least privileges
US8938547B1 (en) 2014-09-05 2015-01-20 Openpeak Inc. Method and system for data usage accounting in a computing device
US9350818B2 (en) 2014-09-05 2016-05-24 Openpeak Inc. Method and system for enabling data usage accounting for unreliable transport communication
US9232013B1 (en) 2014-09-05 2016-01-05 Openpeak Inc. Method and system for enabling data usage accounting
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
CN104484594B (zh) * 2014-11-06 2017-10-31 中国科学院信息工程研究所 一种基于权能机制的linux系统特权分配方法
CN104462980A (zh) * 2014-12-30 2015-03-25 北京奇虎科技有限公司 一种应用程序权限管理的方法、装置、系统及移动终端
CN105138898A (zh) * 2015-07-22 2015-12-09 北京元心科技有限公司 为智能终端上的应用程序分配运行权限的方法
KR102071365B1 (ko) 2015-08-04 2020-01-30 한국전자통신연구원 리던던트 시스템에서의 프로세스 인증 장치 및 방법
CN105653960A (zh) * 2015-12-31 2016-06-08 北京元心科技有限公司 一种Linux能力分配方法及装置
US10325116B2 (en) * 2017-06-30 2019-06-18 Vmware, Inc. Dynamic privilege management in a computer system
CN108595944B (zh) * 2018-03-27 2020-07-10 麒麟软件有限公司 一种基于Linux系统的实现用户UID唯一性的方法
US11675902B2 (en) 2018-12-05 2023-06-13 Vmware, Inc. Security detection system with privilege management
KR102222868B1 (ko) * 2019-05-02 2021-03-04 (주)휴네시온 Usb 시리얼 장치에 대한 리눅스 기반 보안 시스템 및 방법
CN111639020B (zh) * 2020-05-06 2021-07-02 贝壳找房(北京)科技有限公司 一种程序漏洞复现方法、系统、装置、电子设备及其存储介质
CN113760374B (zh) * 2021-08-30 2023-04-21 海信电子科技(深圳)有限公司 一种处理器的绑定方法、装置及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020033859A (ko) * 2000-10-30 2002-05-08 송영호 리눅스 보안 커널
KR20020040482A (ko) * 2000-11-24 2002-05-30 구자홍 프로세스 보호 시스템 및 방법
KR20020075601A (ko) * 2001-03-26 2002-10-05 주식회사데이콤 접근통제기능을 개선한 리눅스 시스템 및 리눅스 시스템의운영방법
KR20060088929A (ko) * 2005-02-02 2006-08-07 삼성전자주식회사 리눅스 기반의 시스템에서 하드웨어 인터럽트 처리 장치및 방법

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US50369A (en) * 1865-10-10 Improvement in knitting-machwes
US53426A (en) * 1866-03-27 Improvement in telegraph-insulators
US188649A (en) * 1877-03-20 Improvement in lamps
US5113442A (en) * 1989-03-06 1992-05-12 Lachman Associates, Inc. Method and apparatus for providing access control in a secure operating system
WO2000019324A1 (en) * 1998-09-28 2000-04-06 Argus Systems Group, Inc. Trusted compartmentalized computer operating system
US20020188649A1 (en) 2001-06-12 2002-12-12 Ron Karim Mechanism for safely executing an untrusted program
US7065783B2 (en) * 2001-07-06 2006-06-20 Aramira Corporation Mobile application access control list security system
GB0212314D0 (en) 2002-05-28 2002-07-10 Symbian Ltd Secure mobile wireless device
US7383437B1 (en) * 2003-09-08 2008-06-03 Sun Microsystems, Inc. Method and system for implementing super-user-compatible privileges
US20050091658A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Operating system resource protection
US7669050B2 (en) * 2004-06-24 2010-02-23 International Business Machines Corporation Method to enable user mode process to operate in a privileged execution mode
US20060020063A1 (en) * 2004-07-22 2006-01-26 Guenther Gerhard K Controlled finishes for free surface polyethylene resins
US20070050369A1 (en) * 2005-01-31 2007-03-01 Stiegler Marc D Accessing file under confinement
US7707620B2 (en) * 2005-05-06 2010-04-27 Cisco Technology, Inc. Method to control and secure setuid/gid executables and processes
KR100915803B1 (ko) * 2006-12-05 2009-09-07 한국전자통신연구원 임베디드 리눅스 커널의 보안성 강화를 위한 응용 프로그램구동 방법 및 시스템

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020033859A (ko) * 2000-10-30 2002-05-08 송영호 리눅스 보안 커널
KR20020040482A (ko) * 2000-11-24 2002-05-30 구자홍 프로세스 보호 시스템 및 방법
KR20020075601A (ko) * 2001-03-26 2002-10-05 주식회사데이콤 접근통제기능을 개선한 리눅스 시스템 및 리눅스 시스템의운영방법
KR20060088929A (ko) * 2005-02-02 2006-08-07 삼성전자주식회사 리눅스 기반의 시스템에서 하드웨어 인터럽트 처리 장치및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101195292B1 (ko) 2012-03-08 2012-10-26 윤종선 계정 관리 장치 및 방법

Also Published As

Publication number Publication date
US20140201830A1 (en) 2014-07-17
EP2045747B1 (en) 2020-03-04
KR20080052342A (ko) 2008-06-11
EP2045747A3 (en) 2011-09-14
EP2045747A2 (en) 2009-04-08
CN101403973B (zh) 2016-06-01
CN101403973A (zh) 2009-04-08
US8677477B2 (en) 2014-03-18
US20080134325A1 (en) 2008-06-05

Similar Documents

Publication Publication Date Title
KR100915803B1 (ko) 임베디드 리눅스 커널의 보안성 강화를 위한 응용 프로그램구동 방법 및 시스템
US9594898B2 (en) Methods and systems for controlling access to resources and privileges per process
US7823186B2 (en) System and method for applying security policies on multiple assembly caches
US9684785B2 (en) Providing multiple isolated execution environments for securely accessing untrusted content
US7600216B2 (en) Method for executing software applications using a portable memory device
US20050091214A1 (en) Internal object protection from application programs
EP2513809B1 (en) Systems and methods for service isolation
US7506170B2 (en) Method for secure access to multiple secure networks
KR100713128B1 (ko) 바이러스 방역 장치 및 시스템
US7882227B2 (en) Mechanism for implementing file access control across a network using labeled containers
US20120131646A1 (en) Role-based access control limited by application and hostname
KR20060051383A (ko) 바이러스 방지 소프트웨어 어플리케이션들의 지식 베이스를모으는 시스템 및 방법
US7885975B2 (en) Mechanism for implementing file access control using labeled containers
US20070271472A1 (en) Secure Portable File Storage Device
US6418484B1 (en) Method of remotely executing computer processes
JP2012212431A (ja) セキュリティサービスに実装するシステムおよび方法
US7950000B2 (en) Architecture that restricts permissions granted to a build process
US8938473B2 (en) Secure windowing for labeled containers
US20030236988A1 (en) Method and system for user protected media pool
WO2010091607A1 (zh) 一种在文件系统中提供自定义存取控制方式的方法
JP3897049B2 (ja) 計算機システム
WO2021091734A1 (en) Access management system with a secret isolation manager
KR20100090119A (ko) 애플리케이션 가상화를 위한 이동형 메모리 장치의 보안 제공방법 및 상기 이동형 메모리 장치
KR20090093416A (ko) 클라이언트 프로그램의 자동실행방법, 그 장치, 및 상기장치를 포함하는 메모리 장치
JP2007042119A (ja) 計算機システム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120730

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20130730

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140730

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150730

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160728

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20170728

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190730

Year of fee payment: 11