CN110187955A - 一种动静态结合的Docker容器内容安全性检测方法和装置 - Google Patents

一种动静态结合的Docker容器内容安全性检测方法和装置 Download PDF

Info

Publication number
CN110187955A
CN110187955A CN201910445583.1A CN201910445583A CN110187955A CN 110187955 A CN110187955 A CN 110187955A CN 201910445583 A CN201910445583 A CN 201910445583A CN 110187955 A CN110187955 A CN 110187955A
Authority
CN
China
Prior art keywords
domain name
loophole
docker container
address
malicious
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
CN201910445583.1A
Other languages
English (en)
Inventor
黄诚
谢逸
高健
彭桢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sichuan University
Sun Yat Sen University
Original Assignee
Sichuan University
Sun Yat Sen University
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 Sichuan University, Sun Yat Sen University filed Critical Sichuan University
Priority to CN201910445583.1A priority Critical patent/CN110187955A/zh
Publication of CN110187955A publication Critical patent/CN110187955A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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
    • 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/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请涉及计算机技术领域,提供了一种动静态结合的Docker容器内容安全性检测方法和装置。所述方法应用于服务器,所述方法包括:获取目标Docker容器的原始镜像,所述目标Docker容器为待检测的Docker容器;对所述原始镜像进行漏洞检测,得到静态检测结果;获取所述目标Docker容器在运行时产生的日志;从所述日志中提取出所述目标Docker容器在运行时访问的外部IP地址和请求DNS解析的域名;利用恶意IP情报数据对提取出的外部IP地址进行恶意性检测,得到第一动态检测结果;利用恶意域名情报数据对提取出的域名进行恶意性检测,得到第二动态检测结果;将提取出的域名输入DGA域名识别模型,以确定提取出的域名是否为DGA域名,得到第三动态检测结果。

Description

