一种PyPI源中恶意第三方库的检测方法及计算设备技术

技术编号:17780184 阅读:26 留言:0更新日期:2018-04-22 08:56
本发明专利技术公开了一种PyPI源中恶意第三方库的检测方法及计算设备,计算设备与PyPI源服务器通信连接,PyPI源服务器中存储有多个第三方库及关联有各第三方库的当前第三方库列表,该方法包括:从PyPI源服务器获取当前第三方库列表;根据预设的匹配规则,对当前第三方库列表关联的各第三方库进行匹配;将各匹配成功的第三方库标记为恶意第三方库;对各匹配失败的第三方库进行安装文件检测,若安装文件的检测结果指示对应的第三方库存在恶意指令,则将该第三方库标记为恶意第三方库;统计合并标记为恶意第三方库的第三方库,根据合并后的结果进行告警处理。

【技术实现步骤摘要】
一种PyPI源中恶意第三方库的检测方法及计算设备
本专利技术涉及计算机网络领域,特别涉及一种PyPI源中恶意第三方库的检测方法及计算设备。
技术介绍
对基于Python语言的第三方库的开发者而言,将写好的程序发布在PyPI(PythonPackageIndex,Python包索引)源上是一件有意义的事情。在编写Python程序的时候,为了使用简便,往往会在程序中通importpackage_name命令引入众多第三方库。然而,并非所有的第三方库都已经被安装在用户设备上,需要通过pipinstallpackage_name命令安装。由于PyPI源没有一个严格的监控机制,任意第三方库都可以被上传,包括一些恶意第三方库。这些恶意第三方库的名称都具有一定的诱导性,例如smb,opencv,git等。当用户错误地通过pipinstallpackage_name命令安装相应的第三方库时,就会执行攻击者精心构造的恶意代码。现有的检测PyPI源中恶意第三方库的方法,是依靠管理员和开发人员在日常使用过程中的安全敏感意识去识别,并不能及时检测出恶意第三方库,具有一定的滞后性。而且,通常只有少量的恶意第三方库能够被识别出,由此引起的识别率低问题最终必将导致识别效率低。因此,需要一种新的PyPI源中恶意第三方库的检测方案来改进上述处理过程。
技术实现思路
为此,本专利技术提供一种PyPI源中恶意第三方库的检测的技术方案,以力图解决或者至少缓解上面存在的问题。根据本专利技术的一个方面,提供一种PyPI源中恶意第三方库的检测方法,适于在计算设备中执行,计算设备与PyPI源服务器通信连接,PyPI源服务器中存储有多个第三方库及关联有各第三方库的当前第三方库列表,该方法包括如下步骤:首先,从PyPI源服务器获取当前第三方库列表;根据预设的匹配规则,对当前第三方库列表关联的各第三方库进行匹配;将各匹配成功的第三方库标记为恶意第三方库;对各匹配失败的第三方库进行安装文件检测,若安装文件的检测结果指示对应的第三方库存在恶意指令,则将该第三方库标记为恶意第三方库;统计合并标记为恶意第三方库的第三方库,根据合并后的结果进行告警处理。可选地,在根据本专利技术的PyPI源中恶意第三方库的检测方法中,匹配规则包括一个或多个已知的恶意第三方库的名称,根据预设的匹配规则,对当前第三方库列表关联的各第三方库进行匹配的步骤包括:从匹配规则中获取其所包括已知的恶意第三方库的名称;对当前第三方库列表关联的每一个第三方库,将该第三方库的名称与各已知的恶意第三方库的名称分别进行匹配;若存在与该第三方库的名称匹配的恶意第三方库,则判定匹配成功,否则判定匹配失败。可选地,在根据本专利技术的PyPI源中恶意第三方库的检测方法中,对各匹配失败的第三方库进行安装文件检测的步骤包括:对各匹配失败的第三方库,检测该第三方库对应的安装文件是否通过导入指令引入第一相关库,第一相关库包括命令执行库、网络请求库和/或远程访问库;若该第三方库对应的安装文件通过导入指令引入第一相关库,则判定该第三方库存在恶意指令。可选地,在根据本专利技术的PyPI源中恶意第三方库的检测方法中,对各匹配失败的第三方库进行安装文件检测的步骤包括:对各匹配失败的第三方库,检测该第三方库对应的安装文件是否引入已知的恶意第三方库;若该第三方库对应的安装文件引入已知的恶意第三方库,则判定该第三方库存在恶意指令。可选地,在根据本专利技术的PyPI源中恶意第三方库的检测方法中,计算设备中存储有历史检测记录,历史检测记录包括历史第三方库列表,历史第三方库列表关联有上一次从PyPI源服务器获取的、一个或多个第三方库,该方法还包括:将当前第三方库列表与历史第三方库列表进行比较,以获取当前新增的第三方库;根据预设的匹配规则,对当前新增的第三方库进行匹配。可选地,在根据本专利技术的PyPI源中恶意第三方库的检测方法中,计算设备中存储有历史检测记录,历史检测记录包括空目录表,空目录表关联有一个或多个目录为空的伪恶意第三方库,该方法还包括:对空目录表所关联的各目录为空的伪恶意第三方库进行检测;若该伪恶意第三方库的目录下新增有相关内容,则将该伪恶意第三方库标记为恶意第三方库,并删除其与空目录表的关联。可选地,在根据本专利技术的PyPI源中恶意第三方库的检测方法中,还包括:对各匹配成功的第三方库,判断该第三方库的目录是否为空;若该第三方库的目录为空,则将该第三方库标记为伪恶意第三方库,并与空目录表关联。可选地,在根据本专利技术的PyPI源中恶意第三方库的检测方法中,在对各匹配失败的第三方库进行安装文件检测的步骤之后,还包括:基于应用容器引擎构建一个应用容器;在应用容器中,通过钩子技术对各未标记为恶意第三方库的第三方库的模拟安装进行动态监测;将安装过程中存在恶意行为的第三方库标记为恶意第三方库。可选地,在根据本专利技术的PyPI源中恶意第三方库的检测方法中,通过钩子技术对各未标记为恶意第三方库的第三方库的模拟安装进行动态监测的步骤包括:对每一个未标记为恶意第三方库的第三方库,将该第三方库的相关代码注入到基于钩子技术生成的钩子函数中;运行应用容器并在该应用容器中模拟安装该第三方库;获取钩子函数捕获的结果;若该结果指示在安装过程中引入了第一相关库,则判定该第三方库的安装过程中存在恶意行为。可选地,在根据本专利技术的PyPI源中恶意第三方库的检测方法中,还包括预先生成匹配规则,预先生成匹配规则的步骤包括:获取PyPI源恶意攻击事件相关的恶意第三方库的名称;获取PyPI源服务器中已删除的恶意第三库的名称;将获取到的一个或多个恶意第三方库的名称作为已知的恶意第三方库的名称,以形成匹配规则。根据本专利技术的又一个方面,提供一种计算设备,包括一个或多个处理器、存储器以及一个或多个程序,其中一个或多个程序存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序包括用于执行根据本专利技术的PyPI源中恶意第三方库的检测方法的指令。根据本专利技术的又一个方面,还提供一种存储一个或多个程序的计算机可读存储介质,一个或多个程序包括指令,指令当由计算设备执行时,使得计算设备执行根据本专利技术的PyPI源中恶意第三方库的检测方法。根据本专利技术的PyPI源中恶意第三方库的检测的技术方案,首先,根据匹配规则对当前三方库列表中关联的各第三方库进行匹配,若匹配成功,则将对应的第三方库标记为恶意第三方库,若匹配失败,则对相应的第三方库进行安装文件检测,对检测结果指示存在恶意指令的第三方库标记为恶意第三方库,最后统计合并恶意第三方库并进行告警。在上述方案中,先将各第三方库的名称与匹配规则中已知的恶意第三方库的名称分别进行匹配,对未匹配上的第三方库进行安装文件检测,以排查安装文件是否引入命令执行库、网络请求库、远程访问库和/或已知的恶意第三方库,若引入以上任一种库,均判定该第三方库为恶意第三方库,实现了自动检测第三方库的名称和相关文件内容,具有自动化监控的特性,能够及时发现PyPI源上出现的恶意第三方库,避免人工识别恶意第三方库的滞后性。而且,由于存在注册了恶意第三方库名称但未上传恶意第三方库的情况,则对已知的空目录的第三方库进行复查,若目录下新增内容,则将该第三方库标记为恶意第三方库,若目录依旧为空,则留存到下一次检测继续复查,本文档来自技高网...
一种PyPI源中恶意第三方库的检测方法及计算设备

