KR102380434B1 - 도커 파일 분석을 수행하는 도커 이미지 취약점 검사 장치 및 방법 - Google Patents

도커 파일 분석을 수행하는 도커 이미지 취약점 검사 장치 및 방법 Download PDF

Info

Publication number
KR102380434B1
KR102380434B1 KR1020200128988A KR20200128988A KR102380434B1 KR 102380434 B1 KR102380434 B1 KR 102380434B1 KR 1020200128988 A KR1020200128988 A KR 1020200128988A KR 20200128988 A KR20200128988 A KR 20200128988A KR 102380434 B1 KR102380434 B1 KR 102380434B1
Authority
KR
South Korea
Prior art keywords
file
indication information
vulnerability
docker image
docker
Prior art date
Application number
KR1020200128988A
Other languages
English (en)
Other versions
KR102380434B9 (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 KR1020200128988A priority Critical patent/KR102380434B1/ko
Priority to US17/382,771 priority patent/US20220108023A1/en
Application granted granted Critical
Publication of KR102380434B1 publication Critical patent/KR102380434B1/ko
Publication of KR102380434B9 publication Critical patent/KR102380434B9/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/565Static detection by checking file integrity
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • 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/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Abstract

도커 이미지의 매니페스트 파일을 분석하여 지시 정보를 추출하여 분류하고, 지시 정보에 지정되는 파일을 복수개의 계층으로 매핑하며, 복수개의 계층 각각에 대해 사전에 설정되는 추출 조건에 따라, 파일의 취약성을 설정하고, 사전에 마련되는 CVE 데이터베이스에 기초하여, 파일에 대해 설정된 취약성에 따라, 파일의 취약성을 확인하는, 도커 이미지 취약점 검사 장치를 제공한다.

Description

도커 파일 분석을 수행하는 도커 이미지 취약점 검사 장치 및 방법{DOCKER IMAGE VULNERABILITY INSPECTION DEVICE AND METHOD FOR PERFORMING DOCKER FILE ANALYSIS}
본 발명은 도커 파일 분석을 수행하는 도커 이미지 취약점 검사 장치 및 방법에 관한 것으로, 보다 상세하게는, 도커 이미지의 취약점을 검사하는 도커 이미지 취약점 검사 장치 및 방법에 관한 것이다.
도커 컨테이너는 코드, 런타임, 시스템 툴, 시스템 라이브러리 및 설정 등의 어플리케이션을 실행하기 위한 모든 것을 포함하는 경량, 독립형 실행 패키지이다. 도커 컨테이너는 서로 독립된 환경에서, 소프트웨어, 라이브러리 및 설정 파일들을 번들로 묶는 동작을 수행하며, 별도의 채널을 통해 서로 통신이 가능하다. 도커 컨테이너들은 각각의 OS 커널을 통해 실행되므로, 가상머신에 비해 적은 리소스를 사용한다.
이와 관련하여, 도1은 도커 파일로부터 도커 이미지를 생성하는 과정을 나타낸 개략도이다.
이러한, 도커 컨테이너(30)를 실행하기 위해, 소프트웨어, 라이브러리 및 설정 파일들을 묶은 도커 이미지(20)를 생성하게 된다. 도커 이미지(20)는 계층 구조를 가지며, 모든 계층은 읽는 것만이 가능하므로(read-only), 실행 도중에 수정이 불가능한 특징이 존재한다.
이와 같은, 도커 이미지(20)는 크게 두가지 방법으로 생성된다. 첫 번째로, 도커 이미지(20)는 도커 파일(10)을 통해 생성될 수 있다. 도커 이미지(20)는 도커 이미지(20)를 생성하기 위한 모든 커맨드가 순서대로 정의되어 있는 도커 파일(10)을 통해 생성되며, 이러한, 도커 파일(10) 내에 있는 지시 정보(Instruction)에 따라 자동으로 생성된다. 이 때, 도커 파일(10)은 정확한 포맷에 따라 작성된 상태이며, 지시 정보 세트(Instruction Set)에 대한 내용을 준수해야 한다. 두 번째로, 도커 이미지(20)는 도커 컨테이너(30)가 런타임에서 파일을 추가 또는, 변경하거나 새로운 패키지를 설치하는 등의 변화가 일어난 뒤에 생성된다. 이 때, 도커 이미지(20)는 변경 사항을 새로운 계층으로 추가하게 된다. 이에 따라, 도커 이미지(20)는 별도로 마련되는 서버인 도커 허브(40)에 등록될 수 있다.
한편, 종래에는 몇몇 툴만이 도커 이미지(20)의 취약점 검사를 수행하고 있다. 이와 관련하여, Clair, Trivy, Anchore, Dagda와 같은 몇몇 툴은 Github를 통해 소스코드를 공개하고 있으며, 도커 엔터프라이즈 내의 도커 시큐리티와 같은 일부 서비스는 도커 등록 서비스와 결합된 유료 서비스로 제공되고 있다. 이러한, 취약점 분석 툴은 각각 다른 기술을 이용하고 있으나, 전반적인 취약점 분석 방법은 비슷하게 나타난다.
이러한, 취약점 분석 툴들은 CVE, CWE, NVD 등과 같은 여러 가지 취약점 소스로부터 취약점 리스트를 수집하며, 이러한 정보를 어플리케이션(혹은 패키지) 명칭과, 버전, CVE 정보 및 도커 이미지가 실행되는 OS와 함께 취약한 데이터베이스로 저장한다.
이와 같은, 종래의 취약점 분석 툴들은 도커 컨테이너(30)를 실행하지 않고, 설치된 패키지들과 의존성 정소들을 추출하게 된다. 그 과정에서, 여러 기술이 사용되며, 명칭 및 버전과 같은 정보들과 더불어 최대한 많은 정보를 패키지 및 의존성으로부터 추출한다. 최종적으로, 이러한 취약점 분석 툴들은 레포트를 생성하기 위해 마련되는 데이터베이스와 비교를 수행하여, 결과를 출력한다.
본 발명이 해결하고자 하는 기술적 과제는 도커 이미지로부터 도커 이미지가 생성되는데 이용된 지시 정보를 추출하고, 추출된 지시 정보를 분석하여 도커 이미지의 취약점을 검사하는 도커 이미지 취약점 검사 장치 및 방법을 제공하는 것이다.
본 발명의 일측면은, 도커 이미지의 매니페스트 파일을 분석하여 지시 정보를 추출하고, 상기 지시 정보로부터 나타나는 명칭에 따라, 상기 지시 정보를 분류하는 지시 정보 추출부; 상기 지시 정보의 명칭에 따라 분류된 지시 정보에 기초하여, 상기 지시 정보에 지정되는 파일을 복수개의 계층으로 매핑하는 파일 매핑부; 상기 복수개의 계층 각각에 대해 사전에 설정되는 추출 조건에 따라, 상기 복수개의 계층으로 분류된 상기 파일의 취약성을 설정하는 취약성 설정부; 및 사전에 마련되는 CVE 데이터베이스에 기초하여, 상기 파일에 대해 설정된 취약성에 따라, 상기 파일의 취약성을 확인하는 취약성 확인부를 포함할 수 있다.
또한, 상기 지시 정보 추출부는, 상기 도커 이미지에 마련된 매니페스트 파일을 추출하고, 상기 매니페스트 파일에서 나타나는 이력 필드로부터 하나 이상의 지시 정보를 추출할 수 있다.
또한, 상기 지시 정보 추출부는, 상기 매니페스트 파일의 분석에 의해 추출된 임의의 지시 정보를 상기 지시 정보의 명칭으로부터 나타나는 무 연산 기호의 유무에 따라, 무 연산 지시 정보 또는 연산 지시 정보로 분류할 수 있다.
또한, 상기 지시 정보 추출부는, 상기 매니페스트 파일의 분석에 의해 추출된 임의의 지시 정보가 무 연산 지시 정보로 분류된 경우, 상기 무 연산 지시 정보의 명칭에 따라, 상기 도커 이미지가 실행되는 운영체제의 임의의 파일을 나타내는 베이스 지시 정보 또는 상기 도커 이미지에 의해 임의의 파일을 생성하도록 마련되는 추가 지시 정보로 분류할 수 있다.
또한, 상기 지시 정보 추출부는, 상기 매니페스트 파일의 분석에 의해 추출된 임의의 지시 정보가 연산 지시 정보로 분류된 경우, 상기 연산 지시 정보로 분류된 지시 정보를, 상기 도커 이미지에 의해 임의의 파일을 실행하도록 마련되는 실행 지시 정보로 분류할 수 있다.
또한, 상기 파일 매핑부는, 상기 지시 정보의 명칭에 따라 임의의 지시 정보가, 상기 도커 이미지가 실행되는 운영체제의 임의의 파일을 나타내는 베이스 지시 정보로 분류되는 경우, 상기 베이스 지시 정보에 지정된 파일을 베이스 계층으로 매핑하고, 상기 지시 정보의 명칭에 따라 임의의 지시 정보가, 상기 도커 이미지에 의해 임의의 파일을 생성하도록 마련되는 추가 지시 정보로 분류되는 경우, 상기 추가 지시 정보에 지정된 파일을 추가 계층으로 매핑하며, 상기 지시 정보의 명칭에 따라 임의의 지시 정보가, 상기 도커 이미지에 의해 임의의 파일을 실행하도록 마련되는 실행 지시 정보로 분류되는 경우, 상기 실행 지시 정보에 지정된 파일을 실행 계층으로 매핑할 수 있다.
또한, 상기 취약성 설정부는, 상기 베이스 계층으로 매핑된 파일에 대해, 취약성을 안전으로 설정하고, 상기 추가 계층으로 매핑된 파일에 대해, 취약성을 취약으로 설정하며, 상기 실행 계층으로 매핑된 파일에 대해, 상기 실행 계층으로 매핑된 파일에 다운로드 명령어 또는 컴파일 명령어가 마련되는 경우, 취약성을 취약으로 설정할 수 있다.
본 발명의 다른 일측면은, 도커 파일 분석을 수행하는 도커 이미지 취약점 검사 장치를 이용한 도커 이미지 취약점 검사 방법에 있어서, 도커 이미지의 매니페스트 파일을 분석하여 지시 정보를 추출하고, 상기 지시 정보로부터 나타나는 명칭에 따라, 상기 지시 정보를 분류하는 단계; 상기 지시 정보의 명칭에 따라 분류된 지시 정보에 기초하여, 상기 지시 정보에 지정되는 파일을 복수개의 계층으로 매핑하는 단계; 상기 복수개의 계층 각각에 대해 사전에 설정되는 추출 조건에 따라, 상기 복수개의 계층으로 분류된 상기 파일의 취약성을 설정하는 단계; 및 사전에 마련되는 CVE 데이터베이스에 기초하여, 상기 파일에 대해 설정된 취약성에 따라, 상기 파일의 취약성을 확인하는 단계를 포함할 수 있다.
또한, 상기 지시 정보를 분류하는 단계는, 상기 도커 이미지에 마련된 매니페스트 파일을 추출하고, 상기 매니페스트 파일에서 나타나는 이력 필드로부터 하나 이상의 지시 정보를 추출할 수 있다.
또한, 상기 지시 정보를 분류하는 단계는, 상기 매니페스트 파일의 분석에 의해 추출된 임의의 지시 정보를 상기 지시 정보의 명칭으로부터 나타나는 무 연산 기호의 유무에 따라, 무 연산 지시 정보 또는 연산 지시 정보로 분류할 수 있다.
또한, 상기 지시 정보를 분류하는 단계는, 상기 매니페스트 파일의 분석에 의해 추출된 임의의 지시 정보가 무 연산 지시 정보로 분류된 경우, 상기 무 연산 지시 정보의 명칭에 따라, 상기 도커 이미지가 실행되는 운영체제의 임의의 파일을 나타내는 베이스 지시 정보 또는 상기 도커 이미지에 의해 임의의 파일을 생성하도록 마련되는 추가 지시 정보로 분류할 수 있다.
또한, 상기 지시 정보를 분류하는 단계는, 상기 매니페스트 파일의 분석에 의해 추출된 임의의 지시 정보가 연산 지시 정보로 분류된 경우, 상기 연산 지시 정보로 분류된 지시 정보를, 상기 도커 이미지에 의해 임의의 파일을 실행하도록 마련되는 실행 지시 정보로 분류할 수 있다.
또한, 상기 파일을 복수개의 계층으로 매핑하는 단계는, 상기 지시 정보의 명칭에 따라 임의의 지시 정보가, 상기 도커 이미지가 실행되는 운영체제의 임의의 파일을 나타내는 베이스 지시 정보로 분류되는 경우, 상기 베이스 지시 정보에 지정된 파일을 베이스 계층으로 매핑하고, 상기 지시 정보의 명칭에 따라 임의의 지시 정보가, 상기 도커 이미지에 의해 임의의 파일을 생성하도록 마련되는 추가 지시 정보로 분류되는 경우, 상기 추가 지시 정보에 지정된 파일을 추가 계층으로 매핑하며, 상기 지시 정보의 명칭에 따라 임의의 지시 정보가, 상기 도커 이미지에 의해 임의의 파일을 실행하도록 마련되는 실행 지시 정보로 분류되는 경우, 상기 실행 지시 정보에 지정된 파일을 실행 계층으로 매핑할 수 있다.
또한, 상기 파일의 취약성을 설정하는 단계는, 상기 베이스 계층으로 매핑된 파일에 대해, 취약성을 안전으로 설정하고, 상기 추가 계층으로 매핑된 파일에 대해, 취약성을 취약으로 설정하며, 상기 실행 계층으로 매핑된 파일에 대해, 상기 실행 계층으로 매핑된 파일에 다운로드 명령어 또는 컴파일 명령어가 마련되는 경우, 취약성을 취약으로 설정할 수 있다.
상술한 본 발명의 일측면에 따르면, 도커 이미지 취약점 검사 장치 및 방법을 제공함으로써, 도커 이미지로부터 도커 이미지가 생성되는데 이용된 지시 정보를 추출하고, 추출된 지시 정보를 분석하여 도커 이미지의 취약점을 검사할 수 있다.
도1은 도커 파일로부터 도커 이미지를 생성하는 과정을 나타낸 개략도이다.
도2는 본 발명의 일 실시예에 따른 도커 이미지 취약점 검사 장치를 포함하는 도커 이미지 취약점 검사 시스템의 개략도이다.
도3은 본 발명의 일 실시예에 따른 도커 이미지 취약점 검사 장치의 제어블록도이다.
도4는 도3의 도커 파일 매핑부에서 도커 파일을 복수개의 계층으로 매핑하는 과정을 나타낸 블록도이다.
도5는 도3의 취약성 확인부에서 도커 파일의 취약성을 확인하는 과정을 나타낸 블록도이다.
도6은 본 발명의 일 실시예에 따른 도커 이미지 취약점 검사 장치의 일 실시예를 나타낸 개략도이다.
도7은 본 발명의 일 실시예에 따른 도커 이미지 취약점 검사 방법의 순서도이다.
도8은 도7의 지시 정보를 분류하는 단계의 세부 순서도이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예와 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
이하, 도면들을 참조하여 본 발명의 바람직한 실시예들을 보다 상세하게 설명하기로 한다.
도2는 본 발명의 일 실시예에 따른 도커 이미지 취약점 검사 장치를 포함하는 도커 이미지 취약점 검사 시스템의 개략도이다.
도커 이미지 취약점 검사 시스템(1)은 도커 이미지 취약점 검사 장치(100)를 이용하여 도커 이미지(20)로부터 도커 파일(10)을 생성할 수 있다.
이를 위해, 도커 이미지 취약점 검사 장치(100)는 도커 이미지(20)에 마련되는 매니페스트 파일을 분석하여, 도커 파일(10)을 생성할 수 있다.
여기에서, 매니페스트 파일(Manifest File)은 컴퓨팅 시스템에서, 집합의 일부 메타 데이터를 포함할 수 있다. 예를 들어, 매니페스트 파일은 컴퓨팅 시스템에서 이용되는 임의의 파일에 대한, 명칭, 버전, 라이선스 및 연결 파일 등을 포함하도록 마련될 수 있다.
이와 관련하여, 도커 이미지(20)에 마련되는 매니페스트 파일은 도커 파일(10)에 의한 지시 정보, 지시 정보의 명칭, 지시 정보에 지정된 파일 등을 포함할 수 있다.
예를 들어, 도커 이미지(20)에 마련되는 매니페스트 파일은 history 필드를 포함할 수 있으며, history 필드는 복수개의 성분을 포함할 수 있고, 각각의 성분은 'created_by', 'created' 및 'empty_layer' 속성을 포함할 수 있다.
여기에서, 'created_by'는 임의의 시점에서 수행된 동작을 설명하도록 마련되는 속성을 의미할 수 있고, 'created'는 임의의 동작이 수행되는 시점을 나타내도록 마련되는 속성을 의미할 수 있으며, 'empty_layer'는 임의의 동작이 새로운 계층에서 생성되는지 여부를 결정하도록 마련되는 속성을 의미할 수 있다.
이와 관련하여, 도커 이미지(20)는 도커 이미지(20)가 실행되어 도커 컨테이너가 생성된 상태에서, 임의의 파일을 추가하거나, 변경하는 동작을 수행하거나, 또는 새로운 패키지를 설치하는 등의 변화가 발생하는 경우에, 새로운 도커 이미지(20)가 생성될 수 있으며, 이때, 임의의 파일을 추가하거나, 변경하는 동작을 수행하거나, 또는 새로운 패키지를 설치하는 등의 변경 사항은 새로운 계층으로 추가되어, 새로운 도커 이미지(20)가 생성될 수 있다.
이때, 도커 이미지(20)는 도커 데몬(Daemon)에 의해 도커 파일(10)이 실행되어 생성될 수 있으며, 이에 따라, 도커 데몬은 도커 파일(10)로부터 나타나는 지시 정보를 사전에 설정된 순서에 따라 실행하여, 도커 이미지(20)를 생성할 수 있다.
도커 이미지 취약점 검사 장치(100)는 공통 보안 취약성 및 노출(CVE: Common Vulnerabilities and Exposures)에 따라, 보안 취약성과 기타 정보 보안 노출 사항을 기록하여 규격화된 목록을 나타내는 CVE 데이터베이스에 기초하여, 도커 파일(10)의 취약성을 판단할 수 있다.
여기에서, 도커 이미지(20)는 임의의 도커 이미지(20)를 생성하기 위한, 명령어 또는 커맨드 등이 정의되는 도커 파일(10)을 실행시켜 생성될 수 있으며, 이때, 도커 이미지(20)는 도커 파일(10)에서, 실행되는 순서가 나타나도록 설정되는 지시 정보에 의해 생성될 수 있다.
이때, 도커 이미지(20)는 임의의 운영체제에서 실행되도록 마련될 수 있으며, 이러한 경우에, 도커 이미지(20)는 도커 이미지(20)가 실행되는 운영체제에 마련된 임의의 파일을 이용하도록 마련될 수 있다.
한편, 지시 정보는 임의의 연산 수행이 발생하지 않는 것을 나타내도록 마련되는 무 연산 기호에 따라, 무 연산 지시 정보 또는 연산 지시 정보로 분류될 수 있으며, 이때, 무 연산 지시 정보는 지시 정보의 명칭에 무 연산 기호가 존재하는 지시 정보를 의미할 수 있고, 연산 지시 정보는 지시 정보의 명칭에 무 연산 기호가 존재하지 않는 지시 정보를 의미할 수 있다.
여기에서, 무 연산 지시 정보는 도커 이미지(20)가 실행되는 운영체제에 마련된 임의의 파일을 나타내는 베이스 지시 정보 및 도커 이미지(20)에 의해 임의의 파일을 생성하도록 마련되는 추가 지시 정보로 분류될 수 있다.
또한, 연산 지시 정보는 도커 이미지(20)에 의해 임의의 파일을 실행하도록 마련되는 실행 지시 정보로 분류될 수 있다.
이와 같은, 지시 정보는 지시 정보의 명칭에 따라 분류될 수 있으며, 예를 들어, 무 연산 지시 정보와 연산 지시 정보를 구분하도록 마련되는 무 연산 기호는 #(NOP: No Operation)으로 나타날 수 있고, 이러한 경우에, 무 연산 지시 정보는 무 연산 기호의 일측에 베이스 지시 정보 또는 추가 지시 정보를 분류하는 명칭이 마련될 수 있다.
예를 들어, 베이스 지시 정보는 지시 정보의 명칭에 'From'을 포함할 수 있고, 추가 지시 정보는 지시 정보의 명칭에 'ADD' 또는 'COPY'를 포함할 수 있다. 또한, 실행 지시 정보는 지시 정보의 명칭에 'RUN'을 포함할 수 있다.
이와 같은, 지시 정보는 도커 이미지(20)에 마련되는 매니페스트 파일에도 포함될 수 있으며, 이때, 지시 정보는 매니페스트 파일에 나타나는 'created_by' 속성을 통해, 분류될 수 있다.
이에 따라, 도커 이미지 취약점 검사 장치(100)는 도커 이미지(20)로부터 나타나는 매니페스트 파일을 분석하여, 도커 파일(10)을 생성할 수 있다.
이하에서는, 도커 이미지 취약점 검사 장치(100)가 도커 이미지(20)로부터 도커 파일(10)을 생성하여, 도커 파일(10)에 나타나는 임의의 파일을 분류하고, 도커 이미지 취약점 검사 장치(100)가 분류된 도커 파일(10)의 취약성을 검사하는 과정을 상세히 설명하도록 한다.
도3은 본 발명의 일 실시예에 따른 도커 이미지 취약점 검사 장치의 제어블록도이다.
도커 이미지 취약점 검사 장치(100)는 지시 정보 추출부(110), 파일 매핑부(120), 취약성 설정부(130) 및 취약성 확인부(140)를 포함할 수 있다.
지시 정보 추출부(110)는 도커 이미지(20)의 매니페스트 파일을 분석하여 지시 정보를 추출할 수 있고, 지시 정보 추출부(110)는 지시 정보로부터 나타나는 명칭에 따라, 지시 정보를 분류할 수 있다.
이를 위해, 지시 정보 추출부(110)는 도커 이미지(20)에 마련된 매니페스트 파일을 추출할 수 있고, 지시 정보 추출부(110)는 매니페스트 파일에서 나타나는 이력 필드로부터 하나 이상의 지시 정보를 추출할 수 있다.
여기에서, 이력 필드는 도커 데몬에 의해 도커 파일(10)로부터 나타나는 지시 정보가 수행된 순서를 나타내는 것으로 이해할 수 있으며, 예를 들어, 이력 필드는 도커 이미지(20)의 매니페스트 파일에 마련되는 history 필드를 의미할 수 있다.
이에 따라, 지시 정보 추출부(110)는 매니페스트 파일의 분석에 의해 추출된 임의의 지시 정보를 지시 정보의 명칭으로부터 나타나는 무 연산 기호의 유무에 따라, 무 연산 지시 정보 또는 연산 지시 정보로 분류할 수 있다.
여기에서, 지시 정보 추출부(110)는 임의의 지시 정보의 명칭에 무 연산 기호가 존재하는 경우에, 해당 지시 정보를 무 연산 지시 정보로 분류할 수 있고, 지시 정보 추출부(110)는 임의의 지시 정보의 명칭에 무 연산 기호가 존재하지 않는 경우에, 해당 지시 정보를 연산 지시 정보로 분류할 수 있다.
이때, 지시 정보 추출부(110)는 매니페스트 파일의 분석에 의해 추출된 임의의 지시 정보가 무 연산 지시 정보로 분류된 경우에, 무 연산 지시 정보의 명칭에 따라, 도커 이미지(20)가 실행되는 운영체제의 임의의 파일을 나타내는 베이스 지시 정보 또는 도커 이미지(20)에 의해 임의의 파일을 생성하도록 마련되는 추가 지시 정보로 분류할 수 있다.
예를 들어, 지시 정보 추출부(110)는 매니페스트 파일의 분석에 의해 추출된 임의의 지시 정보가 무 연산 지시 정보로 분류되고, 무 연산 지시 정보의 명칭에 'FROM'을 포함하는 경우에, 해당 지시 정보를 베이스 지시 정보로 분류할 수 있고, 지시 정보 추출부(110)는 매니페스트 파일의 분석에 의해 추출된 임의의 지시 정보가 무 연산 지시 정보로 분류되고, 무 연산 지시 정보의 명칭에 'ADD' 또는 'COPY'를 포함하는 경우에, 해당 지시 정보를 추가 지시 정보로 분류할 수 있다.
한편, 지시 정보 추출부(110)는 매니페스트 파일의 분석에 의해 추출된 임의의 지시 정보가 연산 지시 정보로 분류된 경우에, 연산 지시 정보로 분류된 지시 정보를, 도커 이미지(20)에 의해 임의의 파일을 실행하도록 마련되는 실행 지시 정보로 분류할 수 있다.
파일 매핑부(120)는 지시 정보의 명칭에 따라 분류된 지시 정보에 기초하여, 지시 정보에 지정되는 파일을 복수개의 계층으로 매핑할 수 있다.
여기에서, 지시 정보에 지정되는 파일은 지시 정보에 의해 추가, 변경, 다운로드, 컴파일 및 실행되도록 지정되는 파일을 의미할 수 있으며, 지시 정보에 지정되는 파일은 도커 이미지(20)가 실행되는 운영체제에 마련되는 파일, 도커 이미지(20)에 마련되는 파일, 무선 또는 유선 네트워크를 통해 도커 이미지 취약점 검사 시스템(1)과 연결된 외부 서버에 저장된 파일 등을 포함할 수 있다.
이에 따라, 파일 매핑부(120)는 지시 정보의 명칭에 따라 임의의 지시 정보가 베이스 지시 정보로 분류되는 경우에, 베이스 지시 정보에 지정된 파일을 베이스 계층으로 매핑할 수 있다.
또한, 파일 매핑부(120)는 지시 정보의 명칭에 따라 임의의 지시 정보가 추가 지시 정보로 분류되는 경우에, 추가 지시 정보에 지정된 파일을 추가 계층으로 매핑할 수 있다.
또한, 파일 매핑부(120)는 지시 정보의 명칭에 따라 임의의 지시 정보가 실행 지시 정보로 분류되는 경우에, 실행 지시 정보에 지정된 파일을 실행 계층으로 매핑할 수 있다.
이와 관련하여, 파일 매핑부(120)는 임의의 지시 정보에 지정된 파일에 기초하여, 각 계층으로 분류되는 파일의 목록을 생성하는 것으로 매핑을 수행할 수 있다.
이러한 경우에, 파일 매핑부(120)는 각 계층에 매핑된 파일 리스트 및 원본 파일 주소를 포함하도록 매핑을 수행할 수 있다.
여기에서, 파일 리스트는 각 계층에 매핑된 파일의 명칭을 나열하여 나타내도록 마련될 수 있고, 원본 파일 주소는 파일 리스트로부터 나타나는 파일의 실제 위치를 나타내도록 마련될 수 있다.
취약성 설정부(130)는 복수개의 계층 각각에 대해 사전에 설정되는 추출 조건에 따라, 복수개의 계층으로 분류된 파일의 취약성을 설정할 수 있다.
여기에서, 복수개의 계층으로 분류된 파일의 취약성을 설정하는 것은 각 계층으로 매핑된 개별 파일의 취약 가능성이 존재하는 파일을 분류하는 것으로 이해할 수 있다.
이때, 취약성 설정부(130)는 베이스 계층으로 매핑된 파일에 대해, 취약성을 안전으로 설정할 수 있다. 여기에서, 베이스 계층으로 매핑된 파일은 도커 이미지(20)가 생성되도록 도커 파일(10)이 실행된 운영체제에 마련된 파일을 의미할 수 있으므로, 베이스 계층으로 매핑된 파일의 취약성은 안전한 것으로 이해할 수 있다.
또한, 취약성 설정부(130)는 추가 계층으로 매핑된 파일에 대해, 취약성을 취약으로 설정할 수 있다. 여기에서, 취약성을 취약으로 설정하는 것은 각 파일의 취약성이 취약할 가능성이 존재하는 것으로 이해할 수 있다.
또한, 취약성 설정부(130)는 실행 계층으로 매핑된 파일에 대해, 실행 계층으로 매핑된 파일에 다운로드 명령어 또는 컴파일 명령어가 마련되는 경우에, 취약성을 취약으로 설정할 수 있다.
여기에서, 다운로드 명령어는 네트워크를 기반으로 하여, 임의의 파일을 다운로드 하도록 마련되는 명령어를 의미할 수 있으며, 예를 들어, 다운로드 명령어는 'wget', 'curl', 'scp', 'ftp' 및 'nc' 등의 명령어를 포함할 수 있다.
또한, 컴파일 명령어는 어느 동작을 수행하도록 마련되는 명령어를 의미할 수 있으며, 예를 들어, 컴파일 명령어는 'make', 'build' 및 'setup' 등의 명령어를 포함할 수 있다.
취약성 확인부(140)는 사전에 마련되는 CVE 데이터베이스에 기초하여, 파일에 대해 설정된 취약성에 따라, 파일의 취약성을 확인할 수 있다.
이때, 취약성 확인부(140)는 취약성 설정부(130)에서 취약성이 취약한 것으로 설정된 파일을 CVE 데이터베이스에서 검색할 수 있으며, 취약성 확인부(140)는 취약성이 취약한 것으로 설정된 파일이 CVE 데이터베이스에 존재하는 경우에, 해당 파일에 대해, CVE 데이터베이스에 저장된 정보를 추출할 수 있다.
또한, 취약성 확인부(140)는 취약성이 취약한 것으로 설정된 파일이 CVE 데이터베이스에 존재하지 않는 경우에, 해당 파일의 취약성을 안전 또는 보류로 변경할 수 있다.
여기에서, CVE 데이터베이스에 존재하지 않는 파일의 취약성을 보류로 변경하는 것은, 해당 파일에 대한 취약성이 검증되지 않은 것으로 판단하는 것으로 이해할 수 있으며, 이에 따라, 취약성 확인부(140)는 CVE 데이터베이스에 존재하지 않는 파일의 취약성을 보류로 변경하여, 해당 파일을 CVE 데이터베이스에 등록할 수 있도록 해당 파일에 대한 연구의 필요성을 나타낼 수 있다.
한편, 취약성 확인부(140)는 CVE-BIN-TOOL을 이용하여, 취약성이 취약한 것으로 설정된 파일에 따른 임의의 어플리케이션 혹은 서비스의 이름 및 버전을 추출할 수도 있다.
도4는 도3의 도커 파일 매핑부에서 도커 파일을 복수개의 계층으로 매핑하는 과정을 나타낸 블록도이다.
지시 정보 추출부(110)는 도커 이미지(20)의 매니페스트 파일을 분석하여 지시 정보를 추출할 수 있고, 지시 정보 추출부(110)는 지시 정보로부터 나타나는 명칭에 따라, 지시 정보를 분류할 수 있다.
이를 위해, 지시 정보 추출부(110)는 도커 이미지(20)에 마련된 매니페스트 파일을 추출할 수 있고, 지시 정보 추출부(110)는 매니페스트 파일에서 나타나는 이력 필드로부터 하나 이상의 지시 정보를 추출할 수 있다.
이에 따라, 지시 정보 추출부(110)는 매니페스트 파일의 분석에 의해 추출된 임의의 지시 정보를 지시 정보의 명칭으로부터 나타나는 무 연산 기호의 유무에 따라, 무 연산 지시 정보 또는 연산 지시 정보로 분류할 수 있다.
이때, 지시 정보 추출부(110)는 매니페스트 파일의 분석에 의해 추출된 임의의 지시 정보가 무 연산 지시 정보로 분류된 경우에, 무 연산 지시 정보의 명칭에 따라, 도커 이미지(20)가 실행되는 운영체제의 임의의 파일을 나타내는 베이스 지시 정보(111) 또는 도커 이미지(20)에 의해 임의의 파일을 생성하도록 마련되는 추가 지시 정보(112)로 분류할 수 있다.
또한, 지시 정보 추출부(110)는 매니페스트 파일의 분석에 의해 추출된 임의의 지시 정보가 연산 지시 정보로 분류된 경우에, 연산 지시 정보로 분류된 지시 정보를, 도커 이미지(20)에 의해 임의의 파일을 실행하도록 마련되는 실행 지시 정보(113)로 분류할 수 있다.
파일 매핑부(120)는 지시 정보의 명칭에 따라 분류된 지시 정보에 기초하여, 지시 정보에 지정되는 파일을 복수개의 계층으로 매핑할 수 있다.
이에 따라, 파일 매핑부(120)는 지시 정보의 명칭에 따라 임의의 지시 정보가 베이스 지시 정보(111)로 분류되는 경우에, 베이스 지시 정보(111)에 지정된 파일을 베이스 계층(121)으로 매핑할 수 있다.
또한, 파일 매핑부(120)는 지시 정보의 명칭에 따라 임의의 지시 정보가 추가 지시 정보(112)로 분류되는 경우에, 추가 지시 정보(112)에 지정된 파일을 추가 계층(122)으로 매핑할 수 있다.
또한, 파일 매핑부(120)는 지시 정보의 명칭에 따라 임의의 지시 정보가 실행 지시 정보(113)로 분류되는 경우에, 실행 지시 정보(113)에 지정된 파일을 실행 계층(123)으로 매핑할 수 있다.
도5는 도3의 취약성 확인부에서 도커 파일의 취약성을 확인하는 과정을 나타낸 블록도이다.
취약성 설정부(130)는 복수개의 계층 각각에 대해 사전에 설정되는 추출 조건에 따라, 복수개의 계층으로 분류된 파일의 취약성을 설정할 수 있다.
이때, 취약성 설정부(130)는 베이스 계층으로 매핑된 파일에 대해, 취약성을 안전으로 설정할 수 있다.
또한, 취약성 설정부(130)는 추가 계층으로 매핑된 파일에 대해, 취약성을 취약으로 설정할 수 있다.
또한, 취약성 설정부(130)는 실행 계층으로 매핑된 파일에 대해, 실행 계층으로 매핑된 파일에 다운로드 명령어 또는 컴파일 명령어가 마련되는 경우에, 취약성을 취약으로 설정할 수 있다.
취약성 확인부(140)는 사전에 마련되는 CVE 데이터베이스에 기초하여, 파일에 대해 설정된 취약성에 따라, 파일의 취약성을 확인할 수 있다.
이때, 취약성 확인부(140)는 취약성 설정부(130)에서 취약성이 취약한 것으로 설정된 파일을 CVE 데이터베이스에서 검색할 수 있으며, 취약성 확인부(140)는 취약성이 취약한 것으로 설정된 파일이 CVE 데이터베이스에 존재하는 경우에, 해당 파일에 대해, CVE 데이터베이스에 저장된 정보를 추출할 수 있다.
도6은 본 발명의 일 실시예에 따른 도커 이미지 취약점 검사 장치의 일 실시예를 나타낸 개략도이다.
도6을 참조하면, 도커 이미지(20)의 리버싱(Reversing)을 통해 도커 파일(10)을 생성하고, 도커 파일(10)을 매핑(mapping)하여, 매핑된 파일에 대한 취약성을 설정할 수 있다. 이에 따라, 취약성이 취약한 것으로 나타나는 파일을 추출할 수 있다(Potentially Vulnerable Extraction). 이후, CVE-BIN-TOOL을 이용하여 추출된 파일과 관련된 어플리케이션 또는 서비스의 이름 및 버전을 추출할 수 있으며, 이를, CVE 데이터베이스와 비교하여, 취약성을 확인할 수 있다.
한편, 도6의 Trivy는 트리비 스캐너(Trivy Scanner)와 같은 취약점 판단 과정을 의미하는 것일 수 있다.
도7은 본 발명의 일 실시예에 따른 도커 이미지 취약점 검사 방법의 순서도이다.
본 발명의 일 실시예에 따른 도커 이미지 취약점 검사 방법은 도 2에 도시된 도커 이미지 취약점 검사 장치(100)와 실질적으로 동일한 구성 상에서 진행되므로, 도 2의 도커 이미지 취약점 검사 장치(100)와 동일한 구성요소에 대해 동일한 도면 부호를 부여하고, 반복되는 설명은 생략하기로 한다.
도커 이미지 취약점 검사 방법은 지시 정보를 분류하는 단계(600), 파일을 복수개의 계층으로 매핑하는 단계(610), 파일의 취약성을 설정하는 단계(620) 및 파일의 취약성을 확인하는 단계(630)를 포함할 수 있다.
지시 정보를 분류하는 단계(600)는 지시 정보 추출부(110)가 도커 이미지(20)의 매니페스트 파일을 분석하여 지시 정보를 추출하고, 지시 정보로부터 나타나는 명칭에 따라, 지시 정보를 분류하는 단계일 수 있다.
파일을 복수개의 계층으로 매핑하는 단계(610)는 파일 매핑부(120)가 지시 정보의 명칭에 따라 분류된 지시 정보에 기초하여, 지시 정보에 지정되는 파일을 복수개의 계층으로 매핑하는 단계일 수 있다.
파일의 취약성을 설정하는 단계(620)는 취약성 설정부(130)가 복수개의 계층 각각에 대해 사전에 설정되는 추출 조건에 따라, 복수개의 계층으로 분류된 파일의 취약성을 설정하는 단계일 수 있다.
파일의 취약성을 확인하는 단계(630)는 취약성 확인부(140)가 사전에 마련되는 CVE 데이터베이스에 기초하여, 파일에 대해 설정된 취약성에 따라, 파일의 취약성을 확인하는 단계일 수 있다.
도8은 도7의 지시 정보를 분류하는 단계의 세부 순서도이다.
지시 정보를 분류하는 단계(600)는 지시 정보를 추출하는 단계(601), 무 연산 기호가 존재하는지 판단하는 단계(602), 무 연산 지시 정보로 분류하는 단계(603), 베이스 지시 정보 또는 추가 지시 정보로 분류하는 단계(604), 연산 지시 정보로 분류하는 단계(605) 및 실행 지시 정보로 분류하는 단계(606)를 포함할 수 있다.
지시 정보를 추출하는 단계(601)는 지시 정보 추출부(110)가 도커 이미지(20)에 마련된 매니페스트 파일을 추출하고, 매니페스트 파일에서 나타나는 이력 필드로부터 하나 이상의 지시 정보를 추출하는 단계일 수 있다.
무 연산 기호가 존재하는지 판단하는 단계(602)는 지시 정보 추출부(110)가 매니페스트 파일의 분석에 의해 추출된 임의의 지시 정보의 명칭으로부터 나타나는 무 연산 기호의 유무를 판단하는 단계일 수 있다.
무 연산 지시 정보로 분류하는 단계(603)는 지시 정보 추출부(110)가 매니페스트 파일의 분석에 의해 추출된 임의의 지시 정보의 명칭에 무 연산 기호가 존재하는 경우에, 해당 지시 정보를 무 연산 지시 정보로 분류하는 단계일 수 있다.
베이스 지시 정보 또는 추가 지시 정보로 분류하는 단계(604)는 지시 정보 추출부(110)가 매니페스트 파일의 분석에 의해 추출된 임의의 지시 정보가 무 연산 지시 정보로 분류된 경우에, 무 연산 지시 정보의 명칭에 따라, 도커 이미지(20)가 실행되는 운영체제의 임의의 파일을 나타내는 베이스 지시 정보 또는 도커 이미지(20)에 의해 임의의 파일을 생성하도록 마련되는 추가 지시 정보로 분류하는 단계일 수 있다.
연산 지시 정보로 분류하는 단계(605)는 지시 정보 추출부(110)가 매니페스트 파일의 분석에 의해 추출된 임의의 지시 정보의 명칭에 무 연산 기호가 존재하지 않는 경우에, 해당 지시 정보를 연산 지시 정보로 분류하는 단계일 수 있다.
실행 지시 정보로 분류하는 단계(606)는 지시 정보 추출부(110)가 매니페스트 파일의 분석에 의해 추출된 임의의 지시 정보가 연산 지시 정보로 분류된 경우에, 연산 지시 정보로 분류된 지시 정보를, 도커 이미지(20)에 의해 임의의 파일을 실행하도록 마련되는 실행 지시 정보로 분류하는 단계일 수 있다.
이상에서는 실시예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
1: 도커 이미지 취약점 검사 시스템
10: 도커 파일
20: 도커 이미지
30: 도커 컨테이너
40: 도커 허브
100: 도커 이미지 취약점 검사 장치

Claims (14)

  1. 도커 이미지의 매니페스트 파일을 분석하여 지시 정보를 추출하고, 상기 지시 정보로부터 나타나는 명칭에 따라, 상기 지시 정보를 분류하는 지시 정보 추출부;
    상기 지시 정보의 명칭에 따라 분류된 지시 정보에 기초하여, 상기 지시 정보에 지정되는 파일을 복수개의 계층으로 매핑하는 파일 매핑부;
    상기 복수개의 계층 각각에 대해 사전에 설정되는 추출 조건에 따라, 상기 복수개의 계층으로 분류된 상기 파일의 취약성을 설정하는 취약성 설정부; 및
    사전에 마련되는 CVE 데이터베이스에 기초하여, 상기 파일에 대해 설정된 취약성에 따라, 상기 파일의 취약성을 확인하는 취약성 확인부를 포함하는, 도커 이미지 취약점 검사 장치.
  2. 제1항에 있어서, 상기 지시 정보 추출부는,
    상기 도커 이미지에 마련된 매니페스트 파일을 추출하고, 상기 매니페스트 파일에서 나타나는 이력 필드로부터 하나 이상의 지시 정보를 추출하는, 도커 이미지 취약점 검사 장치.
  3. 제1항에 있어서, 상기 지시 정보 추출부는,
    상기 매니페스트 파일의 분석에 의해 추출된 임의의 지시 정보를 상기 지시 정보의 명칭으로부터 나타나는 무 연산 기호의 유무에 따라, 무 연산 지시 정보 또는 연산 지시 정보로 분류하는, 도커 이미지 취약점 검사 장치.
  4. 제3항에 있어서, 상기 지시 정보 추출부는,
    상기 매니페스트 파일의 분석에 의해 추출된 임의의 지시 정보가 무 연산 지시 정보로 분류된 경우, 상기 무 연산 지시 정보의 명칭에 따라, 상기 도커 이미지가 실행되는 운영체제의 임의의 파일을 나타내는 베이스 지시 정보 또는 상기 도커 이미지에 의해 임의의 파일을 생성하도록 마련되는 추가 지시 정보로 분류하는, 도커 이미지 취약점 검사 장치.
  5. 제3항에 있어서, 상기 지시 정보 추출부는,
    상기 매니페스트 파일의 분석에 의해 추출된 임의의 지시 정보가 연산 지시 정보로 분류된 경우, 상기 연산 지시 정보로 분류된 지시 정보를, 상기 도커 이미지에 의해 임의의 파일을 실행하도록 마련되는 실행 지시 정보로 분류하는, 도커 이미지 취약점 검사 장치.
  6. 제1항에 있어서, 상기 파일 매핑부는,
    상기 지시 정보의 명칭에 따라 임의의 지시 정보가, 상기 도커 이미지가 실행되는 운영체제의 임의의 파일을 나타내는 베이스 지시 정보로 분류되는 경우, 상기 베이스 지시 정보에 지정된 파일을 베이스 계층으로 매핑하고,
    상기 지시 정보의 명칭에 따라 임의의 지시 정보가, 상기 도커 이미지에 의해 임의의 파일을 생성하도록 마련되는 추가 지시 정보로 분류되는 경우, 상기 추가 지시 정보에 지정된 파일을 추가 계층으로 매핑하며,
    상기 지시 정보의 명칭에 따라 임의의 지시 정보가, 상기 도커 이미지에 의해 임의의 파일을 실행하도록 마련되는 실행 지시 정보로 분류되는 경우, 상기 실행 지시 정보에 지정된 파일을 실행 계층으로 매핑하는, 도커 이미지 취약점 검사 장치.
  7. 제6항에 있어서, 상기 취약성 설정부는,
    상기 베이스 계층으로 매핑된 파일에 대해, 취약성을 안전으로 설정하고,
    상기 추가 계층으로 매핑된 파일에 대해, 취약성을 취약으로 설정하며,
    상기 실행 계층으로 매핑된 파일에 대해, 상기 실행 계층으로 매핑된 파일에 다운로드 명령어 또는 컴파일 명령어가 마련되는 경우, 취약성을 취약으로 설정하는, 도커 이미지 취약점 검사 장치.
  8. 도커 파일 분석을 수행하는 도커 이미지 취약점 검사 장치를 이용한 도커 이미지 취약점 검사 방법에 있어서,
    도커 이미지의 매니페스트 파일을 분석하여 지시 정보를 추출하고, 상기 지시 정보로부터 나타나는 명칭에 따라, 상기 지시 정보를 분류하는 단계;
    상기 지시 정보의 명칭에 따라 분류된 지시 정보에 기초하여, 상기 지시 정보에 지정되는 파일을 복수개의 계층으로 매핑하는 단계;
    상기 복수개의 계층 각각에 대해 사전에 설정되는 추출 조건에 따라, 상기 복수개의 계층으로 분류된 상기 파일의 취약성을 설정하는 단계; 및
    사전에 마련되는 CVE 데이터베이스에 기초하여, 상기 파일에 대해 설정된 취약성에 따라, 상기 파일의 취약성을 확인하는 단계를 포함하는, 도커 이미지 취약점 검사 방법.
  9. 제8항에 있어서, 상기 지시 정보를 분류하는 단계는,
    상기 도커 이미지에 마련된 매니페스트 파일을 추출하고, 상기 매니페스트 파일에서 나타나는 이력 필드로부터 하나 이상의 지시 정보를 추출하는, 도커 이미지 취약점 검사 방법.
  10. 제8항에 있어서, 상기 지시 정보를 분류하는 단계는,
    상기 매니페스트 파일의 분석에 의해 추출된 임의의 지시 정보를 상기 지시 정보의 명칭으로부터 나타나는 무 연산 기호의 유무에 따라, 무 연산 지시 정보 또는 연산 지시 정보로 분류하는, 도커 이미지 취약점 검사 방법.
  11. 제10항에 있어서, 상기 지시 정보를 분류하는 단계는,
    상기 매니페스트 파일의 분석에 의해 추출된 임의의 지시 정보가 무 연산 지시 정보로 분류된 경우, 상기 무 연산 지시 정보의 명칭에 따라, 상기 도커 이미지가 실행되는 운영체제의 임의의 파일을 나타내는 베이스 지시 정보 또는 상기 도커 이미지에 의해 임의의 파일을 생성하도록 마련되는 추가 지시 정보로 분류하는, 도커 이미지 취약점 검사 방법.
  12. 제10항에 있어서, 상기 지시 정보를 분류하는 단계는,
    상기 매니페스트 파일의 분석에 의해 추출된 임의의 지시 정보가 연산 지시 정보로 분류된 경우, 상기 연산 지시 정보로 분류된 지시 정보를, 상기 도커 이미지에 의해 임의의 파일을 실행하도록 마련되는 실행 지시 정보로 분류하는, 도커 이미지 취약점 검사 방법.
  13. 제8항에 있어서, 상기 파일을 복수개의 계층으로 매핑하는 단계는,
    상기 지시 정보의 명칭에 따라 임의의 지시 정보가, 상기 도커 이미지가 실행되는 운영체제의 임의의 파일을 나타내는 베이스 지시 정보로 분류되는 경우, 상기 베이스 지시 정보에 지정된 파일을 베이스 계층으로 매핑하고,
    상기 지시 정보의 명칭에 따라 임의의 지시 정보가, 상기 도커 이미지에 의해 임의의 파일을 생성하도록 마련되는 추가 지시 정보로 분류되는 경우, 상기 추가 지시 정보에 지정된 파일을 추가 계층으로 매핑하며,
    상기 지시 정보의 명칭에 따라 임의의 지시 정보가, 상기 도커 이미지에 의해 임의의 파일을 실행하도록 마련되는 실행 지시 정보로 분류되는 경우, 상기 실행 지시 정보에 지정된 파일을 실행 계층으로 매핑하는, 도커 이미지 취약점 검사 방법.
  14. 제13항에 있어서, 상기 파일의 취약성을 설정하는 단계는,
    상기 베이스 계층으로 매핑된 파일에 대해, 취약성을 안전으로 설정하고,
    상기 추가 계층으로 매핑된 파일에 대해, 취약성을 취약으로 설정하며,
    상기 실행 계층으로 매핑된 파일에 대해, 상기 실행 계층으로 매핑된 파일에 다운로드 명령어 또는 컴파일 명령어가 마련되는 경우, 취약성을 취약으로 설정하는, 도커 이미지 취약점 검사 방법.

KR1020200128988A 2020-10-06 2020-10-06 도커 파일 분석을 수행하는 도커 이미지 취약점 검사 장치 및 방법 KR102380434B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200128988A KR102380434B1 (ko) 2020-10-06 2020-10-06 도커 파일 분석을 수행하는 도커 이미지 취약점 검사 장치 및 방법
US17/382,771 US20220108023A1 (en) 2020-10-06 2021-07-22 Docker image vulnerability inspection device and method for performing docker file analysis

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200128988A KR102380434B1 (ko) 2020-10-06 2020-10-06 도커 파일 분석을 수행하는 도커 이미지 취약점 검사 장치 및 방법

Publications (2)

Publication Number Publication Date
KR102380434B1 true KR102380434B1 (ko) 2022-03-31
KR102380434B9 KR102380434B9 (ko) 2023-02-23

Family

ID=80932337

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200128988A KR102380434B1 (ko) 2020-10-06 2020-10-06 도커 파일 분석을 수행하는 도커 이미지 취약점 검사 장치 및 방법

Country Status (2)

Country Link
US (1) US20220108023A1 (ko)
KR (1) KR102380434B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11706239B2 (en) * 2020-08-26 2023-07-18 Cisco Technology, Inc. Systems and methods for detecting vulnerabilities in network processes during runtime
TWI805514B (zh) * 2022-10-21 2023-06-11 台灣大哥大股份有限公司 溯源系統及其方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200097662A1 (en) * 2018-09-25 2020-03-26 Ca, Inc. Combined threat score for container images
JP2020154861A (ja) * 2019-03-20 2020-09-24 三菱電機インフォメーションネットワーク株式会社 コンテナイメージ検証装置、コンテナイメージ検証方法、およびコンテナイメージ検証プログラム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8412945B2 (en) * 2011-08-09 2013-04-02 CloudPassage, Inc. Systems and methods for implementing security in a cloud computing environment
US10223534B2 (en) * 2015-10-15 2019-03-05 Twistlock, Ltd. Static detection of vulnerabilities in base images of software containers
WO2017106726A1 (en) * 2015-12-18 2017-06-22 Amazon Technologies, Inc. Software container registry service
US10032032B2 (en) * 2015-12-18 2018-07-24 Amazon Technologies, Inc. Software container registry inspection
US9825982B1 (en) * 2016-04-29 2017-11-21 Ciena Corporation System and method for monitoring network vulnerabilities
US10402569B2 (en) * 2016-10-20 2019-09-03 International Business Machines Corporation Code package processing
US10803177B2 (en) * 2017-07-19 2020-10-13 International Business Machines Corporation Compliance-aware runtime generation based on application patterns and risk assessment
US11960609B2 (en) * 2019-10-21 2024-04-16 Snyk Limited Package dependencies representation
EP3903183A1 (en) * 2019-02-05 2021-11-03 Rezilion Ltd Automatic mitigation of corrupted or compromised compute resources
US11463478B2 (en) * 2019-10-29 2022-10-04 International Business Machines Corporation Remediation strategy optimization for development, security and operations (DevSecOps)
US11874929B2 (en) * 2019-12-09 2024-01-16 Accenture Global Solutions Limited Method and system for automatically identifying and correcting security vulnerabilities in containers
KR102340021B1 (ko) * 2020-06-08 2021-12-21 한국전자통신연구원 컨테이너 이미지에 대한 보안 가시성 제공 방법 및 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200097662A1 (en) * 2018-09-25 2020-03-26 Ca, Inc. Combined threat score for container images
JP2020154861A (ja) * 2019-03-20 2020-09-24 三菱電機インフォメーションネットワーク株式会社 コンテナイメージ検証装置、コンテナイメージ検証方法、およびコンテナイメージ検証プログラム

Also Published As

Publication number Publication date
KR102380434B9 (ko) 2023-02-23
US20220108023A1 (en) 2022-04-07

Similar Documents

Publication Publication Date Title
US9489687B2 (en) Methods and systems for managing software development
JP5042315B2 (ja) ソースコード内のセキュリティ脆弱性の検出
US7836440B2 (en) Dependency-based grouping to establish class identity
KR102340021B1 (ko) 컨테이너 이미지에 대한 보안 가시성 제공 방법 및 장치
EP0707264A2 (en) System and method for determining whether a software package conforms to packaging rules and requirements
US20120192279A1 (en) Malware detection using external call characteristics
US20100241469A1 (en) System and method for performing software due diligence using a binary scan engine and parallel pattern matching
KR102380434B1 (ko) 도커 파일 분석을 수행하는 도커 이미지 취약점 검사 장치 및 방법
EP3262557A1 (en) A method to identify known compilers functions, libraries and objects inside files and data items containing an executable code
CN105631337A (zh) 控制机器代码的本机图像访问操作系统资源的系统及方法
US20220198003A1 (en) Detecting added functionality in open source package
KR102073068B1 (ko) 어플리케이션 클러스터링 방법 및 그 장치
JP7119096B2 (ja) ライセンス検証装置
Tang et al. Towards understanding third-party library dependency in c/c++ ecosystem
CN111913878A (zh) 基于程序分析结果的字节码插桩方法、装置及存储介质
US20220058260A1 (en) Binary image stack cookie protection
KR102011725B1 (ko) 악성코드 검출을 위한 화이트리스트 구축 방법 및 이를 수행하기 위한 기록매체 및 장치
CN110659063A (zh) 软件项目重构方法、装置、计算机装置及存储介质
Englisch et al. Efficiently testing autosar software based on an automatically generated knowledge base
CN111143787B (zh) 提高Java软件破解难度的方法及装置、验证方法及验证装置
WO2014112303A1 (ja) データ更新漏れ検査装置、データ更新漏れ検査方法、データ更新漏れ検査プログラム
CN114527993A (zh) 应用程序部署方法、装置、设备及介质
CN117235746B (zh) 一种基于多维ast融合检测的源代码安全管控平台
US11940870B2 (en) Method and device for automatically detecting potential failures in mobile applications
Feichtner et al. Mind the Gap: Finding what Updates have (really) changed in Android Applications

Legal Events

Date Code Title Description
GRNT Written decision to grant
G170 Re-publication after modification of scope of protection [patent]