一种动静态结合的Docker容器内容安全性检测方法和装置
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种动静态结合的Docker容器内容安全性检测方法和装置。
背景技术
Docker是一款依赖于Linux内核的容器引擎,可以快速实现应用程序基于容器的自动化部署。Docker容器主要由客户端、守护进程、镜像、容器和镜像仓库五部分组成,提供了简单而轻量的建模方式。其中,镜像一方面是面向对象中的类,相当于模板;另一方面又相当于一个文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。而容器相当于是依据镜像这个模板而创建出的实体。
在Docker容器技术飞速发展的同时,Docker容器安全问题也日益成为广大用户关注的焦点,然而针对Docker容器的多种安全问题,当前还没有一种有效的检测方法。
发明内容
有鉴于此,本申请实施例提供一种动静态结合的Docker容器内容安全性检测方法和装置,旨在从多方面来对Docker容器的安全性进行检测,以提高对安全问题的检出率。
本申请实施例第一方面提供了一种动静态结合的Docker容器内容安全性检测方法,所述方法应用于服务器,所述方法包括:
获取目标Docker容器的原始镜像,所述目标Docker容器为待检测的Docker容器;
对所述原始镜像进行漏洞检测,得到静态检测结果;
获取所述目标Docker容器在运行时产生的日志;
从所述日志中提取出所述目标Docker容器在运行时访问的外部IP地址和请求DNS解析的域名;
利用恶意IP情报数据对提取出的外部IP地址进行恶意性检测,得到第一动态检测结果;
利用恶意域名情报数据对提取出的域名进行恶意性检测,得到第二动态检测结果;
将提取出的域名输入DGA域名识别模型,以确定提取出的域名是否为DGA域名,得到第三动态检测结果。
可选地,所述方法还包括:
获取多个样本域名,所述多个样本域名中的每个样本域名携带标记,该标记表征该样本域名是否为一个DGA域名;
以多个所述样本域名为输入,对预设模型进行训练,得到所述DGA域名识别模型,所述DGA域名识别模型用于识别单个域名是否为一个DGA域名。
可选地,对所述原始镜像进行漏洞检测,得到静态检测结果,包括:
获取所述原始镜像的已安装程序列表和系统信息;
通过已有公开漏洞库接口检测所述原始镜像存在的漏洞;
确定所述原始镜像存在的漏洞中每个漏洞的漏洞ID;
根据每个漏洞的漏洞ID,获取该漏洞的漏洞详情,将所述原始镜像存在的漏洞中所有漏洞的漏洞详情作为所述静态检测结果。
可选地,所述方法还包括:
根据所述第一动态检测结果,对具有恶意性的IP地址的进行定位,得到该具有恶意性的IP地址的地理位置信息;
对具有恶意性的IP地址的地理信息进行可视化,得到关于具有恶意性的IP地址的可视化结果。
可选地,所述服务器与客户端通信连接;获取目标Docker容器的原始镜像以及获取所述目标Docker容器在运行时产生的日志,包括:
接收所述客户端发送的所述目标Docker容器的原始镜像以及,所述目标Docker容器在运行时产生的日志;
所述方法还包括:
根据所述第二动态检测结果和所述第三动态检测结果,生成关于提取出的域名的综合检测结果;
将所述关于具有恶意性的IP地址的可视化结果以及所述关于提取出的域名的综合检测结果发送给所述客户端。
可选地,所述服务器与数据库通信连接;所述方法还包括:
将所述静态检测结果、所述第一动态检测结果、所述第二动态检测结果以及所述第三动态检测结果存入数据库,以使所述客户端通过所述数据库获得所述静态检测结果、所述第一动态检测结果、所述第二动态检测结果以及所述第三动态检测结果。
本申请实施例第二方面提供了一种动静态结合的Docker容器内容安全性检测装置,所述装置应用于服务器,所述装置包括:
第一获取模块,用于获取目标Docker容器的原始镜像,所述目标Docker容器为待检测的Docker容器;
静态检测模块,用于对所述原始镜像进行漏洞检测,得到静态检测结果;
第二获取模块,用于获取所述目标Docker容器在运行时产生的日志;
提取模块,用于从所述日志中提取出所述目标Docker容器在运行时访问的外部IP地址和请求DNS解析的域名;
第一动态检测模块,利用恶意IP情报数据对提取出的外部IP地址进行恶意性检测,得到第一动态检测结果;
第二动态检测模块,用于利用恶意域名情报数据对提取出的域名进行恶意性检测,得到第二动态检测结果;
第三动态检测模块,用于将提取出的域名输入DGA域名识别模型,以确定提取出的域名是否为DGA域名,得到第三动态检测结果。
可选地,所述装置还包括:
第三获取模块,用于获取多个样本域名,所述多个样本域名中的每个样本域名携带标记,该标记表征该样本域名是否为一个DGA域名;
训练模块,用于以多个所述样本域名为输入,对预设模型进行训练,得到所述DGA域名识别模型,所述DGA域名识别模型用于识别单个域名是否为一个DGA域名。
可选地,所述静态检测模块包括:
第一获取子模块,用于获取所述原始镜像的已安装程序列表和系统信息;
检测子模块,用于通过已有公开漏洞库接口检测所述原始镜像存在的漏洞;
确定子模块,用于确定所述原始镜像存在的漏洞中每个漏洞的漏洞ID;
第二获取子模块,用于根据每个漏洞的漏洞ID,获取该漏洞的漏洞详情,将所述原始镜像存在的漏洞中所有漏洞的漏洞详情作为所述静态检测结果。
可选地,所述装置还包括:
定位模块,用于根据所述第一动态检测结果,对具有恶意性的IP地址的进行定位,得到该具有恶意性的IP地址的地理位置信息;
可视化模块,用于对具有恶意性的IP地址的地理信息进行可视化,得到关于具有恶意性的IP地址的可视化结果。
采用本申请实施例提供的动静态结合的Docker容器内容安全性检测方法,服务器对目标Docker容器的原始镜像进行漏洞检测,对从目标Docker容器的日志中提取出的外部IP地址和域名进行恶意性检测,还将从目标Docker容器的日志中提取出的域名输入DGA域名识别模型,以确定提取出的域名是否为DGA域名。
一方面,服务器不仅对目标Docker容器的原始镜像进行了漏洞检测,得到静态检测结果,还通过从目标Docker容器的日志中提取出外部IP地址和域名,对提取出的外部IP地址和域名进行检测,实现对目标Docker容器的网络行为的检测。本申请实施例提供的方法中,服务器从多方面对目标Docker容器的安全性进行了检测,提高了对目标Docker容器的安全问题的检出率。
另一方面,考虑到攻击者可能会借助域名生成算法DGA在短时间内,生成用来作为域名的大量伪随机字符串,然后随机选择部分域名注册并指向C&C服务器。而攻击者在短时间内生成的大量DGA域名难以及时地被情报数据库收录,因此利用情报数据难以检测出DGA域名。基于上述考虑,本申请实施例提供的方法中,服务器利用了DGA域名识别模型,对从目标Docker容器的日志中提取出的域名进行检测,以预测该域名是否为DGA域名,从而进一步提升了该服务器对目标Docker容器安全性检测的全面性,也进一步高了对目标Docker容器的安全问题的检出率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提出的动静态结合的Docker容器内容安全性检测方法的流程图;
图2是本申请一实施例提出的对原始镜像进行漏洞检测的方法的流程图;
图3是本申请一实施例提出的标记了具有恶意性的IP地址的世界地图;
图4是本申请一实施例提出的对DGA域名识别模型的训练和使用过程示意图;
图5是本申请一实施例提出的关于动态检测部分的流程图;
图6是本申请一实施例提供的动静态结合的Docker容器内容安全性检测装置的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在Docker容器技术飞速发展的同时,Docker容器安全问题也日益成为广大用户关注的焦点,越来越多潜在的Docker容器安全问题开始浮现。本申请发明人发现,镜像的安全问题主要体现于:开发者构建镜像时容易遗留下一些数据库密码之类的敏感信息;不论是来自官方的镜像还是社区的镜像,镜像本身也会存在许多漏洞可能造成风险;镜像虽然在传输和部署方面非常高效,但是也为病毒、后门之类的恶意文件的传播提供了方便。容器的安全问题主要体现于:容器运行时本地与网络行为的威胁,比如Docker容器内的后门文件会主动或以用户触发形式向外部连接恶意IP或发出恶意的DNS请求从而产生不安全的网络连接。为了解决发明人所发现的上述几种关于Docker容器的安全问题,发明人提出以下技术方案。
参考图1,图1是本申请一实施例提出的动静态结合的Docker容器内容安全性检测方法的流程图,该方法应用于服务器。如图1所示,该方法包括以下步骤:
S11:获取目标Docker容器的原始镜像,所述目标Docker容器为待检测的Docker容器。
本实施例中,目标Docker容器的原始镜像是指:创建该目标Docker容器时所利用的镜像。
本实施例中,服务器可与客户端通信连接,服务器可以通过接收所述客户端发送的所述目标Docker容器的原始镜像,从而获取所述目标Docker容器的原始镜像。由于服务器与客户端连接,服务器接收客户端发送的目标Docker容器的原始镜像,从而对客户端本地环境中的Docker容器安全性进行检测,一方面,客户端可以借助服务器对本地环境中的Docker容器安全性进行检测,客户端所在主机不必执行检测动作,减小客户端运行压力。另一方面,服务器可以对多个客户端所发送的原始镜像中检测出的漏洞信息进行收集整理,以进一步提高服务器自身的检测能力。
示例地,客户端向用户提供UI(User Interface)界面,并侦测本地环境(即该客户端所在主机)下运行的Docker容器和镜像,客户端将本地环境所运行的Docker容器和本机下载的镜像以列表的形式呈现给用户。客户端接收用户对某些Docker容器或镜像的选择,并将用户所选的Docker容器或镜像打包发送给服务器。打包的Docker容器或镜像传输完成后,服务器向客户端返回发送成功的信息。当客户端接收到发送成功的信息时,客户端进入扫描加载界面,同时向服务器发送进行扫描检测的请求。
S12:对所述原始镜像进行漏洞检测,得到静态检测结果。
本实施例中,静态检测结果用于表征该原始镜像中存在多少个漏洞。
示例地,例如对该原始镜像进行漏洞检测后,检测出其中存在2个漏洞,则该静态检测结果可以是“2”。或者,静态检测结果以安全评分的方式呈现,例如满分为100分,每检出一个漏洞,扣除10分,例如对该原始镜像进行漏洞检测后,检测出其中存在2个漏洞,则静态检测结果是“80分”。
参照图2,图2是本申请一实施例提出的对原始镜像进行漏洞检测的方法的流程图。本实施例中,在对所述原始镜像进行漏洞检测时,可具体包括以下步骤:
S121:获取所述原始镜像的已安装程序列表和系统信息;
S122:通过已有公开漏洞库接口检测所述原始镜像存在的漏洞;
S123:确定所述原始镜像存在的漏洞中每个漏洞的漏洞ID;
S124:根据每个漏洞的漏洞ID,获取该漏洞的漏洞详情,将所述原始镜像存在的漏洞中所有漏洞的漏洞详情作为所述静态检测结果。
示例地,服务器首先解压原始镜像文件;然后获取所述原始镜像的已安装程序列表和系统信息;再通过已有公开漏洞库接口检测所述原始镜像存在的漏洞,如通过VulnersAudit API接口检测所述原始镜像存在的漏洞,即基于漏洞数据库,通过扫描、匹配等手段对该原始镜像的已安装程序及系统进行检测,发现存在的可利用漏洞。针对所发现的各漏洞中的每个漏洞,为了得到对该漏洞的更加详尽的描述,基于CVE(CommonVulnerabilities&Exposures)漏洞知识库,获取该漏洞的CVE-ID(关于CVE的漏洞编号),并通过CVE-ID获取对应的漏洞详情。服务器将每个漏洞的漏洞详情作为静态检测结果。
S13:获取所述目标Docker容器在运行时产生的日志。
本实施例中,服务器可与客户端通信连接,服务器可以通过接收所述目标Docker容器在运行时产生的日志,从而获取所述目标Docker容器在运行时产生的日志。
示例地,客户端向用户提供UI界面,并侦测本地环境下运行的Docker容器和镜像,客户端将本地环境所运行的Docker容器和本机下载的镜像以列表的形式呈现给用户。客户端接收用户对某些Docker容器或镜像的选择,并将用户所选的Docker容器或镜像打包发送给服务器。如果用户选择的是Docker容器,客户端还会获取该Docker容器在运行时产生的日志,并将该日志一同打包。其中,客户端获取该日志的方式可以是:访问该Docker容器中内置的日志驱动,例如开源数据收集器fluentd、日志守护进程syslog等日志驱动,日志驱动会收集该Docker容器在运行时产生的日志,客户端通过访问日志驱动以获取日志。
S14:从所述日志中提取出所述目标Docker容器在运行时访问的外部IP地址和请求DNS解析的域名。
本实施例中,服务器可以通过正则匹配的方式从所述日志中提取出所述目标Docker容器在运行时访问的外部IP地址和请求域名系统DNS解析的域名。
示例地,为了匹配和提取外部IP地址,可以建立如下正则表达式:
(d|([1-9]d)|(1dd)|(2[0-4]d)|(25[0-5])),或者((25[0-5])|(2[0-4]d)|(1dd)|([1-9]d)|d)(.((25[0-5])|(2[0-4]d)|(1dd)|([1-9]d)|d)){3}
为了匹配和提取请求DNS解析的域名,可以建立如下正则表达式:
[a-zA-Z0-9][-a-zA-Z0-9]{0,62},或者
[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+.?
应当理解的,以上所提供的正则表达式仅作为示例,不应解释为对本申请保护范围的限定。
S15:利用恶意IP情报数据对提取出的外部IP地址进行恶意性检测,得到第一动态检测结果。
本实施例中,第一动态检测结果用于表征提取出的多个外部IP地址中,存在多少个具有恶意性的IP地址。
示例地,例如对提取出的多个外部IP地址进行恶意性检测后,检测出其中存在4个具有恶意性的IP地址,则该第一动态检测结果可以是“4”。或者,第一动态检测结果以安全评分的方式呈现,例如满分为100分,每检出一个具有恶意性的IP地址,扣除10分,例如对提取出的多个外部IP地址进行恶意性检测后,检测出其中存在4个具有恶意性的IP地址,则第一动态检测结果是“60分”。
示例地,服务器以多个情报网站公开的开源恶意IP信息,作为该恶意IP情报数据。服务器针对提取出的多个外部IP地址中的每个外部IP地址,检测该外部IP地址是否与公开的开源恶意IP信息中的某一IP地址相同,如果相同,则确定该IP地址为具有恶意性的IP地址。
本实施例中,服务器在得到第一动态检测结果后,还可以执行以下步骤:
S151:根据所述第一动态检测结果,对具有恶意性的IP地址的进行定位,得到该具有恶意性的IP地址的地理位置信息;
S152:对具有恶意性的IP地址的地理信息进行可视化,得到关于具有恶意性的IP地址的可视化结果。
示例地,当服务器检测到提取出的多个外部IP地址中存在16个具有恶意性的IP地址时,服务器可以针对这16个具有恶意性的IP地址中的IP地址,通过查询GeoIP数据库等开源IP地理信息库,以得到该IP地址的经纬度信息,并联合使用地图库,如Python的Basemap库,生成根据经纬度信息标记了该IP地址的世界地图,如图3所示。图3中,地图中被标黑显示的小圆点即为具有恶意性的IP地址的地理位置。对于这16个具有恶意性的IP地址,均在该世界地图上标记,从而实现了对具有恶意性的IP地址的地理信息的可视化,得到了关于具有恶意性的IP地址的可视化结果,即世界地图。
进一步地,服务器还可以将所述关于具有恶意性的IP地址的可视化结果发送给所述客户端。示例地,客户端可以通过ajax与服务器交互。当客户端生成网页时,客户端通过ajax请求以调用服务器端生成的可视化结果,即世界地图。
通过将各个具有恶意性的IP地址的地理位置信息(即经纬度信息)和地图库联合,从而在地图上标记具有恶意性的IP地址,用户可以更直观地了解具有恶意性的IP地址所在的地理位置,从而了解各攻击者的分布情况。
S16:利用恶意域名情报数据对提取出的域名进行恶意性检测,得到第二动态检测结果。
本实施例中,本实施例中,第二动态检测结果用于表征提取出的多个域名中,存在多少个具有恶意性的域名。
示例地,例如对提取出的多个域名进行恶意性检测后,检测出其中存在2个具有恶意性的域名,则该第二动态检测结果可以是“2”。或者,第二动态检测结果以安全评分的方式呈现,例如满分为100分,每检出一个具有恶意性的域名,扣除10分,例如对提取出的多个域名进行恶意性检测后,检测出其中存在2个具有恶意性的域名,则第二动态检测结果是“80分”。
示例地,服务器以多个情报网站公开的开源恶意域名信息,作为该恶意域名情报数据。服务器针对提取出的多个域名中的每个域名,检测该域名是否与公开的开源恶意域名信息中的某一域名相同,如果相同,则确定该域名为具有恶意性的域名。
S17:将提取出的域名输入DGA域名识别模型,以确定提取出的域名是否为DGA域名,得到第三动态检测结果。
本实施例中,DGA域名识别模型是对预设模型预先经过训练而得到的。训练时,获取多个样本域名,所述多个样本域名中的每个样本域名携带标记,该标记表征该样本域名是否为一个DGA域名;以多个所述样本域名为输入,对预设模型进行训练,得到所述DGA域名识别模型,所述DGA域名识别模型用于识别单个域名是否为一个DGA域名。
具体地,在训练时,收集数百万条DGA域名和数百万条正常域名,并构建2-gram向量集,以逻辑回归、长短期记忆(Long Short-Term Memory,LSTM)、随机森林等算法训练模型,从而得到DGA域名识别模型。在测试阶段,DGA域名识别模型直接对每个域名进行预测,以预测该域名是否为DGA域名。如图4所示,图4示出了对模型的训练和使用过程。
本实施例利用机器学习技术对情报数据(即黑名单)以外的域名进行预测,能更全面彻底地检测到基于情报数据而检测不到的安全问题,进一步高了对目标Docker容器的安全问题的检出率。
上述包括步骤S11至步骤S17的方法中,步骤S11至步骤S12体现了服务器对目标Docker容器的原始镜像的静态检测。步骤S13至步骤S17体现了服务器对目标Docker容器的网络行为的动态检测。
参考图5,图5是本申请一实施例提出的关于动态检测部分的流程图。图5中,标号①对应步骤S13,标号②和标号③对应步骤S14,标号⑤指向标号⑦的过程对应步骤S15,标号⑤指向标号⑧的过程对应步骤S16,标号⑥指向标号⑧的过程对应步骤S17,标号⑦的IP检测结果为标记了具有恶意性的IP地址的世界地图,即具有恶意性的IP地址的可视化结果,标号⑧的域名检测结果包括第二动态检测结果和第三动态检测结果。
图5中,服务器在得到第二动态检测结果和第三动态检测结果后,还根据第二动态检测结果和第三动态检测结果,生成关于提取出的域名的综合检测结果,将所述关于提取出的域名的综合检测结果发送给所述客户端。通过生成关于提取出的域名的综合检测结果,使用户可以针对域名,更全面地了解域名的安全性情况,更直接地了解到哪些域名是具有恶意性的域名,哪些域名是DGA域名。
此外,服务器还可以与数据库通信连接,服务器将经过步骤S11至步骤S17后所得到的静态检测结果、第一动态检测结果、第二动态检测结果以及第三动态检测结果存入数据库,以使客户端可通过数据库获得静态检测结果、第一动态检测结果、第二动态检测结果以及第三动态检测结果。
基于同一发明构思,本申请一实施例提供一种动静态结合的Docker容器内容安全性检测装置。参考图6,图6是本申请一实施例提供的动静态结合的Docker容器内容安全性检测装置的示意图。如图6所示,该装置包括:
第一获取模块51,用于获取目标Docker容器的原始镜像,所述目标Docker容器为待检测的Docker容器;
静态检测模块52,用于对所述原始镜像进行漏洞检测,得到静态检测结果;
第二获取模块53,用于获取所述目标Docker容器在运行时产生的日志;
提取模块54,用于从所述日志中提取出所述目标Docker容器在运行时访问的外部IP地址和请求DNS解析的域名;
第一动态检测模块55,利用恶意IP情报数据对提取出的外部IP地址进行恶意性检测,得到第一动态检测结果;
第二动态检测模块56,用于利用恶意域名情报数据对提取出的域名进行恶意性检测,得到第二动态检测结果;
第三动态检测模块57,用于将提取出的域名输入DGA域名识别模型,以确定提取出的域名是否为DGA域名,得到第三动态检测结果。
可选地,所述装置还包括:
第三获取模块,用于获取多个样本域名,所述多个样本域名中的每个样本域名携带标记,该标记表征该样本域名是否为一个DGA域名;
训练模块,用于以多个所述样本域名为输入,对预设模型进行训练,得到所述DGA域名识别模型,所述DGA域名识别模型用于识别单个域名是否为一个DGA域名。
可选地,所述静态检测模块包括:
第一获取子模块,用于获取所述原始镜像的已安装程序列表和系统信息;
检测子模块,用于通过已有公开漏洞库接口检测所述原始镜像存在的漏洞;
确定子模块,用于确定所述原始镜像存在的漏洞中每个漏洞的漏洞ID;
第二获取子模块,用于根据每个漏洞的漏洞ID,获取该漏洞的漏洞详情,将所述原始镜像存在的漏洞中所有漏洞的漏洞详情作为所述静态检测结果。
可选地,所述装置还包括:
定位模块,用于根据所述第一动态检测结果,对具有恶意性的IP地址的进行定位,得到该具有恶意性的IP地址的地理位置信息;
可视化模块,用于对具有恶意性的IP地址的地理信息进行可视化,得到关于具有恶意性的IP地址的可视化结果。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种动静态结合的Docker容器内容安全性检测方法和装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种动静态结合的Docker容器内容安全性检测方法,其特征在于,所述方法应用于服务器,所述方法包括:
获取目标Docker容器的原始镜像,所述目标Docker容器为待检测的Docker容器;
对所述原始镜像进行漏洞检测,得到静态检测结果;
获取所述目标Docker容器在运行时产生的日志;
从所述日志中提取出所述目标Docker容器在运行时访问的外部IP地址和请求DNS解析的域名;
利用恶意IP情报数据对提取出的外部IP地址进行恶意性检测,得到第一动态检测结果;
利用恶意域名情报数据对提取出的域名进行恶意性检测,得到第二动态检测结果;
将提取出的域名输入DGA域名识别模型,以确定提取出的域名是否为DGA域名,得到第三动态检测结果。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取多个样本域名,所述多个样本域名中的每个样本域名携带标记,该标记表征该样本域名是否为一个DGA域名;
以多个所述样本域名为输入,对预设模型进行训练,得到所述DGA域名识别模型,所述DGA域名识别模型用于识别单个域名是否为一个DGA域名。
3.根据权利要求1所述的方法,其特征在于,对所述原始镜像进行漏洞检测,得到静态检测结果,包括:
获取所述原始镜像的已安装程序列表和系统信息;
通过已有公开漏洞库接口检测所述原始镜像存在的漏洞;
确定所述原始镜像存在的漏洞中每个漏洞的漏洞ID;
根据每个漏洞的漏洞ID,获取该漏洞的漏洞详情,将所述原始镜像存在的漏洞中所有漏洞的漏洞详情作为所述静态检测结果。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述第一动态检测结果,对具有恶意性的IP地址的进行定位,得到该具有恶意性的IP地址的地理位置信息;
对具有恶意性的IP地址的地理信息进行可视化,得到关于具有恶意性的IP地址的可视化结果。
5.根据权利要求4所述的方法,其特征在于,所述服务器与客户端通信连接;获取目标Docker容器的原始镜像,以及获取所述目标Docker容器在运行时产生的日志,包括:
接收所述客户端发送的所述目标Docker容器的原始镜像,以及所述目标Docker容器在运行时产生的日志;
所述方法还包括:
根据所述第二动态检测结果和所述第三动态检测结果,生成关于提取出的域名的综合检测结果;
将所述关于具有恶意性的IP地址的可视化结果以及所述关于提取出的域名的综合检测结果发送给所述客户端。
6.根据权利要求1所述的方法,其特征在于,所述服务器与数据库通信连接;所述方法还包括:
将所述静态检测结果、所述第一动态检测结果、所述第二动态检测结果以及所述第三动态检测结果存入数据库,以使所述客户端通过所述数据库获得所述静态检测结果、所述第一动态检测结果、所述第二动态检测结果以及所述第三动态检测结果。
7.一种动静态结合的Docker容器内容安全性检测装置,其特征在于,所述装置应用于服务器,所述装置包括:
第一获取模块,用于获取目标Docker容器的原始镜像,所述目标Docker容器为待检测的Docker容器;
静态检测模块,用于对所述原始镜像进行漏洞检测,得到静态检测结果;
第二获取模块,用于获取所述目标Docker容器在运行时产生的日志;
提取模块,用于从所述日志中提取出所述目标Docker容器在运行时访问的外部IP地址和请求DNS解析的域名;
第一动态检测模块,利用恶意IP情报数据对提取出的外部IP地址进行恶意性检测,得到第一动态检测结果;
第二动态检测模块,用于利用恶意域名情报数据对提取出的域名进行恶意性检测,得到第二动态检测结果;
第三动态检测模块,用于将提取出的域名输入DGA域名识别模型,以确定提取出的域名是否为DGA域名,得到第三动态检测结果。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第三获取模块,用于获取多个样本域名,所述多个样本域名中的每个样本域名携带标记,该标记表征该样本域名是否为一个DGA域名;
训练模块,用于以多个所述样本域名为输入,对预设模型进行训练,得到所述DGA域名识别模型,所述DGA域名识别模型用于识别单个域名是否为一个DGA域名。
9.根据权利要求7所述的装置,其特征在于,所述静态检测模块包括:
第一获取子模块,用于获取所述原始镜像的已安装程序列表和系统信息;
检测子模块,用于通过已有公开漏洞库接口检测所述原始镜像存在的漏洞;
确定子模块,用于确定所述原始镜像存在的漏洞中每个漏洞的漏洞ID;
第二获取子模块,用于根据每个漏洞的漏洞ID,获取该漏洞的漏洞详情,将所述原始镜像存在的漏洞中所有漏洞的漏洞详情作为所述静态检测结果。
10.根据权利要求7所述的装置,其特征在于,所述装置还包括:
定位模块,用于根据所述第一动态检测结果,对具有恶意性的IP地址的进行定位,得到该具有恶意性的IP地址的地理位置信息;
可视化模块,用于对具有恶意性的IP地址的地理信息进行可视化,得到关于具有恶意性的IP地址的可视化结果。
CN201910445583.1A 2019-05-27 2019-05-27 一种动静态结合的Docker容器内容安全性检测方法和装置 Pending CN110187955A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910445583.1A CN110187955A (zh) 2019-05-27 2019-05-27 一种动静态结合的Docker容器内容安全性检测方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910445583.1A CN110187955A (zh) 2019-05-27 2019-05-27 一种动静态结合的Docker容器内容安全性检测方法和装置

Publications (1)

Publication Number Publication Date
CN110187955A true CN110187955A (zh) 2019-08-30

Family

ID=67717973

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910445583.1A Pending CN110187955A (zh) 2019-05-27 2019-05-27 一种动静态结合的Docker容器内容安全性检测方法和装置

Country Status (1)

Country Link
CN (1) CN110187955A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111680304A (zh) * 2020-06-15 2020-09-18 北京凌云信安科技有限公司 一种综合检测Docker漏洞和不安全配置的扫描系统
CN111782474A (zh) * 2020-06-30 2020-10-16 广东小天才科技有限公司 日志处理方法、装置、电子设备和介质
CN112084496A (zh) * 2020-09-02 2020-12-15 浪潮云信息技术股份公司 基于Clair的镜像安全扫描方法
CN113541308A (zh) * 2021-06-18 2021-10-22 广西电网有限责任公司梧州供电局 一种智能电网服务器的网络安全可视化系统
CN113849808A (zh) * 2021-08-19 2021-12-28 苏州浪潮智能科技有限公司 容器安全管理方法、系统、终端及存储介质
CN113938314A (zh) * 2021-11-17 2022-01-14 北京天融信网络安全技术有限公司 一种加密流量的检测方法及装置、存储介质
CN115189933A (zh) * 2022-07-06 2022-10-14 上海交通大学 针对Docker的自动化配置安全检测方法和系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105069353A (zh) * 2015-08-11 2015-11-18 武汉大学 一种基于Docker的可信容器安全加固方法
CN105577660A (zh) * 2015-12-22 2016-05-11 国家电网公司 基于随机森林的dga域名检测方法
US20180115514A1 (en) * 2016-10-24 2018-04-26 Nubeva, Inc. Providing Scalable Cloud-Based Security Services
US20190028490A1 (en) * 2017-07-21 2019-01-24 Red Hat, Inc. Container intrusion detection and prevention system
CN109474575A (zh) * 2018-09-11 2019-03-15 北京奇安信科技有限公司 一种dns隧道的检测方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105069353A (zh) * 2015-08-11 2015-11-18 武汉大学 一种基于Docker的可信容器安全加固方法
CN105577660A (zh) * 2015-12-22 2016-05-11 国家电网公司 基于随机森林的dga域名检测方法
US20180115514A1 (en) * 2016-10-24 2018-04-26 Nubeva, Inc. Providing Scalable Cloud-Based Security Services
US20190028490A1 (en) * 2017-07-21 2019-01-24 Red Hat, Inc. Container intrusion detection and prevention system
CN109474575A (zh) * 2018-09-11 2019-03-15 北京奇安信科技有限公司 一种dns隧道的检测方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
魏兴慎: "SecDr:一种内容安全的Docker镜像仓库", 《计算机与现代化》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111680304A (zh) * 2020-06-15 2020-09-18 北京凌云信安科技有限公司 一种综合检测Docker漏洞和不安全配置的扫描系统
CN111782474A (zh) * 2020-06-30 2020-10-16 广东小天才科技有限公司 日志处理方法、装置、电子设备和介质
CN112084496A (zh) * 2020-09-02 2020-12-15 浪潮云信息技术股份公司 基于Clair的镜像安全扫描方法
CN113541308A (zh) * 2021-06-18 2021-10-22 广西电网有限责任公司梧州供电局 一种智能电网服务器的网络安全可视化系统
CN113849808A (zh) * 2021-08-19 2021-12-28 苏州浪潮智能科技有限公司 容器安全管理方法、系统、终端及存储介质
CN113849808B (zh) * 2021-08-19 2023-08-25 苏州浪潮智能科技有限公司 容器安全管理方法、系统、终端及存储介质
CN113938314A (zh) * 2021-11-17 2022-01-14 北京天融信网络安全技术有限公司 一种加密流量的检测方法及装置、存储介质
CN113938314B (zh) * 2021-11-17 2023-11-28 北京天融信网络安全技术有限公司 一种加密流量的检测方法及装置、存储介质
CN115189933A (zh) * 2022-07-06 2022-10-14 上海交通大学 针对Docker的自动化配置安全检测方法和系统

Similar Documents

Publication Publication Date Title
CN110187955A (zh) 一种动静态结合的Docker容器内容安全性检测方法和装置
Jain et al. Towards detection of phishing websites on client-side using machine learning based approach
US11151258B2 (en) System and method for identifying network security threats and assessing network security
CN106789939B (zh) 一种钓鱼网站检测方法和装置
CN108989355B (zh) 一种漏洞检测方法和装置
RU2726032C2 (ru) Системы и способы обнаружения вредоносных программ с алгоритмом генерации доменов (dga)
US11677774B2 (en) Interactive web application scanning
US20110283174A1 (en) Optimizing Security Seals on Web Pages
Seng et al. The approaches to quantify web application security scanners quality: a review
CN109067813A (zh) 网络漏洞检测方法、装置、存储介质和计算机设备
CN105404816B (zh) 基于内容的漏洞检测方法及装置
Gupta et al. An infrastructure-based framework for the alleviation of JavaScript worms from OSN in mobile cloud platforms
CN106250761B (zh) 一种识别web自动化工具的设备、装置及方法
CN110210225A (zh) 一种智能化的Docker容器恶意文件检测方法和装置
CN114003794A (zh) 资产收集方法、装置、电子设备和介质
Zamiri-Gourabi et al. Gas what? i can see your gaspots. studying the fingerprintability of ics honeypots in the wild
KR102118382B1 (ko) 사이버 위협에 대비한 훈련 프로그램 제공 장치
KR101115250B1 (ko) Qr코드의 안전도 검사 장치 및 방법
CN106021252A (zh) 使用公共因特网搜索确定基于因特网的对象信息
CN104158812B (zh) 一种终端应用的安全控制方法及系统
Zhao et al. Privacy model: detect privacy leakage for chinese browser extensions
Tigner et al. Analysis of kali linux penetration tools: A survey of hacking tools
Kaushik et al. An approach for exploiting and mitigating Log4J using Log4Shell vulnerability
CN107977225A (zh) 一种安全漏洞的统一描述方法和描述系统
Zhang Quantitative risk assessment under multi-context environments

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190830