一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于静态分析的Docker镜像扫描方法

2022-06-02 16:37:31 来源:中国专利 TAG:

一种基于静态分析的docker镜像扫描方法
技术领域
1.本发明涉及docker镜像安全检测技术,尤其涉及一种基于静态分析的docker镜像扫描方法。


背景技术:

2.目前docker hub镜像仓库中的镜像已达800多万个且增长迅速,其中存在大量具有安全问题的镜像。为了检测镜像中的漏洞,目前主要使用镜像扫描工具进行检测,它能够扫描出目前镜像中已有的漏洞信息,但是对于未知信息缺乏认识,无法了解镜像中漏洞的发展趋势,缺乏发展角度的扫描分析。同时,目前的镜像扫描工具的实现原理主要依赖于对整个镜像文件进行扫描,根据镜像内部的软件管理信息进行检测,然后与远程的漏洞数据库进行匹配进而检测到镜像中的漏洞信息。基于常规的检测方法,它对于构建过程中引入镜像的软件缺乏检测覆盖面,同时需要获取整个镜像文件后方可进行检测,从而限制了大规模扫描的实现。


技术实现要素:

3.本发明的目的在于针对docker镜像仓库中严峻的安全问题,使用镜像扫描工具扫描和分析镜像的漏洞发展趋势,使用镜像构建历史记录扫描的方法实现快速、大规模的镜像安全检测,对上述两方面研究提供了一种基于静态分析的docker镜像扫描方法,本发明是通过以下技术方案来实现的:
4.本发明公开了一种基于静态分析的docker镜像扫描方法,通过手工分析的方法对大量docker镜像构建历史记录进行特征提取并建立安全特征库,根据安全特征库对待测镜像进行特征匹配,依据特征信息和白名单机制检测镜像的安全问题;同时,通过镜像扫描工具检测镜像中的软件漏洞数量,按时间分布的散点图进行函数拟合,建立漏洞预测模型,最后由两者信息进行综合分析docker镜像的安全问题,反馈镜像扫描结果。
5.作为进一步地改进,本发明所述的特征提取为根据系统命令和文件名对docker镜像构建历史记录进行文本匹配,分析已知的具有安全问题的操作或文件,提取其中涉及到的与安全相关的操作或设置,将其纳入安全特征库。
6.作为进一步地改进,本发明所述的特征匹配为使用文本匹配方式对待测镜像的构建历史记录进行检测,与安全特征库中的特性信息进行匹配,以此检测镜像中的安全问题。
7.作为进一步地改进,本发明所述的特征信息为镜像构建历史记录中的一项或多项信息,所述的信息全部作用于镜像中的同一对象,且具有前后的关联性,共同作用于该对象并引发安全问题。
8.作为进一步地改进,本发明所述的特征信息包括四个部分,第一部分是对启动默认设置中的启动权限和启动执行设置进行检测;第二部分是对文件权限设置进行检测;第三部分是对敏感信息中的用户名密码信息和ssh密钥信息进行检测;第四部分是对挖矿程序进行检测,通过四个部分的检测,与特征库进行匹配并综合分析,输出最后的安全检测结
果。
9.作为进一步地改进,本发明所述的第一部分用于对启动默认设置中的启动权限和启动执行设置进行检测,判断镜像默认启动的用户权限是普通用户还是超级用户(root),判断镜像默认启动执行的是什么类型的文件或命令,将该检测内容的特征进行提取,供后续的综合分析;所述的第二部分用于判断是否存在可写、可执行权限和setuid权限,判断是否存在同时具有可写和可执行权限的文件,然后提取该权限操作参数和对象;所述的第三部分用于根据用户名密码输入格式和ssh密钥使用方法进行检测,提取存在的用户名密码信息和ssh密钥使用特征;所述的第四部分根据挖矿程序来源网站进行关联匹配,提取可疑挖矿程序的操作行为特征,进一步确认挖矿程序的特征行为。
10.作为进一步地改进,本发明所述的白名单机制为手工分析检测结果,进行误报情况的筛除,将误报特征建立白名单,用于综合分析使用。
11.作为进一步地改进,本发明所述的函数拟合为根据镜像扫描工具检测镜像中的软件漏洞数量,对同一个镜像的所有时间版本进行扫描统计,按照时间分布绘制漏洞数量的时间分布散点图,根据图像散点分布进行函数拟合,得出拟合函数。
12.作为进一步地改进,本发明所述的函数拟合为根据镜像扫描工具检测镜像中的软件漏洞数量,对同一个镜像的所有时间版本进行扫描统计,按照时间分布绘制漏洞数量的时间分布散点图,根据图像散点分布进行函数拟合,得出拟合函数,同时,以镜像发布日为时间轴原点,取漏洞发现时间与镜像发布时间的相对值为横轴,以该时间的漏洞数量占总漏洞数量的比例作为纵轴,然后根据图像散点分布进行函数拟合。
13.作为进一步地改进,本发明所述的漏洞预测模型为由大量镜像样本进行扫描统计,并取其平均值,然后经过函数拟合得出函数表达式,进而建立漏洞预测的函数模型。
14.本发明的有益效果如下:
15.本发明公开了一种基于静态分析的docker镜像安全扫描方法,该方法结合镜像扫描工具和自定义扫描方法对镜像软件漏洞进行分析,由镜像扫描工具对镜像软件漏洞进行分析,根据漏洞数量分布散点图进行函数拟合,建立了一个镜像漏洞预测模型;同时利用特征分析的方法对docker镜像构建历史记录进行自定义检测,由匹配到的特征信息判断镜像构建中是否存在安全问题,依据安全特征信息检测恶意镜像。该方法能够有效获取镜像漏洞信息及漏洞发展趋势,同时基于docker镜像构建信息,无需扫描检测整个镜像文件,能够快速地获取、检测并发现镜像中的安全问题,实践证明该方法能够有效对docker镜像进行扫描,并全面反映镜像的安全情况。
16.本发明实现了对docker镜像默认设置、权限操作、敏感信息和挖矿程序的检测,基于静态分析的方法实现快速高效的检测,能够弥补常规镜像扫描工具在此方面的检测扫描空缺,同时便于实现大规模快速扫描,能够有效提高扫描速度和检测覆盖面。同时,能够了解掌握镜像中的漏洞发展趋势,便于对镜像进行修复、更新等方面的利用。
附图说明
17.图1是基于静态分析方法实现docker镜像扫描的步骤流程图。
具体实施方式
18.本发明公开了一种基于静态分析的docker镜像扫描方法,提出了基于静态分析对docker镜像及构建历史记录进行扫描的方法。利用镜像扫描工具获取镜像已有漏洞信息,并对软件漏洞发展趋势进行预测模型建立和分析应用;利用特征提取和特征匹配等方法对镜像构建历史记录进行扫描,分析镜像中存在的安全问题。综合两个方面扫描检测,得出docker镜像的软件漏洞预测结果和镜像的安全扫描结果。
19.本发明基于大量镜像扫描,使用静态分析的方法对镜像中的安全问题进行安全特征提取,进而建立安全特征数据库,然后利用建立的特征库对待测镜像进行安全检测。对于匹配的特征信息包括四个部分,第一是对启动默认设置中的启动权限和启动执行设置进行检测,判断镜像默认启动的用户权限是普通用户还是超级用户(root),判断镜像默认启动执行的是什么类型的文件或命令,将该检测内容的特征进行提取分析,由此反映镜像默认启动后是否存在安全问题。第二是对文件权限设置进行检测,判断是否存在可写、可执行权限和setuid权限,判断是否存在同时具有可写和可执行权限的文件,然后提取该权限操作参数和对象,由此反映镜像中权限设置存在的安全问题。第三是对敏感信息中的用户名密码信息和ssh密钥信息进行检测,根据用户名密码输入格式和ssh密钥使用方法进行检测,提取存在的用户名密码信息和ssh密钥使用特征,由此反映镜像中的敏感信息泄露情况。第四是对挖矿程序进行检测,根据挖矿程序来源网站进行关联匹配,同时提取可疑挖矿程序的操作行为特征,进一步确认挖矿程序的真实性,由此反映镜像中是否存在挖矿程序。综合上述四方面检测,通过与特征库进行匹配,并综合分析,输出最后的安全检测结果。
20.本发明利用镜像扫描工具对镜像进行扫描,对同一个镜像的所有时间版本进行扫描统计,按照时间分布绘制漏洞数量的时间分布散点图,同时,以镜像发布日为时间轴原点,取漏洞发现时间与镜像发布时间的相对值为横轴,以该时间的漏洞数量占总漏洞数量的比例作为纵轴,然后根据图像散点分布进行函数拟合,得出漏洞的时间分布和累积分布函数,进一步对大量镜像进行扫描统计,取其平均值,从而建立镜像的软件漏洞预测模型,由该模型可以得出镜像中的漏洞发展趋势,便于对镜像进行修复、更新等方面的利用。
21.下面根据附图对本发明整体架构进行说明,图1是基于静态分析方法实现docker镜像扫描的步骤流程图,本发明的基于静态分析的方法对docker镜像及构建历史记录进行扫描,该方法具体包括如下步骤:
22.步骤一:通过手工分析已知的安全问题,对大量镜像进行分析,从默认设置、权限操作、敏感信息和挖矿程序四个方面提取行为特征。
23.步骤二:对提取到的行为特征进行关联分析,并将每一个部分安全问题存在的行为特征进行组合,形成该安全问题的安全特征行为,进而建立安全特征数据库供后续检测使用。
24.步骤三:对待测镜像进行检测,从默认设置、权限操作、敏感信息和挖矿程序四个方面分别提取行为特征。判断镜像默认启动的用户权限是普通用户还是超级用户,判断镜像默认启动执行的是什么类型的文件或命令,判断是否存在可写、可执行权限和setuid权限,判断是否存在同时具有可写和可执行权限的文件,判断是否存在用户名密码信息和ssh密钥信息,判断是否存在挖矿关联行为。然后将提取的行为特征与特征数据库中的特征进行匹配,若匹配成功,则具有该安全问题,若匹配失败,则无该安全问题。
25.步骤四:为防止误报情况,对其加入了白名单机制,对检测结果进行手工分析并确认,将手工确认过的误报情况进行排除,供后续分析使用。
26.步骤五:使用grype镜像扫描工具对镜像进行扫描,得出镜像中存在的软件漏洞数量在时间上的分布并绘制散点图,以镜像发布日为时间轴原点,取漏洞发现时间与镜像发布时间的相对值为横轴,以该时间的漏洞数量占总漏洞数量的比例作为纵轴,通过函数拟合方法对漏洞分布进行建模,得出漏洞时间分布的函数表达式。
27.步骤六:取大量镜像重复步骤五,由最终结果的平均值进行漏洞函数模型建立,得出漏洞的时间分布和累积分布模型,供后续分析使用。
28.步骤七:使用镜像扫描工具对待测镜像进行软件漏洞扫描,得出存在的软件漏洞信息,用于后续综合分析。
29.步骤八:对默认设置、权限操作、敏感信息和挖矿程序四个方面的检测结果以及扫描得出的软件漏洞进行综合分析,利用白名单机制与漏洞预测模型进行分析,筛出误报情况以及对漏洞发展趋势进行预测,将检测结果总结输出,对存在的安全问题给予提示,同时将改进措施一同反馈,对镜像中的软件漏洞给予报告,同时反馈未来漏洞增长趋势。
30.本领域普通技术人员可以理解,以上所述仅为发明的单个实例而已,并不用于限制发明,尽管参照前述实例对发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在发明的精神和原则之内,所做的修改、等同替换等均应包含在发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献