KR102494791B1 - 컨테이너 환경에서 알려지지 않은 바이너리 검사 및 차단 방법 및 장치 - Google Patents
컨테이너 환경에서 알려지지 않은 바이너리 검사 및 차단 방법 및 장치 Download PDFInfo
- Publication number
- KR102494791B1 KR102494791B1 KR1020210151972A KR20210151972A KR102494791B1 KR 102494791 B1 KR102494791 B1 KR 102494791B1 KR 1020210151972 A KR1020210151972 A KR 1020210151972A KR 20210151972 A KR20210151972 A KR 20210151972A KR 102494791 B1 KR102494791 B1 KR 102494791B1
- Authority
- KR
- South Korea
- Prior art keywords
- system call
- container
- security application
- blocking
- program
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 230000000903 blocking effect Effects 0.000 title claims abstract description 26
- 230000008569 process Effects 0.000 claims abstract description 27
- 230000015654 memory Effects 0.000 claims description 11
- 238000007689 inspection Methods 0.000 claims description 4
- 230000007246 mechanism Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 8
- 230000009471 action Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000002955 isolation Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 244000035744 Hura crepitans Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
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/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Debugging And Monitoring (AREA)
Abstract
본 발명은 컨테이너 환경에서 알려지지 않은 바이너리 검사 및 차단 방법 및 장치를 개시한다. 본 발명에 따르면, 사용자 스페이스의 프로그램이 시스템 콜을 호출하는 경우, 팟(Pod) 내의 사이드카 컨테이너로부터 상기 시스템 콜을 전달 받는 단계; 및 상기 팟 내의 메인 컨테이너의 보안 애플리케이션이 상기 시스템 콜의 위험 여부에 따라 상기 시스템 콜을 차단 또는 에뮬레이트 하는 단계를 포함하되, 상기 시스템 콜을 에뮬레이트 하는 경우, 상기 보안 애플리케이션은 ptrace(process trace)를 이용하여 상기 시스템 콜을 에뮬레이트 하여 커널 스페이스의 엔트로 포인트로 전달하거나 상기 시스템 콜이 존재하지 않는다는 에러를 출력하는 알려지지 않은 바이너리 검사 및 차단 방법이 제공된다.
Description
본 발명은 컨테이너 환경에서 알려지지 않은 바이너리 검사 및 차단 방법 및 장치에 관한 것이다.
Kubernetes(쿠버네티스, K8s)는 원래 구글에서 구축한 확장 가능하고 이식 가능한 오픈 소스 시스템으로 CNCF(Cloud Native Computing Foundation)에서 개발 및 유지 관리하고 있다.
쿠버네티스를 사용하면 노드 클러스터에서 컨테이너를 관리할 수 있다. 최근 몇 년 동안 구글, 페이스북 및 넷플릭스와 같은 대형 회사들이 모놀리식 아키텍쳐에서 마이크로서비스 아키텍쳐로 성공적으로 전환했다.
컨테이너는 마이크로서비스 아키텍쳐를 위한 핵심 기술로 간주된다.
컨테이너를 위한 오케스트레이션 도구인 쿠버네티스도 마이크로서비스 아키텍처 구현을 지원한다.
일반적으로 마이크로서비스는 쿠버네티스에서 배포 가능한 가장 작은 단위인 Pod(팟)으로 배포된다.
애플리케이션 서비스를 제공하기 위해서는 팟 그룹을 관리하고 오케스트레이션해야 한다.
컨테이너는 기본적으로 다른 컨테이너 및 호스트 시스템과 커널을 공유하므로 컨테이너 내에서 탈출(escape)하여 호스트 커널에 영향을 미치는 위협이 존재할 수 있다.
또한 컨테이너 환경에서 동일한 팟 내에 여러 컨테이너를 사이드카 패턴으로 배치할 경우, 사이드카 컨테이너는 디버깅 및 모니터링 용도로 메인 컨테이너보다 더 많은 권한을 가지게 된다. 따라서 이와 관련한 권한 상승(privilege escalation) 문제가 존재할 수 있다.
도 1은 사이드카 컨테이너가 권한 상승을 시도하여 커널에 악성 행위를 하는 경우를 도시한 도면이다.
도 1에서의 가정은 아래와 같다.
(1) 악성 행위는 메인 컨테이너에서 제한되며, 메인 컨테이너에 승인된 capabilities를 벗어날 수 없다.
(2) 공격자는 오케스트레이션 시스템 (kubernetes 등)을 제어할 수 없다.
(3) 공격자는 어떤 방법을 통해 시스템 관리자가 디버깅 시스템을 통해 메인 컨테이너에 있는 파일을 실행하거나 디버그하도록 유도할 수 있다.
상기한 시나리오는 사이드카 컨테이너가 메인 컨테이너보다 더 많은 capability나 resource를 가진 경우를 고려한다. 이 경우 더 많은 권한을 갖기 위해 공격자가 악성 바이너리를 메인 애플리케이션에 삽입하고, 사이드카 컨테이너에서 이를 실행하도록 기다릴 수 있다.
kubectl exec 커맨드를 통해 악성 바이너리를 실행함으로써 이러한 유형의 공격을 완화할 수 있지만, 오케스트레이션 툴에 존재하는 실행 메소드는 이러한 문제를 발견하는 데에는 도움을 주지 않는다.
상기한 종래기술의 문제점을 해결하기 위해, 본 발명은 사이드카 컨테이너가 검사 목적으로 파일을 실행할 수 있도록 권한을 계속 허락하면서, 공격을 피하기 위해 안전한 메커니즘으로 프로세스를 실행할 수 있는 컨테이너 환경에서 알려지지 않은 바이너리 검사 및 차단 방법 및 장치를 제안하고자 한다.
상기한 바와 같은 목적을 달성하기 위하여, 본 발명의 일 실시예에 따르면, 컨테이너 환경에서 알려지지 않은 바이너리를 검사 및 차단하는 방법으로서, 사용자 스페이스의 프로그램이 시스템 콜을 호출하는 경우, 팟(Pod) 내의 사이드카 컨테이너로부터 상기 시스템 콜을 전달 받는 단계; 및 상기 팟 내의 메인 컨테이너의 보안 애플리케이션이 상기 시스템 콜의 위험 여부에 따라 상기 시스템 콜을 차단 또는 에뮬레이트 하는 단계를 포함하되, 상기 시스템 콜을 에뮬레이트 하는 경우, 상기 보안 애플리케이션은 ptrace(process trace)를 이용하여 상기 시스템 콜을 에뮬레이트 하여 커널 스페이스의 엔트리 포인트를 전달하거나 상기 시스템 콜이 존재하지 않는다는 에러를 출력하는 알려지지 않은 바이너리 검사 및 차단 방법이 제공된다.
상기 에뮬레이트하는 시스템 콜은 쓰기 시스템과 같이 프로세스의 중단 없이 적용되는 싱크(sink) 시스템 콜일 수 있다.
상기 메인 컨테이너의 보안 애플리케이션은 SIGKILL을 이용하여 상기 프로그램에 위한 프로세스를 종료시킬 수 있다.
상기 메인 컨테이너의 보안 애플리케이션은 SYSEMU를 사용하는 경우, 상기 ptrace를 이용하여 시스템 콜을 에뮬레이트하고, 상기 시스템 콜에 대한 엔트리 포인트를 반환할 수 있다.
상기 메인 컨테이너의 보안 애플리케이션은 ENOSYS를 사용하는 경우, 상기 ptrace를 이용하여 시스템 콜을 에뮬레이트하고, 상기 시스템 콜이 존재하지 않는 경우, 에러를 출력할 수 있다.
본 발명의 다른 측면에 따르면, 상기한 방법을 수행하는 프로그램을 저장하는 컴퓨터 판독 가능한 기록매체가 제공된다.
본 발명의 또 다른 측면에 따르면, 컨테이너 환경에서 알려지지 않은 바이너리를 검사 및 차단하는 장치로서, 프로세서; 및 상기 프로세서에 연결되는 메모리를 포함하되, 상기 메모리는, 사용자 스페이스의 프로그램이 시스템 콜을 호출하는 경우, 팟(Pod) 내의 사이드카 컨테이너로부터 상기 시스템 콜을 전달 받고, 상기 팟 내의 메인 컨테이너의 보안 애플리케이션이 상기 시스템 콜의 위험 여부에 따라 상기 시스템 콜을 차단 또는 에뮬레이트 하도록, 상기 프로세서에 의해 실행 가능한 프로그램 명령어들을 저장하되, 상기 시스템 콜을 에뮬레이트 하는 경우, 상기 보안 애플리케이션은 ptrace(process trace)를 이용하여 상기 시스템 콜을 에뮬레이트 하여 커널 스페이스의 엔트리 포인트를 전달하거나 상기 시스템 콜이 존재하지 않는다는 에러를 출력하는 알려지지 않은 바이너리 검사 및 차단 장치가 제공된다.
본 발명에 따르면, 위험한 시스템 콜을 차단 및 에뮬레이션함으로써 사이드카 컨테이너가 검사 목적으로 파일을 실행할 수 있도록 권한을 계속 허락하면서 안전한 메커니즘으로 프로세스를 실행할 수 있는 장점이 있다.
도 1은 사이드카 컨테이너가 권한 상승을 시도하여 커널에 악성 행위를 하는 경우를 도시한 도면이다.
도 2는 기존의 시스템 콜 모델을 도시한 도면이다.
도 3는 본 실시예에 따른 시스템 콜 호출 방식을 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 시스템 콜 처리 과정을 도시한 도면이다.
도 5는 쓰기 시스템 콜을 기존 방식으로 수행했을 때와 본 실시예에서의 차단 방식과 에뮬레이트 방식을 사용했을 때의 효과를 나타낸 것이다.
도 2는 기존의 시스템 콜 모델을 도시한 도면이다.
도 3는 본 실시예에 따른 시스템 콜 호출 방식을 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 시스템 콜 처리 과정을 도시한 도면이다.
도 5는 쓰기 시스템 콜을 기존 방식으로 수행했을 때와 본 실시예에서의 차단 방식과 에뮬레이트 방식을 사용했을 때의 효과를 나타낸 것이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다.
그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 실시예에 따른 바이너리 검사 및 차단 방법을 설명하기에 앞서 주요 용어 및 종래의 모델을 간략하게 살펴본다.
시스템 콜 (System call)은 컴퓨터 프로그램이 실행되는 운영 체제의 커널로부터 서비스를 요청하는 프로그래밍 방식이다.
또한 시스템 콜은 프로그램이 운영 체제와 상호 작용하는 방법이다. 컴퓨터 프로그램은 운영 체제의 커널에 요청을 할 때 시스템 콜을 호출한다. 시스템 콜은 API(응용프로그램 인터페이스)를 통해 운영 체제의 서비스를 사용자 프로그램에 제공한다. 즉, 애플리케이션은 일반적으로 시스템 콜을 직접 사용하지 않고 API를 사용한다.
도 2는 기존의 시스템 콜 모델을 도시한 도면이다.
도 2를 참조하면, 프로그램 A에 의해 호출된 시스템 콜은 커널 스페이스(kernal space)의 syscall entry point(엔트리 포인트)에 전달되고, 실제 syscall body가 시스템에 영향을 미치게 된다. 이를 수행한 결과가 syscall 1로 전달되고, 그 결과가 프로그램 A로 전달된다.
따라서 기존 시스템 콜 호출 모델을 그대로 사용하는 경우, 악성 바이너리가 바로 실행됨에 따라 호스트 시스템에 영향을 줄 수 있다.
컨테이너는 애플리케이션 실행을 위한 관련 라이브러리나 구성 파일 등을 하나의 패키지로 구성해 구동하는 기술이다.
컨테이너는 물리적으로 머신을 분리하는 가상 머신(VM)과는 달리 동일한 운영 체제 커널을 공유하고 시스템의 나머지 부분으로부터 애플리케이션 프로세스를 격리하므로 기존의 VM에 비해 가벼운 장점이 있다. 그러나 컨테이너는 호스트 시스템 및 다른 컨테이너들과 호스트 OS를 공유하기 때문에, VM보다 격리성 측면에서 보안성이 떨어진다.
컨테이너의 사이드카 디자인 패턴이란, 특히 쿠버네티스 기술에서 사용되는 패턴으로, 하나의 서비스 영역에 하나 이상의 컨테이너를 같이 배치하는 패턴을 의미한다.
사이드카 컨테이너는 메인 애플리케이션에 로깅, 프록시 등 부가적인 서비스를 제공하기 위해 사이드카 형태로 붙어 사용되는 컨테이너를 말한다.
현재까지 Istio나 Envoy같은 컨테이너 기반 클라우드에서 사용 가능한 다양한 사이드카 패턴이 존재하며, 사이드카 패턴은 IoT나 엣지 클라우드 등에서도 고려된다.
사이드카 패턴은 하나의 팟 내에 존재하는 컨테이너 사이에 권한을 다르게 할 수 있으며, 디버깅 및 모니터링 목적으로 메인 애플리케이션보다 더 많은 권한을 가질 수 있다. 따라서 사이드카 컨테이너는 메인 컨테이너에 부가적인 기능을 제공하는 반면 권한 상승 등의 원인이 될 수 있다.
에뮬레이션은 실행 중인 시스템에 영향을 끼치지 않고 실행하는 애플리케이션의 실제 요구에 따라 개발된 솔루션이다.
즉, 에뮬레이션은 기존의 리소스나 하드웨어를 이용하지 않고 소프트웨어적으로 구현하여 특정 시스템을 구동할 수 있게 해주는 방식으로, 기존의 리소스나 하드웨어를 분리하여 활용하는 가상화 방식과는 다른 방식이다.
현재 널리 사용되는 에뮬레이터는 QEMU (Quick Emulation)로, 하드웨어를 에뮬레이트하고 동일한 시스템이 아니더라도 애플리케이션을 실행할 수 있도록 한다.
하드웨어 에뮬레이션뿐만 아니라, 시스템 콜을 에뮬레이트 함으로써 샌드박스 환경에서 에뮬레이션 솔루션이 적용될 수 있다. 이러한 시스템 콜 에뮬레이션을 위해 대상 프로세스를 ptrace(process trace)하고 시스템 콜 요청이 있을 때 더미 결과 또는 프로세스를 대체할 수 있다. 시스템 콜 에뮬레이션을 사용하는 기존 솔루션으로는 gvisor나 virtual kernel이 있다.
본 실시예에는 알 수 없는 바이너리(unknown binary)가 호출하는 시스템 콜을 안전하게 검사하고 차단한다.
도 3는 본 실시예에 따른 시스템 콜 호출 방식을 도시한 도면이다.
본 실시예에 따르면, 시스템 콜 호출이 있는 경우, 두 가지 솔루션인 차단 방법(Blocking Method)과 에뮬레이션 방법(Emulation Method) 중 하나를 수행한다.
본 실시예에 따르면, 에뮬레이트하는 시스템 콜은 쓰기 시스템과 같이 프로세스의 중단 없이 적용되는 쓰기(write) 시스템 콜과 같은 싱크(sink) 시스템 콜일 수 있다. 반면, 프로그램 수명 주기 전반에 걸쳐 조작될 수 있는 읽기 시스템 콜과 같은 소스 시스템 콜은 에뮬레이션에서 제외된다.
도 3에 도시된 바와 같이, 사용자 스페이스의 프로그램 A가 시스템 콜(syscall 1, 예를 들어, 쓰기 시스템 콜)을 호출하는 경우(Invoke), 호출된 시스템 콜이 위험한 것으로 판단되면 프로그램 A에 의한 프로세스를 차단한다(Blocked syscall 1).
또한, 이와 다르게, 사용자 스페이스의 프로그램 A가 시스템 콜을 호출하는 경우(Invoke), 호출된 시스템 콜을 ptrace()를 통해 에뮬레이트 한다(Emulated syscall 1).
에뮬레이션은 PTRACE_SYSEMU 방식을 통해 시스템 콜의 엔트리 포인트를 반환하거나, ENOSYS 방식을 통해 해당 시스템 콜이 없음을 프로세스에 알리는 방식으로 격리된다.
본 실시예에 따른 시스템 콜의 차단 및 에뮬레이션은 팟 내에 배치되는 메인 컨테이너의 보안 애플리케이션에서 수행될 수 있다.
도 4는 본 발명의 일 실시예에 따른 시스템 콜 처리 과정을 도시한 도면이다.
도 4를 참조하면, 메인 컨테이너(400) 및 사이드카 컨테이너(402)가 팟 내에 배치되고, 호스트 앱에서 kubectl exec 커맨드를 통해 악성 바이너리를 실행되는 상황을 가정한다.
본 실시예에 따르면, 메인 컨테이너(400)의 보안 애플리케이션(410)에서 아래의 세 가지 메소드를 이용하여 알려지지 않은 바이너리를 검사하고 차단한다.
도 4에 도시된 바와 같이, 사이드카 컨테이너(402)는 호스트 시스템에서 호스트 앱에서 kubectl exec 커맨드를 실행하여 디버깅이 가능한 사이드카 컨테이너를 실행하는 경우, 해당 사이드카 컨테이너에 존재하는 보안 애플리케이션(secure app, 410)이 메인 컨테이너로(400) 복사된다. 상기한 과정은 사이드카 컨테이너(402)의 보안 애플리케이션(secure app, 412)에서 수행된다.
또한, 사이드카 컨테이너(402)는 악성 애플리케이션을 호출 및 격리하기 위해 chroot 및 보안 애플리케이션을 사용할 수 있다.
본 실시예에 따른 메인 컨테이너(400)의 보안 애플리케이션(410)은 시스템 콜을 차단하거나 에뮬레이션한다.
도 3 내지 도 4를 참조하면, 시스템 콜 차단은 시스템 콜을 호출한 프로그램으로 SIGKILL를 전송하여 해당 프로세스를 차단하는 방식으로 이루어진다.
에뮬레이션 방법은 ENOSYS(Error no syscalls, 유효하지 않음) 또는 PTRACE_SYSEMU를 사용하여 시스템 콜을 에뮬레이트한다.
이하에서는 쓰기 시스템 콜(인덱스 1인 syscall 1)을 차단하거나 에뮬레이션하는 과정을 구체적으로 설명한다.
차단 방법 (Blocking Method)
- SIGKILL: 쓰기 시스템 콜이 호출될 때, 격리된(confined) 프로세스를 종료하는 격리 방법이다. 즉, SIGKILL을 사용하는 경우, 악성 바이너리가 발견되면 프로세스를 종료한다.
에뮬레이션 방법 (Emulation Method)
- ENOSYS: 시스템 콜이 존재하지 않음을 시스템 콜을 호출한 프로그램에 알리는 격리 방법이다. 에뮬레이트되는 각 쓰기 시스템 콜에 대해 각각 setitimer 시스템 콜을 추가로 포함한다. 즉, ENOSYS를 사용하는 경우, ptrace를 이용하여 시스템 콜을 에뮬레이트한다. 그러나 시스템 콜이 존재하지 않는 경우 시스템 콜이 존재하지 않는다는 에러를 프로그램에 반환한다.
- SYSEMU: 쓰기 시스템 콜이 호출될 때마다 에뮬레이트 되는 반환 결과가 예상되는 시스템 콜의 엔트리 포인트를 알린다. 즉, SYSEMU를 사용하는 경우, ptrace를 이용하여 시스템 콜을 에뮬레이트 하고, 쓰기 시스템 콜에 대한 엔트리 포인트가 반환되며, SYSEMU가 아닌 경우 ENOSYS를 이용한 에러가 출력된다.
본 실시예에 따른 방법을 이용하여 시스템 콜을 에뮬레이션 함으로써, 가상의 결과를 제공하여 시스템 콜의 결과를 실제로 제어할 수 있다.
따라서, 악성적인 행위가 호스트 시스템에 영향을 주는 것을 방지할 수 있음을 의미한다. 이는 기존의 특정 시스템 콜들을 차단하는 차단 솔루션과 다르게, 프로세스가 에뮬레이트된 결과로 시스템 콜을 호출할 수 있도록 허락한다.
이러한 방식을 사용하면 네이티브 클라우드 오케스트레이션 시스템에 대한 권한 상승 공격을 방지할 수 있어 다 나은 보안성을 제공할 수 있다.
본 실시예에 따른 컨테이너 환경에서 알려지지 않은 바이너리 검사 및 차단은 프로세서 및 메모리를 포함하는 장치에서 수행될 수 있다.
프로세서는 컴퓨터 프로그램을 실행할 수 있는 CPU(central processing unit)나 그 밖에 가상 머신 등을 포함할 수 있다.
메모리는 고정식 하드 드라이브나 착탈식 저장 장치와 같은 불휘발성 저장 장치를 포함할 수 있다. 착탈식 저장 장치는 콤팩트 플래시 유닛, USB 메모리 스틱 등을 포함할 수 있다. 메모리는 각종 랜덤 액세스 메모리와 같은 휘발성 메모리도 포함할 수 있다.
메모리에는 상기한 바와 같이 사용자 스페이스의 프로그램의 시스템 콜 호출이 있는 경우 이를 차단 또는 에뮬레이트 하기 위한 프로그램 명령어들이 저장된다.
본 실시예에 따른 3가지 방법은 (일부 특별한 경우를 제외하고) 대부분의 경우에 시스템 콜 트리를 80% 이상 시뮬레이션할 수 있다.
도 5는 쓰기 시스템 콜을 에뮬레이트하는 효과를 나타낸 것이다.
도 5에 도시된 바와 같이, SIGKILL 방식이 모든 쓰기 시스템 콜을 성공적으로 차단할 수 있지만, 다른 방식에 비해 기록된 시스템 콜 수가 가장 적다는 것을 보여준다. 최적화를 적용하지 않는 경우 ENOSYS와 PTRACE SYSEMU 방법 모두 원본(바이너리 실행)보다 더 많은 시스템 호출을 제공한다.
상기한 본 발명의 실시예는 예시의 목적을 위해 개시된 것이고, 본 발명에 대한 통상의 지식을 가지는 당업자라면 본 발명의 사상과 범위 안에서 다양한 수정, 변경, 부가가 가능할 것이며, 이러한 수정, 변경 및 부가는 하기의 특허청구범위에 속하는 것으로 보아야 할 것이다.
Claims (7)
- 컨테이너 환경에서 알려지지 않은 바이너리를 검사 및 차단하는 방법으로서,
사용자 스페이스의 프로그램이 시스템 콜을 호출하는 경우, 팟(Pod) 내의 사이드카 컨테이너로부터 상기 시스템 콜을 전달 받는 단계; 및
상기 팟 내의 메인 컨테이너의 보안 애플리케이션이 상기 시스템 콜의 위험 여부에 따라 상기 시스템 콜을 차단 또는 에뮬레이트 하는 단계를 포함하되,
상기 시스템 콜을 에뮬레이트 하는 경우, 상기 보안 애플리케이션은 ptrace(process trace)를 이용하여 상기 시스템 콜을 에뮬레이트 하여 커널 스페이스의 엔트리 포인트를 전달하거나 상기 시스템 콜이 존재하지 않는다는 에러를 출력하는 알려지지 않은 바이너리 검사 및 차단 방법. - 제1항에 있어서,
상기 에뮬레이트하는 시스템 콜은 쓰기 시스템과 같이 프로세스의 중단 없이 적용되는 싱크(sink) 시스템 콜인 알려지지 않은 바이너리 검사 및 차단 방법. - 제1항에 있어서,
상기 메인 컨테이너의 보안 애플리케이션은 SIGKILL을 이용하여 상기 프로그램에 위한 프로세스를 종료시키는 알려지지 않은 바이너리 검사 및 차단 방법. - 제1항에 있어서,
상기 메인 컨테이너의 보안 애플리케이션은 SYSEMU를 사용하는 경우, 상기 ptrace를 이용하여 시스템 콜을 에뮬레이트하고, 상기 시스템 콜에 대한 엔트리 포인트를 반환하는 알려지지 않은 바이너리 검사 및 차단 방법. - 제1항에 있어서,
상기 메인 컨테이너의 보안 애플리케이션은 ENOSYS를 사용하는 경우, 상기 ptrace를 이용하여 시스템 콜을 에뮬레이트하고, 상기 시스템 콜이 존재하지 않는 경우, 에러를 출력하는 알려지지 않은 바이너리 검사 및 차단 방법. - 제1항에 따른 방법을 수행하는 프로그램을 저장하는 컴퓨터 판독 가능한 기록매체.
- 컨테이너 환경에서 알려지지 않은 바이너리를 검사 및 차단하는 장치로서,
프로세서; 및
상기 프로세서에 연결되는 메모리를 포함하되,
상기 메모리는,
사용자 스페이스의 프로그램이 시스템 콜을 호출하는 경우, 팟(Pod) 내의 사이드카 컨테이너로부터 상기 시스템 콜을 전달 받고,
상기 팟 내의 메인 컨테이너의 보안 애플리케이션이 상기 시스템 콜의 위험 여부에 따라 상기 시스템 콜을 차단 또는 에뮬레이트 하도록,
상기 프로세서에 의해 실행 가능한 프로그램 명령어들을 저장하되,
상기 시스템 콜을 에뮬레이트 하는 경우, 상기 보안 애플리케이션은 ptrace(process trace)를 이용하여 상기 시스템 콜을 에뮬레이트 하여 커널 스페이스의 엔트리 포인트를 전달하거나 상기 시스템 콜이 존재하지 않는다는 에러를 출력하는 알려지지 않은 바이너리 검사 및 차단 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210151972A KR102494791B1 (ko) | 2021-11-08 | 2021-11-08 | 컨테이너 환경에서 알려지지 않은 바이너리 검사 및 차단 방법 및 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210151972A KR102494791B1 (ko) | 2021-11-08 | 2021-11-08 | 컨테이너 환경에서 알려지지 않은 바이너리 검사 및 차단 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR102494791B1 true KR102494791B1 (ko) | 2023-02-06 |
KR102494791B9 KR102494791B9 (ko) | 2023-07-05 |
Family
ID=85224304
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210151972A KR102494791B1 (ko) | 2021-11-08 | 2021-11-08 | 컨테이너 환경에서 알려지지 않은 바이너리 검사 및 차단 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102494791B1 (ko) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170043438A (ko) * | 2015-10-13 | 2017-04-21 | 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. | 컨테이너 기반의 가상화 시스템용 조작 포획 방법 및 장치 |
US20190213326A1 (en) * | 2018-01-11 | 2019-07-11 | ArecaBay, Inc. | Self-adaptive application programming interface level security monitoring |
US20200026850A1 (en) * | 2018-07-19 | 2020-01-23 | Twistlock, Ltd. | Techniques for serverless runtime application self-protection |
US20200151115A1 (en) | 2015-12-15 | 2020-05-14 | Lzlabs Gmbh | Protection key management and prefixing in virtual address space legacy emulation system |
KR20200137013A (ko) * | 2018-04-20 | 2020-12-08 | 시스딕, 인크. | 프로그램 컨테이너 모니터링 |
JP2021529386A (ja) * | 2018-06-25 | 2021-10-28 | アマゾン テクノロジーズ インコーポレイテッド | オンデマンドネットワークコード実行システム上での補助機能の実行 |
-
2021
- 2021-11-08 KR KR1020210151972A patent/KR102494791B1/ko active IP Right Grant
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170043438A (ko) * | 2015-10-13 | 2017-04-21 | 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. | 컨테이너 기반의 가상화 시스템용 조작 포획 방법 및 장치 |
US20200151115A1 (en) | 2015-12-15 | 2020-05-14 | Lzlabs Gmbh | Protection key management and prefixing in virtual address space legacy emulation system |
US20190213326A1 (en) * | 2018-01-11 | 2019-07-11 | ArecaBay, Inc. | Self-adaptive application programming interface level security monitoring |
KR20200137013A (ko) * | 2018-04-20 | 2020-12-08 | 시스딕, 인크. | 프로그램 컨테이너 모니터링 |
JP2021529386A (ja) * | 2018-06-25 | 2021-10-28 | アマゾン テクノロジーズ インコーポレイテッド | オンデマンドネットワークコード実行システム上での補助機能の実行 |
US20200026850A1 (en) * | 2018-07-19 | 2020-01-23 | Twistlock, Ltd. | Techniques for serverless runtime application self-protection |
Non-Patent Citations (1)
Title |
---|
Lucas Severo Alves, "eBPF Tools: An Overview of Falco, Inspektor Gadget, Hubble and Cilium"(2021.01.) * |
Also Published As
Publication number | Publication date |
---|---|
KR102494791B9 (ko) | 2023-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Schumilo et al. | Nyx: Greybox hypervisor fuzzing using fast snapshots and affine types | |
CN112236752B (zh) | 用于改进软件容器性能和隔离的方法和系统 | |
US11106792B2 (en) | Methods and systems for performing a dynamic analysis of applications for protecting devices from malwares | |
KR102255767B1 (ko) | 가상 머신 감사를 위한 시스템 및 방법들 | |
US7603713B1 (en) | Method for accelerating hardware emulator used for malware detection and analysis | |
US20150161381A1 (en) | Detecting java sandbox escaping attacks based on java bytecode instrumentation and java method hooking | |
CN105512550B (zh) | 用于活跃的操作系统内核保护的系统和方法 | |
Soriga et al. | A comparison of the performance and scalability of Xen and KVM hypervisors | |
More et al. | Virtual machine introspection: towards bridging the semantic gap | |
Hetzelt et al. | Via: Analyzing device interfaces of protected virtual machines | |
Li et al. | A VMM-based system call interposition framework for program monitoring | |
Ge et al. | HYPERFUZZER: An efficient hybrid fuzzer for virtual cpus | |
Klemperer et al. | High-performance memory snapshotting for real-time, consistent, hypervisor-based monitors | |
Yang et al. | Uefi firmware fuzzing with simics virtual platform | |
Mo et al. | Rust-Shyper: A reliable embedded hypervisor supporting VM migration and hypervisor live-update | |
US11886899B2 (en) | Privacy preserving introspection for trusted execution environments | |
Xing et al. | OB‐IMA: out‐of‐the‐box integrity measurement approach for guest virtual machines | |
KR102494791B1 (ko) | 컨테이너 환경에서 알려지지 않은 바이너리 검사 및 차단 방법 및 장치 | |
Coppens et al. | Multi-variant execution environments | |
Fernandes et al. | Decomposable trust for Android applications | |
Saeki et al. | Bash on Ubuntu on macOS | |
Yan et al. | Performance Overheads of Confidential Virtual Machines | |
McDaniel et al. | Identifying weaknesses in VM/hypervisor interfaces | |
Li et al. | Matryoshka Trap: Recursive MMIO Flaws Lead to VM Escape | |
Sang et al. | P2FAAS: Toward Privacy-Preserving Fuzzing as a Service |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
G170 | Re-publication after modification of scope of protection [patent] |