KR101997061B1 - 리눅스 기반 안드로이드 컨테이너 플랫폼, 이를 탑재한 장치 및 리눅스 기반 안드로이드 컨테이너 환경에서의 보안 시스템 구축 방법 - Google Patents
리눅스 기반 안드로이드 컨테이너 플랫폼, 이를 탑재한 장치 및 리눅스 기반 안드로이드 컨테이너 환경에서의 보안 시스템 구축 방법 Download PDFInfo
- Publication number
- KR101997061B1 KR101997061B1 KR1020170128066A KR20170128066A KR101997061B1 KR 101997061 B1 KR101997061 B1 KR 101997061B1 KR 1020170128066 A KR1020170128066 A KR 1020170128066A KR 20170128066 A KR20170128066 A KR 20170128066A KR 101997061 B1 KR101997061 B1 KR 101997061B1
- Authority
- KR
- South Korea
- Prior art keywords
- linux
- security module
- android
- host
- container
- Prior art date
Links
Images
Classifications
-
- 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/53—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 executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
-
- 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/604—Tools and structures for managing or administering access control systems
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- 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/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- 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
-
- 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/2149—Restricted operating environment
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Automation & Control Theory (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Stored Programmes (AREA)
Abstract
리눅스 기반 안드로이드 컨테이너 플랫폼, 이를 탑재한 장치 및 리눅스 기반 안드로이드 컨테이너 환경에서의 보안 시스템 구축 방법이 개시된다. 리눅스 기반 안드로이드 컨테이너 플랫폼은, 리눅스 호스트, 리눅스 호스트에서 실행되는 안드로이드 컨테이너 및 리눅스 호스트에서 사용하는 프로세스에 대한 정책(policy)인 리눅스 보안 모듈 및 안드로이드 컨테이너에서 사용하는 프로세스에 대한 정책(policy)인 안드로이드 보안 모듈을 포함하며, 리눅스 호스트 및 안드로이드 컨테이너가 공유하는 디렉토리에 마운트되는 통합 보안 모듈을 포함한다.
Description
본 발명은 리눅스 기반 안드로이드 컨테이너 플랫폼, 이를 탑재한 장치 및 리눅스 기반 안드로이드 컨테이너 환경에서의 보안 시스템 구축 방법에 관한 것으로, 보다 상세하게는 리눅스 기반 운영체제에서 안드로이드 컨테이너가 실행되는 플랫폼, 이를 탑재한 장치 및 리눅스 기반 운영체제에서 안드로이드 컨테이너 실행 시 보안 시스템 구축 방법에 관한 것이다.
안드로이드(Android)는 리눅스(Linux) 기반으로 만들어진 모바일용 운영체제(OS: Operating System)이다. 따라서, 리눅스 커널 중 일부는 안드로이드를 위한 옵션을 가지고 있다.
컨테이너 기술은 명칭 공간(namespace) 및 컨트롤그룹(cgroups)을 이용하여 운영 시스템 레벨의 격리된 가상공간을 제공하는 기술이다. 컨테이너 기술에 따르면 디바이스나 커널 가상화를 지원하지 않기 때문에 리눅스와 커널 및 디바이스를 공유하게 된다. 즉, 컨테이너와 리눅스는 각종 프로세스 정보를 가지고 있는 프로세스 디렉토리(/proc)와 시스템 및 디바이스 정보를 포함하는 시스템 디렉토리(/sys)를 공유하게 된다. 이후, 컨테이너는 명칭 공간(namespace)을 이용하여 가상화된 공간을 격리시키고 컨트롤그룹(cgroups)을 이용하여 cpu나 메모리와 같은 자원을 제한함으로써 두 개의 시스템을 동작시킬 수 있다. 이러한 컨테이너 기술을 이용하여 리눅스 운영체제 위에 안드로이드 컨테이너의 실행이 가능하다.
한편, 보안 강화 리눅스(SELinux: Security-Enhanced Linux)는 리눅스 기반 운영체제에서 제공하는 리눅스 보안 모듈(LSM: Linux Security Module)의 한 종류로, 보안 강화 리눅스(SELinux) 파일 시스템은 리눅스의 /sys/fs/selinux에 있으며 운영체제 부팅 프로세스에서 해당 폴더에 있는 정책(policy)에 따라 동작한다.
또한, 보안 강화 안드로이드(SEAndroid: Security Enhancements for Android)는 보안 강화 리눅스(SELinux)를 기반으로 안드로이드 프레임워크에 적용할 수 있도록 만들어졌으며, 이에 보안 강화 리눅스(SELinux)와 동일하게 동작한다.
이에 따라, 리눅스 운영체제에서 안드로이드 컨테이너가 실행되는 경우, 안드로이드 컨테이너는 리눅스와 공유하는 시스템 디렉토리(/sys)에 보안 강화 안드로이드(SEAndroid) 파일 시스템을 마운트하는데, 이러한 보안 강화 안드로이드(SEAndroid) 파일 시스템이 보안 강화 리눅스(SELinux) 파일 시스템을 덮어쓰는 충돌 문제가 발생한다. 이와 같은 경우, 보안 강화 리눅스(SELinux) 파일 시스템이 지워지므로 리눅스 운영체제 프로세스들의 정상 작동이 어렵다.
본 발명의 일측면은 리눅스 및 안드로이드 프로세스의 보안을 위한 파일 시스템을 모두 포함하는 통합 보안 모듈이 적용된 리눅스 기반 안드로이드 컨테이너 플랫폼을 제공한다.
본 발명의 다른 측면은 리눅스 및 안드로이드 프로세스의 보안을 위한 파일 시스템을 모두 포함하는 통합 보안 모듈이 적용된 리눅스 기반 안드로이드 컨테이너 플랫폼을 탑재한 장치를 제공한다.
본 발명의 또 다른 측면은 리눅스 및 안드로이드 프로세스의 정상 작동을 가능하게 하는 리눅스 기반 안드로이드 컨테이너 환경에서의 보안 시스템 구축 방법을 제공한다.
본 발명의 일 측면에 따른 리눅스 기반 안드로이드 컨테이너 플랫폼은, 리눅스 호스트, 상기 리눅스 호스트에서 실행되는 안드로이드 컨테이너 및 상기 리눅스 호스트에서 사용하는 프로세스에 대한 정책(policy)인 리눅스 보안 모듈 및 상기 안드로이드 컨테이너에서 사용하는 프로세스에 대한 정책(policy)인 안드로이드 보안 모듈을 포함하며, 상기 리눅스 호스트 및 상기 안드로이드 컨테이너가 공유하는 디렉토리에 마운트되는 통합 보안 모듈을 포함한다.
또한, 상기 안드로이드 컨테이너는, 상기 리눅스 호스트와 커널 및 디바이스를 공유할 수 있다.
또한, 상기 안드로이드 컨테이너는, 상기 리눅스 호스트의 프로세스(proc) 및 시스템(sys) 디렉토리를 자신의 루트 파일 시스템(Root File System)에 마운트할 수 있다.
또한, 상기 통합 보안 모듈은, 상기 리눅스 호스트에서 상기 안드로이드 컨테이너가 실행되면, 상기 리눅스 보안 모듈 위에 오버라이트(overwrite)될 수 있다.
또한, 상기 통합 보안 모듈은, 파일(file), 사용자(user) 및 프로세스(process)에 컨텍스트(context)를 부여할 수 있다.
또한, 상기 통합 보안 모듈은, 컨텍스트(context) 간의 규칙을 규정한 정책(policy)을 포함할 수 있다.
또한, 상기 통합 보안 모듈은, 상기 컨텍스트(context) 간의 규칙을 규정한 정책(policy)에 따른 시스템 접근 제어를 수행할 수 있다.
또한, 상기 통합 보안 모듈은, 상기 리눅스 보안 모듈 및 상기 리눅스 보안 모듈을 안드로이드 프레임워크에 적용할 수 있도록 경량화한 상기 안드로이드 보안 모듈을 포함할 수 있다.
한편, 본 발명의 다른 측면은 리눅스 기반 안드로이드 컨테이너 플랫폼을 탑재한 장치이다.
한편, 본 발명의 또 다른 측면에 따른 리눅스 호스트에서 안드로이드 컨테이너가 실행되는 리눅스 기반 안드로이드 컨테이너 환경에서의 보안 시스템 구축 방법에 있어서, 상기 리눅스 호스트에서 사용하는 프로세스에 대한 정책(policy)인 리눅스 보안 모듈 및 상기 안드로이드 컨테이너에서 사용하는 프로세스에 대한 정책(policy)인 안드로이드 보안 모듈을 통합한 통합 보안 모듈을 생성하고, 상기 통합 보안 모듈을 상기 리눅스 호스트 및 상기 안드로이드 컨테이너가 공유하는 디렉토리에 마운트한다.
또한, 상기 통합 보안 모듈을 상기 리눅스 호스트 및 상기 안드로이드 컨테이너가 공유하는 디렉토리에 마운트하는 것은, 상기 리눅스 호스트에서 상기 안드로이드 컨테이너가 실행되면, 상기 리눅스 호스트에서 상기 리눅스 보안 모듈이 마운트된 디렉토리에 상기 통합 보안 모듈을 덮어쓰는 것일 수 있다.
또한, 상기 통합 보안 모듈을 상기 리눅스 호스트 및 상기 안드로이드 컨테이너가 공유하는 디렉토리에 마운트하는 것은, 상기 안드로이드 컨테이너가 상기 리눅스 호스트의 프로세스(proc) 및 시스템(sys) 디렉토리를 자신의 루트 파일 시스템(Root File System)에 마운트하여 상기 리눅스 호스트에서 상기 안드로이드 컨테이너가 실행되면, 상기 리눅스 호스트에서 상기 리눅스 보안 모듈이 마운트된 디렉토리에 상기 통합 보안 모듈을 덮어쓰는 것일 수 있다.
또한, 상기 리눅스 호스트에서 사용하는 프로세스에 대한 정책(policy)인 리눅스 보안 모듈 및 상기 안드로이드 컨테이너에서 사용하는 프로세스에 대한 정책(policy)인 안드로이드 보안 모듈을 통합한 통합 보안 모듈을 생성하는 것은, 파일(file), 사용자(user) 및 프로세스(process)에 컨텍스트(context)를 부여하며, 컨텍스트(context) 간의 규칙을 규정한 정책(policy)을 포함하는 통합 보안 모듈을 생성하는 것일 수 있다.
또한, 상기 리눅스 호스트에서 사용하는 프로세스에 대한 정책(policy)인 리눅스 보안 모듈 및 상기 안드로이드 컨테이너에서 사용하는 프로세스에 대한 정책(policy)인 안드로이드 보안 모듈을 통합한 통합 보안 모듈을 생성하는 것은, 상기 리눅스 호스트의 시스템 접근 제어를 수행하는 통합 보안 모듈을 생성하는 것일 수 있다.
또한, 상기 리눅스 호스트에서 사용하는 프로세스에 대한 정책(policy)인 리눅스 보안 모듈 및 상기 안드로이드 컨테이너에서 사용하는 프로세스에 대한 정책(policy)인 안드로이드 보안 모듈을 통합한 통합 보안 모듈을 생성하는 것은, 안드로이드에 설치되는 앱의 접근 제어를 수행하는 통합 보안 모듈을 생성하는 것일 수 있다.
상술한 본 발명의 일측면에 따르면 컨테이너 기술 적용에 있어서 두 보안 모듈 간의 충돌 문제를 해결할 수 있다.
상술한 본 발명의 다른 측면에 따르면 종래의 LSM(Linux Security Modules)을 사용하지 않는 리눅스 환경보다 안전한 실행 환경을 제공할 수 있다.
상술한 본 발명의 또 다른 측면에 따르면 보안 강화 리눅스(SELinux)의 기능에 따라 추가적인 정책(policy)의 부여가 가능하므로, 특정 프로세스 또는 앱들의 접근 권한을 제한할 수 있다.
도 1은 본 발명의 일 실시예에 따른 리눅스 기반 안드로이드 컨테이너 플랫폼의 개념도이다.
도 2는 본 발명의 일 실시예에 따른 리눅스 기반 안드로이드 컨테이너 플랫폼의 보안 시스템 구축 상태를 자세히 나타낸 개념도이다.
도 3은 본 발명의 일 실시예에 따른 리눅스 기반 안드로이드 컨테이너 환경에서의 보안 시스템 구축 방법의 순서도이다.
도 2는 본 발명의 일 실시예에 따른 리눅스 기반 안드로이드 컨테이너 플랫폼의 보안 시스템 구축 상태를 자세히 나타낸 개념도이다.
도 3은 본 발명의 일 실시예에 따른 리눅스 기반 안드로이드 컨테이너 환경에서의 보안 시스템 구축 방법의 순서도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계 및 동작은 하나 이상의 다른 구성요소, 단계 및 동작의 존재 또는 추가를 배제하지 않는다.
도 1은 본 발명의 일 실시예에 따른 리눅스 기반 안드로이드 컨테이너 플랫폼의 개념도이다.
본 발명의 일 실시예에 따른 리눅스 기반 안드로이드 컨테이너 플랫폼(1000)은 리눅스 프로세스의 보안 정책과 안드로이드 프로세스의 보안 정책의 충돌을 방지하여, 리눅스 및 안드로이드 프로세스의 정상 작동을 가능하게 하는 보안 시스템이 구축된 플랫폼이다.
본 발명의 일 실시예에 따른 리눅스 기반 안드로이드 컨테이너 플랫폼(1000)은 운영체제를 기반으로 다양한 응용 프로그램을 실행할 수 있는 장치에 탑재될 수 있다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 리눅스 기반 안드로이드 컨테이너 플랫폼(1000)은 리눅스 호스트(100), 안드로이드 컨테이너(200) 및 통합 보안 모듈(300)을 포함할 수 있다.
리눅스 호스트(100)는 운영체제의 한 종류이다. 운영체제는 응용 프로그램이 디바이스의 하드웨어를 사용할 수 있도록 하기 위한 시스템 프로그램이다.
리눅스 호스트(100)에는 컨테이너 기술이 적용될 수 있다. 컨테이너 기술은 명칭 공간(namespace) 및 컨트롤그룹(cgroups)을 이용하여 운영 시스템 레벨의 격리된 가상공간을 제공하는 기술이다. 리눅스 호스트(100)에 컨테이너 기술이 적용되면 디바이스나 커널 가상화를 지원하지 않기 때문에 리눅스 호스트(100)의 커널 및 디바이스를 공유하게 된다.
안드로이드 컨테이너(200)는 컨테이너 기술을 이용하여 리눅스 호스트(100)에서 실행될 수 있다. 안드로이드는 리눅스를 기반으로 만들어진 모바일용 운영체제이다. 따라서, 리눅스 호스트(100)의 커널 중 일부는 안드로이드를 위한 옵션을 가지고 있으며, 이에 안드로이드 컨테이너(200)는 컨테이너 기술을 적용하여 리눅스 호스트(100)에서의 실행이 가능하다.
구체적으로는, 안드로이드 컨테이너(200)는 리눅스 호스트(100)에서 실행 시, 리눅스 호스트(100)의 프로세스 디렉토리(/proc) 및 시스템 디렉토리(/sys)를 자신의 루트 파일 시스템(Root File System)에 마운트할 수 있다. 이에, 안드로이드 컨테이너(200)는 리눅스 호스트(100)와 프로세스 디렉토리(/proc) 및 시스템 디렉토리(/sys)를 공유하게 된다. 여기서, 프로세스 디렉토리(/proc)는 각종 프로세스 정보를 가질 수 있다. 시스템 디렉토리(/sys)는 시스템 및 디바이스 정보를 포함할 수 있다.
통합 보안 모듈(300)은 리눅스 보안 모듈(310) 및 안드로이드 보안 모듈(320)을 포함할 수 있다.
리눅스 보안 모듈(310)은 리눅스 호스트(100)에서 사용하는 프로세스에 대한 정책(policy)을 포함할 수 있다. 이러한 리눅스 보안 모듈(310)은 대표적으로 보안 강화 리눅스(SELinux)가 있다. 본 발명에서 리눅스 보안 모듈(310)은 보안 강화 리눅스(SELinux)일 수 있다. 리눅스 보안 모듈(310)은 파일(file), 사용자(user) 및 프로세스(process) 등에 컨텍스트(context)를 부여할 수 있으며, 각 컨텍스트(context) 간의 규칙을 규정한 정책(policy)을 포함할 수 있다. 컨텍스트(context)는 사용자(user), 롤(role) 및 유형(type)으로 구성될 수 있다. 리눅스 보안 모듈(310)은 리눅스 호스트(100)의 프로세스에서 정책(policy)에 따른 시스템 접근 제어를 수행할 수 있다. 즉, 리눅스 보안 모듈(310)은 정책(policy)에 따라 특정 주체(subject)의 특정 객체(object)에 대한 접근을 제어할 수 있다.
안드로이드 보안 모듈(320)은 안드로이드 컨테이너(200)에서 사용하는 프로세스에 대한 정책(policy)을 포함할 수 있다. 이러한 안드로이드 보안 모듈(320)은 대표적으로 보안 강화 안드로이드(SEAndroid)가 있다. 보안 강화 안드로이드(SEAndroid)는 보안 강화 리눅스(SELinux)에 기반하여 안드로이드 프레임워크에 적용할 수 있도록 경량화한 모듈이다. 보안 강화 안드로이드(SEAndroid)는 안드로이드 버전 4.4(Kitkat)에서 허용(permissive) 모드로 처음 선보였으며, 안드로이드 버전 5.0(Lollipop)에서부터 시행(enforce) 모드로 실제 적용되고있다. 본 발명에서 안드로이드 보안 모듈(320)은 보안 강화 안드로이드(SEAndroid)일 수 있다. 안드로이드 보안 모듈(320)은 리눅스 보안 모듈(310)과 동일하게 컨텍스트(context) 간의 규칙을 규정한 정책(policy)을 포함할 수 있다. 안드로이드 보안 모듈(320)은 정책(policy)에 따라 안드로이드에 설치되는 앱들(예를 들면, 시스템 앱, 사용자 앱 등)의 접근 제어를 수행할 수 있다.
통합 보안 모듈(300)은 이와 같은 리눅스 보안 모듈(310) 및 안드로이드 보안 모듈(320)이 통합된 보안 모듈로, 리눅스 호스트(100)에서 사용하는 프로세스에 대한 정책(policy) 및 안드로이드 컨테이너(200)에서 사용하는 프로세스에 대한 정책(policy)을 모두 포함할 수 있다.
통합 보안 모듈(300)은 리눅스 호스트(100)에서 안드로이드 컨테이너(200) 실행 시, 리눅스 호스트(100)와 안드로이드 컨테이너(200)가 공유하는 디렉토리에 마운트(mount)됨으로써, 리눅스 기반 안드로이드 컨테이너 플랫폼(1000)의 보안 시스템을 구축할 수 있다. 이와 관련하여, 도 2를 참조하여 설명하기로 한다.
도 2는 본 발명의 일 실시예에 따른 리눅스 기반 안드로이드 컨테이너 플랫폼의 보안 시스템 구축 상태를 자세히 나타낸 개념도이다.
도 2를 참조하면, 통합 보안 모듈(300)은 리눅스 호스트(100)에서 안드로이드 컨테이너(200) 실행 시, 리눅스 호스트(100) 및 안드로이드 컨테이너(200)가 공유하는 시스템 디렉토리(/sys), 구체적으로는, /sys/fs/selinux 에 마운트될 수 있다.
리눅스 호스트(100)는 이러한 통합 보안 모듈(300)에 포함되는 리눅스 보안 모듈(310)에 의해, 리눅스 호스트(100)에서 실행되는 프로세스에 대한 컨텍스트(context) 및 정책(policy)에 따른 접근 제어가 가능하다.
안드로이드 컨테이너(200) 또한 통합 보안 모듈(300)에 포함되는 안드로이드 보안 모듈(320)에 의해, 안드로이드 컨테이너(200)에서 실행되는 프로세스에 대한 컨텍스트(context) 및 정책(policy)에 따른 접근 제어가 가능하다.
일반적으로, 리눅스 호스트(100)의 /sys/fs/selinux 디렉토리에는 리눅스 보안 모듈(310)의 관련 파일 시스템이 마운트될 수 있다. 이때, 리눅스 호스트(100)에서 안드로이드 컨테이너(200)가 실행되는 경우, 리눅스 호스트(100)는 안드로이드 컨테이너(200)와 프로세스 디렉토리(/proc) 및 시스템 디렉토리(/sys)를 공유하게 된다. 즉, 안드로이드 컨테이너(200)에서의 /sys/fs/selinux 디렉토리 접근이 가능해진다.
안드로이드 컨테이너(200)의 보안 모듈인 안드로이드 보안 모듈(320)은 리눅스 보안 모듈(310)에 기반한 보안 모듈로, 리눅스 보안 모듈(310)과 동일한 디렉토리 포인트에 마운트될 수 있다. 따라서, 리눅스 호스트(100)에서 안드로이드 컨테이너(200)가 실행되는 경우, 안드로이드 시작 프로세스인 init은 /sys/fs/selinux 디렉토리에 안드로이드 보안 모듈(320)을 마운트하는데, 기존의 리눅스 보안 모듈(310) 위에 안드로이드 보안 모듈(320)이 오버라이트(overwrite)될 수 있다. 이와 같은 경우, /sys/fs/selinux 디렉토리에는 안드로이드 컨테이너(200)에서 실행되는 프로세스에 대한 컨텍스트(context) 및 정책(policy) 만이 존재할 뿐, 리눅스 호스트(100)에서 실행되는 프로세스에 대한 컨텍스트(context) 및 정책(policy)은 지워지므로, 리눅스 호스트(100)의 정상적인 동작이 불가능하다.
반면, 도 2와 같이, 리눅스 호스트(100)에서 안드로이드 컨테이너(200) 실행 시 /sys/fs/selinux 디렉토리에 마운트되는 통합 보안 모듈(300)은 리눅스 보안 모듈(310) 및 안드로이드 보안 모듈(320)을 포함하므로, 리눅스 호스트(100) 및 안드로이드 컨테이너(200) 모두 적절한 컨텍스트(context) 및 정책(policy)에 따른 정상 동작이 가능하다.
이와 같이, 본 발명의 일 실시예에 따른 리눅스 기반 안드로이드 컨테이너 플랫폼(1000)은 리눅스 호스트(100)에서 사용하는 프로세스에 대한 정책(policy) 및 안드로이드 컨테이너(200)에서 사용하는 프로세스에 대한 정책(policy)을 모두 포함하는 통합 보안 모듈(300)을 이용하여 보안 시스템을 구축함으로써, 컨테이너 기술 적용에 있어서 두 보안 모듈 간의 충돌 문제를 해결할 수 있다.
아울러, 본 발명의 일 실시예에 따른 리눅스 기반 안드로이드 컨테이너 플랫폼(1000)은 보안 강화 리눅스(SELinux) 기반의 보안 시스템을 구축함으로써, 종래의 LSM(Linux Security Modules)을 사용하지 않는 리눅스 환경보다 안전한 실행 환경을 제공할 수 있다. 또한, 보안 강화 리눅스(SELinux)의 기능에 따라 추가적인 정책(policy)의 부여가 가능하므로, 특정 프로세스 또는 앱들의 접근 권한을 제한할 수 있다.
이하, 도 3을 참조하여, 도 1에 도시된 본 발명의 일 실시예에 따른 리눅스 기반 안드로이드 컨테이너 플랫폼(1000)에서의 보안 시스템 구축 방법을 설명하기로 한다.
도 3은 본 발명의 일 실시예에 따른 리눅스 기반 안드로이드 컨테이너 환경에서의 보안 시스템 구축 방법의 순서도이다.
도 3을 참조하면, 리눅스 보안 모듈(310) 및 안드로이드 보안 모듈(320)을 통합하여 통합 보안 모듈(300)을 생성할 수 있다(400). 리눅스 보안 모듈(310)은 리눅스 호스트(100)에서 실행되는 프로세스에 대한 컨텍스트(context) 및 정책(policy)을 포함할 수 있다. 안드로이드 보안 모듈(320)은 안드로이드 컨테이너(200)에서 실행되는 프로세스에 대한 컨텍스트(context) 및 정책을 포함할 수 있다.
리눅스 호스트(100)에서 안드로이드 컨테이너(200)가 실행되면(410), 통합 보안 모듈(300)을 리눅스 호스트(100) 및 안드로이드 컨테이너(200)가 공유하는 디렉토리에 마운트할 수 있다(420). 리눅스 호스트(100)에서 안드로이드 컨테이너(200)가 실행되면, 안드로이드 시작 프로세스인 init은 /sys/fs/selinux 디렉토리에 통합 보안 모듈(300)을 마운트할 수 있다.
이와 같은, 리눅스 기반 안드로이드 컨테이너 환경에서의 보안 시스템 구축 방법은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.
상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거니와 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD 와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.
프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
1000: 리눅스 기반 안드로이드 컨테이너 플랫폼
100: 리눅스 호스트
200: 안드로이드 컨테이너
300: 통합 보안 모듈
310: 리눅스 보안 모듈
320: 안드로이드 보안 모듈
100: 리눅스 호스트
200: 안드로이드 컨테이너
300: 통합 보안 모듈
310: 리눅스 보안 모듈
320: 안드로이드 보안 모듈
Claims (15)
- 리눅스 호스트;
상기 리눅스 호스트에서 실행되는 안드로이드 컨테이너; 및
상기 리눅스 호스트에서 사용하는 프로세스에 대한 정책(policy)인 리눅스 보안 모듈 및 상기 안드로이드 컨테이너에서 사용하는 프로세스에 대한 정책(policy)인 안드로이드 보안 모듈을 포함하며, 상기 리눅스 호스트 및 상기 안드로이드 컨테이너가 공유하는 디렉토리에 마운트되는 통합 보안 모듈을 포함하고,
상기 통합 보안 모듈은,
상기 리눅스 호스트에서 상기 안드로이드 컨테이너가 실행되면, 상기 리눅스 보안 모듈 위에 오버라이트(overwrite)되는, 리눅스 기반 안드로이드 컨테이너 플랫폼. - 제1항에 있어서,
상기 안드로이드 컨테이너는,
상기 리눅스 호스트와 커널 및 디바이스를 공유하는, 리눅스 기반 안드로이드 컨테이너 플랫폼. - 제1항에 있어서,
상기 안드로이드 컨테이너는,
상기 리눅스 호스트의 프로세스(proc) 및 시스템(sys) 디렉토리를 자신의 루트 파일 시스템(Root File System)에 마운트하는, 리눅스 기반 안드로이드 컨테이너 플랫폼. - 삭제
- 제1항에 있어서,
상기 통합 보안 모듈은,
파일(file), 사용자(user) 및 프로세스(process)에 컨텍스트(context)를 부여하는, 리눅스 기반 안드로이드 컨테이너 플랫폼. - ◈청구항 6은(는) 설정등록료 납부시 포기되었습니다.◈제5항에 있어서,
상기 통합 보안 모듈은,
컨텍스트(context) 간의 규칙을 규정한 정책(policy)을 포함하는, 리눅스 기반 안드로이드 컨테이너 플랫폼. - ◈청구항 7은(는) 설정등록료 납부시 포기되었습니다.◈제6항에 있어서,
상기 통합 보안 모듈은,
상기 컨텍스트(context) 간의 규칙을 규정한 정책(policy)에 따른 시스템 접근 제어를 수행하는, 리눅스 기반 안드로이드 컨테이너 플랫폼. - 제1항에 있어서,
상기 통합 보안 모듈은,
상기 리눅스 보안 모듈 및 상기 리눅스 보안 모듈을 안드로이드 프레임워크에 적용할 수 있도록 경량화한 상기 안드로이드 보안 모듈을 포함하는, 리눅스 기반 안드로이드 컨테이너 플랫폼. - 제1항에 따른 리눅스 기반 안드로이드 컨테이너 플랫폼을 탑재한 장치.
- 리눅스 호스트에서 안드로이드 컨테이너가 실행되는 리눅스 기반 안드로이드 컨테이너 환경에서의 보안 시스템 구축 방법에 있어서,
상기 리눅스 호스트에서 사용하는 프로세스에 대한 정책(policy)인 리눅스 보안 모듈 및 상기 안드로이드 컨테이너에서 사용하는 프로세스에 대한 정책(policy)인 안드로이드 보안 모듈을 통합한 통합 보안 모듈을 생성하고,
상기 리눅스 호스트에서 상기 안드로이드 컨테이너가 실행되면, 상기 리눅스 호스트에서 상기 리눅스 보안 모듈이 마운트된 디렉토리에 상기 통합 보안 모듈을 덮어쓰는 방식으로 상기 통합 보안 모듈을 상기 리눅스 호스트 및 상기 안드로이드 컨테이너가 공유하는 디렉토리에 마운트하는 리눅스 기반 안드로이드 컨테이너 환경에서의 보안 시스템 구축 방법.
- 삭제
- 제10항에 있어서,
상기 통합 보안 모듈을 상기 리눅스 호스트 및 상기 안드로이드 컨테이너가 공유하는 디렉토리에 마운트하는 것은,
상기 안드로이드 컨테이너가 상기 리눅스 호스트의 프로세스(proc) 및 시스템(sys) 디렉토리를 자신의 루트 파일 시스템(Root File System)에 마운트하여 상기 리눅스 호스트에서 상기 안드로이드 컨테이너가 실행되면, 상기 리눅스 호스트에서 상기 리눅스 보안 모듈이 마운트된 디렉토리에 상기 통합 보안 모듈을 덮어쓰는 것인 리눅스 기반 안드로이드 컨테이너 환경에서의 보안 시스템 구축 방법. - 제10항에 있어서,
상기 리눅스 호스트에서 사용하는 프로세스에 대한 정책(policy)인 리눅스 보안 모듈 및 상기 안드로이드 컨테이너에서 사용하는 프로세스에 대한 정책(policy)인 안드로이드 보안 모듈을 통합한 통합 보안 모듈을 생성하는 것은,
파일(file), 사용자(user) 및 프로세스(process)에 컨텍스트(context)를 부여하며, 컨텍스트(context) 간의 규칙을 규정한 정책(policy)을 포함하는 통합 보안 모듈을 생성하는 것인 리눅스 기반 안드로이드 컨테이너 환경에서의 보안 시스템 구축 방법. - 제10항에 있어서,
상기 리눅스 호스트에서 사용하는 프로세스에 대한 정책(policy)인 리눅스 보안 모듈 및 상기 안드로이드 컨테이너에서 사용하는 프로세스에 대한 정책(policy)인 안드로이드 보안 모듈을 통합한 통합 보안 모듈을 생성하는 것은,
상기 리눅스 호스트의 시스템 접근 제어를 수행하는 통합 보안 모듈을 생성하는 것인 리눅스 기반 안드로이드 컨테이너 환경에서의 보안 시스템 구축 방법. - ◈청구항 15은(는) 설정등록료 납부시 포기되었습니다.◈제14항에 있어서,
상기 리눅스 호스트에서 사용하는 프로세스에 대한 정책(policy)인 리눅스 보안 모듈 및 상기 안드로이드 컨테이너에서 사용하는 프로세스에 대한 정책(policy)인 안드로이드 보안 모듈을 통합한 통합 보안 모듈을 생성하는 것은,
안드로이드에 설치되는 앱의 접근 제어를 수행하는 통합 보안 모듈을 생성하는 것인 리눅스 기반 안드로이드 컨테이너 환경에서의 보안 시스템 구축 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170128066A KR101997061B1 (ko) | 2017-09-29 | 2017-09-29 | 리눅스 기반 안드로이드 컨테이너 플랫폼, 이를 탑재한 장치 및 리눅스 기반 안드로이드 컨테이너 환경에서의 보안 시스템 구축 방법 |
US15/835,082 US10482267B2 (en) | 2017-09-29 | 2017-12-07 | Linux based android container platform, device equipped with the same and method for apply security system in Linux based android container environment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170128066A KR101997061B1 (ko) | 2017-09-29 | 2017-09-29 | 리눅스 기반 안드로이드 컨테이너 플랫폼, 이를 탑재한 장치 및 리눅스 기반 안드로이드 컨테이너 환경에서의 보안 시스템 구축 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190038065A KR20190038065A (ko) | 2019-04-08 |
KR101997061B1 true KR101997061B1 (ko) | 2019-07-05 |
Family
ID=65896087
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170128066A KR101997061B1 (ko) | 2017-09-29 | 2017-09-29 | 리눅스 기반 안드로이드 컨테이너 플랫폼, 이를 탑재한 장치 및 리눅스 기반 안드로이드 컨테이너 환경에서의 보안 시스템 구축 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10482267B2 (ko) |
KR (1) | KR101997061B1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102235556B1 (ko) | 2019-12-12 | 2021-04-02 | 숭실대학교산학협력단 | 안드로이드 어플리케이션에 의해 실행 가능한 보안 컨테이너 구축 장치, 방법 및 그 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체 |
KR102643204B1 (ko) | 2023-07-27 | 2024-03-05 | 주식회사 시큐브 | 컨테이너 기반 클라우드 접근통제 시스템 및 방법 |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111339541B (zh) * | 2020-02-20 | 2022-08-02 | Oppo广东移动通信有限公司 | 基于binder驱动的进程间通信IPC机制的复用方法及装置 |
CN113138836B (zh) * | 2021-04-14 | 2024-04-26 | 启明星辰信息技术集团股份有限公司 | 一种使用基于Docker容器的防逃逸系统的防逃逸方法 |
CN113220363B (zh) * | 2021-05-06 | 2022-04-19 | 技德技术研究所(武汉)有限公司 | 一种在Linux上兼容运行Android系统的文件打开方法及装置 |
CN113687888B (zh) * | 2021-05-18 | 2023-08-08 | 麒麟软件有限公司 | 在Linux系统上兼容运行Android应用的文件分享方法 |
CN114048181B (zh) * | 2021-10-20 | 2024-04-02 | 北京字节跳动网络技术有限公司 | 系统和容器共享文件的方法及装置 |
CN114036369B (zh) * | 2021-10-20 | 2024-04-30 | 北京字节跳动网络技术有限公司 | 浏览器访问应用的方法、装置、设备、介质和产品 |
CN114035976A (zh) * | 2021-10-20 | 2022-02-11 | 北京鲸鲮信息系统技术有限公司 | 一种粘贴板共享方法、装置、设备、介质和产品 |
CN114035863A (zh) * | 2021-11-11 | 2022-02-11 | 北京鲸鲮信息系统技术有限公司 | 在Linux系统中操作安卓应用的方法、装置和设备 |
CN113986858B (zh) * | 2021-12-24 | 2022-06-03 | 北京鲸鲮信息系统技术有限公司 | Linux兼容安卓系统的共享文件操作方法和装置 |
CN114489888B (zh) * | 2022-01-10 | 2023-08-04 | 麒麟软件有限公司 | 基于DRM的Android应用共享Linux系统屏幕数据的方法 |
CN114185851B (zh) * | 2022-02-14 | 2022-07-05 | 麒麟软件有限公司 | 安卓访问Linux本地目录和文件的方法与系统 |
CN114185508B (zh) * | 2022-02-15 | 2022-04-26 | 麒麟软件有限公司 | 在Linux兼容安卓系统上进行左右分屏的方法 |
CN114546536B (zh) * | 2022-03-21 | 2022-07-05 | 北京麟卓信息科技有限公司 | Linux平台上多安卓应用使用同一安卓应用的方法 |
KR102669688B1 (ko) | 2022-05-09 | 2024-05-27 | 숭실대학교 산학협력단 | 컨테이너 시스템에 대한 동적 보안 정책 시행 방법, 이를 수행하기 위한 기록 매체 및 시스템 |
CN114895961B (zh) * | 2022-06-13 | 2022-10-14 | 北京麟卓信息科技有限公司 | 一种跨运行环境的显示输出共享方法 |
KR20240031717A (ko) | 2022-09-01 | 2024-03-08 | 숭실대학교산학협력단 | 커널 취약점을 방어하기 위한 eBPF 기반의 핫패치 엔진 장치, 이를 포함하는 시스템 및 방법 |
CN115827099B (zh) * | 2022-12-09 | 2023-05-12 | 安芯网盾(北京)科技有限公司 | Linux平台的挂钩函数安装方法及装置 |
CN116541085B (zh) * | 2023-07-05 | 2023-09-12 | 成都阿加犀智能科技有限公司 | 一种Android/Linux融合方法、装置、设备及存储介质 |
CN117075984B (zh) * | 2023-10-17 | 2023-12-26 | 海马云(天津)信息技术有限公司 | 模块处理方法、装置、通信设备及计算机可读存储介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8893222B2 (en) * | 2012-11-13 | 2014-11-18 | Auckland Uniservices Ltd. | Security system and method for the android operating system |
RU2535175C2 (ru) * | 2012-12-25 | 2014-12-10 | Закрытое акционерное общество "Лаборатория Касперского" | Система и способ обнаружения вредоносного программного обеспечения путем создания изолированной среды |
KR20160043029A (ko) * | 2013-08-12 | 2016-04-20 | 그라파이트 소프트웨어 코포레이션 | 보안 인증 및 암호화된 도메인들로의 스위칭 |
US10181028B2 (en) * | 2014-02-21 | 2019-01-15 | Samsung Electronics Co., Ltd. | Method and apparatus to sandbox run-time android applications with lightweight container |
US9563488B2 (en) * | 2014-05-29 | 2017-02-07 | Apple Inc. | Sharing extension points to allow an application to share content via a sharing extension |
US10140462B2 (en) * | 2015-05-21 | 2018-11-27 | Qualcomm Innovation Center, Inc. | Stackable file system with user space policy management |
US10474845B2 (en) * | 2016-11-16 | 2019-11-12 | Foundation Of Soongsil University-Industry Cooperation | Duo operating system for android security, mobile device having the same, method of securing mobile device having the same |
KR101857009B1 (ko) * | 2017-01-19 | 2018-05-11 | 숭실대학교산학협력단 | 안드로이드 악성코드 분석을 위한 컨테이너 플랫폼 및 이를 이용한 모바일 장치의 보안 방법 |
US10528749B2 (en) * | 2017-03-20 | 2020-01-07 | Huawei Technologies Co., Ltd. | Methods and apparatus for containerized secure computing resources |
-
2017
- 2017-09-29 KR KR1020170128066A patent/KR101997061B1/ko active IP Right Grant
- 2017-12-07 US US15/835,082 patent/US10482267B2/en active Active
Non-Patent Citations (2)
Title |
---|
Richard Haines, "The SELinux Notebook, 4th Edition"(2014.) 1부.* |
Song Wu et al, "Container-Based Cloud Platform for Mobile Computation Offloading", 2017 IEEE International Parallel and Distributed Processing Symposium, pp. 123-132(2017.07.) 1부.* |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102235556B1 (ko) | 2019-12-12 | 2021-04-02 | 숭실대학교산학협력단 | 안드로이드 어플리케이션에 의해 실행 가능한 보안 컨테이너 구축 장치, 방법 및 그 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체 |
KR102643204B1 (ko) | 2023-07-27 | 2024-03-05 | 주식회사 시큐브 | 컨테이너 기반 클라우드 접근통제 시스템 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20190038065A (ko) | 2019-04-08 |
US20190102566A1 (en) | 2019-04-04 |
US10482267B2 (en) | 2019-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101997061B1 (ko) | 리눅스 기반 안드로이드 컨테이너 플랫폼, 이를 탑재한 장치 및 리눅스 기반 안드로이드 컨테이너 환경에서의 보안 시스템 구축 방법 | |
JP6218859B2 (ja) | 仮想マシンの完全性保護のためのメモリイントロスペクションエンジン | |
US10042661B1 (en) | Method for creation of application containers inside OS containers | |
US9904484B2 (en) | Securing protected information based on software designation | |
KR101592782B1 (ko) | 전가상화 시스템에서 자원을 감시하는 장치 및 방법 | |
US10956188B2 (en) | Transparent interpretation of guest instructions in secure virtual machine environment | |
US8751782B2 (en) | Secure local boot using third party data store (3PDS) based ISO image | |
JP2015537323A (ja) | 「ブリング・ユア・オウン」管理のための起動機構 | |
US10620985B2 (en) | Transparent code patching using a hypervisor | |
US20160306578A1 (en) | Secure Cross-Process Memory Sharing | |
US10474832B2 (en) | Method for controlling file input-output in virtualization system | |
EP3935494B1 (en) | Inject interrupts and exceptions into secure virtual machine | |
EP3308274B1 (en) | Executing services in containers | |
KR102058493B1 (ko) | 게스트 운영체제의 무결성과 파일 입출력 제어를 통해서 보안 서비스를 제공하는 보안 장치 및 방법 | |
US11693689B2 (en) | Online disk encryption using mirror driver | |
KR20210072677A (ko) | 신뢰실행환경의 호환성 개선 |
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 |