【技术保护点】
一种PyPI源中恶意第三方库的检测方法,适于在计算设备中执行,所述计算设备与PyPI源服务器通信连接,所述PyPI源服务器中存储有多个第三方库及关联有各第三方库的当前第三方库列表,所述方法包括:从所述PyPI源服务器获取当前第三方库列表;根据预设的匹配规则,对所述当前第三方库列表关联的各第三方库进行匹配;将各匹配成功的第三方库标记为恶意第三方库;对各匹配失败的第三方库进行安装文件检测,若安装文件的检测结果指示对应的第三方库存在恶意指令,则将该第三方库标记为恶意第三方库;统计合并标记为恶意第三方库的第三方库,根据合并后的结果进行告警处理。

【技术特征摘要】
1.一种PyPI源中恶意第三方库的检测方法,适于在计算设备中执行,所述计算设备与PyPI源服务器通信连接,所述PyPI源服务器中存储有多个第三方库及关联有各第三方库的当前第三方库列表,所述方法包括:从所述PyPI源服务器获取当前第三方库列表;根据预设的匹配规则,对所述当前第三方库列表关联的各第三方库进行匹配;将各匹配成功的第三方库标记为恶意第三方库;对各匹配失败的第三方库进行安装文件检测,若安装文件的检测结果指示对应的第三方库存在恶意指令,则将该第三方库标记为恶意第三方库;统计合并标记为恶意第三方库的第三方库,根据合并后的结果进行告警处理。2.如权利要求1所述的方法,所述匹配规则包括一个或多个已知的恶意第三方库的名称,所述根据预设的匹配规则,对所述当前第三方库列表关联的各第三方库进行匹配的步骤包括:从所述匹配规则中获取其所包括已知的恶意第三方库的名称;对所述当前第三方库列表关联的每一个第三方库,将该第三方库的名称与各已知的恶意第三方库的名称分别进行匹配;若存在与该第三方库的名称匹配的恶意第三方库,则判定匹配成功,否则判定匹配失败。3.如权利要求1或2所述的方法,所述对各匹配失败的第三方库进行安装文件检测的步骤包括:对各匹配失败的第三方库,检测该第三方库对应的安装文件是否通过导入指令引入第一相关库,所述第一相关库包括命令执行库、网络请求库和/或远程访问库;若该第三方库对应的安装文件通过导入指令引入第一相关库,则判定该第三方库存在恶意指令。4.如权利要求1-3中任一项所述的方法,所述对各匹配失败的第三方库进行安装文件检测的步骤包括:对各匹配失败的第三方库,检测该第三方库对应的安装文件是否引入已知的恶意第三方库;若该第三方库对应的安装文件引入已知的恶意第三方库,则判定该第三方库存在恶意指令...

【专利技术属性】
技术研发人员:朱铜庆
申请(专利权)人:北京知道创宇信息技术有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1