敏感信息的检测方法、装置、设备及存储介质与流程

文档序号:22470857发布日期:2020-10-09 22:01阅读:170来源:国知局
敏感信息的检测方法、装置、设备及存储介质与流程

本发明涉及金融科技(fintech)技术领域,尤其涉及敏感信息的检测方法、装置、设备及计算机可读存储介质。



背景技术:

随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(finteh)转变,敏感信息检测技术也不例外,但由于金融行业的安全性、实时性要求,也对敏感信息检测技术提出的更高的要求。github是全球最大的社交编程及代码托管网站,用户可以通过github便捷地存储和管理开源程序代码。随着用户的增多,代码中包含的用户敏感信息在github发生泄漏的风险也随之增大。目前敏感信息检测方法为直接在整个github的代码库搜索敏感信息关键词,然后将搜索结果存储到数据库中并进行邮件报警。但是,在github海量代码库中基于特征关键词进行搜索,不仅检测效率低下,而且关键词匹配到的搜索结果较多,提高了误报率,降低了敏感信息的检测准确率。



技术实现要素:

本发明的主要目的在于提出一种敏感信息的检测方法、装置、设备及计算机可读存储介质,旨在解决现有敏感信息检测效率低下或检测准确率较低的技术问题。

为实现上述目的,本发明提供一种敏感信息的检测方法,所述敏感信息的检测方法包括如下步骤:

获取目标对象的关联账号信息,并基于所述关联账号信息对应的关联项目信息在预设代码库中确定所述目标对象关联的目标开源代码;

基于所述目标对象对应的目标敏感信息特征以及目标检测规则,在所述目标开源代码中进行敏感信息检测;

在检测到与所述目标敏感信息特征匹配的目标敏感信息时,获取所述目标敏感信息对应的存储信息,并基于所述存储信息进行敏感信息泄露提醒。

可选地,所述获取目标对象的关联账号信息,并基于所述关联账号信息对应的关联项目信息在预设代码库中确定所述目标对象关联的目标开源代码的步骤具体包括:

获取所述目标对象的目标代码上传账号,基于所述目标代码上传账号确定所述目标对象对应上传的目标开源项目信息,并基于所述目标开源项目信息确定所述目标对象对应的目标项目代码;

获取所述目标对象的关联对象以及所述关联对象的相关代码上传账号,基于所述相关代码上传账号确定所述关联对象对应上传的相关开源项目信息,并基于所述相关开源项目信息确定所述关联对象对应的相关项目代码;

基于所述目标项目代码以及所述相关项目代码,在所述代码库中确定所述目标对象关联的目标开源代码。

可选地,所述基于所述目标对象对应的目标敏感信息特征以及目标检测规则,在所述目标开源代码中进行敏感信息检测的步骤具体包括:

基于所述目标代码上传账号的账号级别以及目标开源项目信息的项目级别,确定所述目标项目代码中各个项目代码的目标代码优先级;

基于所述相关代码上传账号的账号级别以及所述相关开源项目信息的项目级别,确定所述相关项目代码中各个项目代码的相关代码优先级;

基于所述目标代码优先级以及相关代码优先级,确定所述目标开源代码中各个项目代码的代码检测顺序;

基于预设敏感信息特征优先级以及所述目标敏感信息特征,确定所述目标敏感信息特征对应的特征检测顺序;

基于所述代码检测顺序以及特征检测顺序,对所述目标开源代码进行敏感信息检测。

可选地,所述获取所述目标对象的目标代码上传账号,基于所述目标代码上传账号确定所述目标对象对应上传的目标开源项目信息,并基于所述目标开源项目信息确定所述目标对象对应的目标项目代码的步骤之后,还包括:

基于预设查询周期以及预设查询接口,获取所述目标对象对应的上传账号,并判断所述目标对象对应的上传账号是否更新;

在所述目标对象的上传账号更新时,获取更新后的上传账号,并基于所述更新后的上传账号对应上传的开源项目信息确定所述目标对象更新后的项目代码。

可选地,所述基于所述目标开源项目信息确定所述目标对象对应的目标项目代码的步骤具体包括:

获取所述目标开源项目信息的分支项目信息,并对所述分支项目信息进行去重处理,生成所述目标开源项目对应的可用分支项目列表;

获取所述可用分支项目列表中各个可用分支项目,获取所述可用分支项目对应的可用分支项目代码,并基于各个可用分支项目代码对应的各个可用分支项目代码生成所述目标项目代码。

可选地,所述获取所述可用分支项目列表中各个可用分支项目,获取所述可用分支项目对应的可用分支项目代码,并基于各个可用分支项目代码对应的各个可用分支项目代码生成所述目标项目代码的步骤具体包括:

获取所述可用分支项目的提交记录列表,并基于所述提交记录列表,确定所述可用分支项目对应的各个版本项目代码;

基于所述可用分支项目的各个版本项目代码,生成所述可用分支项目对应的可用分支项目代码;

基于各个可用分支项目代码对应的各个可用分支项目代码生成所述目标项目代码。

可选地,所述获取目标对象的关联账号信息,并基于所述关联账号信息对应的关联项目信息在预设代码库中确定所述目标对象关联的目标开源代码的步骤具体包括:

获取所述目标对象的关联账号信息和关联项目信息,并向所述代码库发送访问请求;

在接收到所述代码库基于所述访问请求反馈的允许指令时,获取所述允许指令中的目标字符串,作为授权令牌;

基于所述授权令牌访问所述代码库,并在所述代码库中确定所述关联账号信息以及关联项目信息对应的目标开源代码。

此外,为实现上述目的,本发明还提供一种敏感信息的检测装置,所述敏感信息的检测装置包括:

目标代码确定模块,用于获取目标对象的关联账号信息,并基于所述关联账号信息对应的关联项目信息在预设代码库中确定所述目标对象关联的目标开源代码;

敏感信息检测模块,用于基于所述目标对象对应的目标敏感信息特征以及目标检测规则,在所述目标开源代码中进行敏感信息检测;

信息泄露提醒模块,用于在检测到与所述目标敏感信息特征匹配的目标敏感信息时,获取所述目标敏感信息对应的存储信息,并基于所述存储信息进行敏感信息泄露提醒。

此外,为实现上述目的,本发明还提供一种敏感信息的检测设备,所述敏感信息的检测设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的敏感信息的检测程序,所述敏感信息的检测程序被所述处理器执行时实现如上所述的敏感信息的检测方法的步骤。

此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有敏感信息的检测程序,所述敏感信息的检测程序被处理器执行时实现如上所述的敏感信息的检测方法的步骤。

本发明提供一种敏感信息的检测方法,通过获取目标对象的关联账号信息,并基于所述关联账号信息对应的关联项目信息在预设代码库中确定所述目标对象关联的目标开源代码;基于所述目标对象对应的目标敏感信息特征以及目标检测规则,在所述目标开源代码中进行敏感信息检测;在检测到与所述目标敏感信息特征匹配的目标敏感信息时,获取所述目标敏感信息对应的存储信息,并基于所述存储信息进行敏感信息泄露提醒。通过上述方式,本发明基于待检测是否发生敏感信息泄露的目标对象对应的关联账号信息,在代码库中确定目标对象上传的关联项目信息对应的目标开源代码,缩小了目标对象的泄漏敏感信息的检测范围,减少了敏感信息检测的查询数据量,提高了敏感信息检测效率,避免大数据量检测导致的误报,提高了敏感信息的检测准确率,解决了现有敏感信息检测效率低下或检测准确率较低的技术问题。

附图说明

图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图;

图2为本发明敏感信息的检测方法第一实施例的流程示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。

本发明实施例敏感信息的检测设备可以是pc机或服务器设备,其上运行有java虚拟机。

如图1所示,该敏感信息的检测设备可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及敏感信息的检测程序。

在图1所示的设备中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的敏感信息的检测程序,并执行下述敏感信息的检测方法中的操作。

基于上述硬件结构,提出本发明敏感信息的检测方法实施例。

参照图2,图2为本发明敏感信息的检测方法第一实施例的流程示意图,所述敏感信息的检测方法包括:

步骤s10,获取目标对象的关联账号信息,并基于所述关联账号信息对应的关联项目信息在预设代码库中确定所述目标对象关联的目标开源代码;

github是全球最大的社交编程及代码托管网站,在github中,用户可以便捷地管理、存储和搜索程序代码。但是随着用户的日益增加,用户逐渐意识到github存在安全意识不足的问题,即将公司源代码提交到github上,而且没有进行敏感信息过滤,尤其源代码中包含的大部分账号密码都以明文方式直接提交。例如国内大型二次元网站后台工程源代码被上传至github;github内存储的三星手机厂商多个内部项目代码发生泄露(包括smartthings的源代码、证书和密钥);华硕内网密码在github上发生泄露等。

目前敏感信息检测方法为直接在整个github的代码库搜索敏感信息关键词,然后将搜索结果存储到数据库中并进行邮件报警。但是,在github海量代码库中基于特征关键词进行搜索,不仅检测效率低下,而且关键词匹配到的搜索结果较多,提高了误报率,降低了敏感信息的检测准确率。例如,在整个github中搜索代码,如搜索一个稍微常见的关键词密码相关“password”,会有成千上万条搜索结果,提高了误报率。但是将搜索关键字添加较多限制,则会漏掉许多敏感信息的检测。本实施例中,为了解决上述问题,本发明基于待检测是否发生敏感信息泄露的目标对象对应的关联账号信息,在代码库中确定目标对象上传的关联项目信息对应的目标开源代码,缩小了目标对象的泄漏敏感信息的检测范围,减少了敏感信息检测的查询数据量,提高了敏感信息检测效率,避免大数据量检测导致的误报,提高了敏感信息的检测准确率。具体地,目标对象可以是企业名称或企业代码,企业通过申请的账号上传开源项目代码。因此,可以通过获取企业对应申请的账号信息,还可以进一步获取企业合作方对应申请的账号信息,作为目标对象的关联账号信息。查找所述关联账号信息对应上传的项目信息,即为关联项目信息。其中,所述关联项目信息包括企业自身开发上传的项目代码信息,还包括合作方开发上传的项目代码信息。然后在代码库中,即github,查找与所述关联项目信息对应的代码,作为目标开源代码。

步骤s20,基于所述目标对象对应的目标敏感信息特征以及目标检测规则,在所述目标开源代码中进行敏感信息检测;

本实施例中,获取所述目标对象对应的企业相关域名、内网ip、测试ip、密码配置或数据库配置等信息中的一种或多种,作为所述目标对象的目标敏感信息特征。根据企业相关域名、内网ip、测试ip、密码配置或数据库配置作为关键词,在所述目标开源代码中进行搜索,以判断所述目标开源代码中是否存在所述目标敏感信息特征,即判断所述目标对象对应的项目代码中是否存在所述企业相关域名、内网ip、测试ip、密码配置或数据库配置等敏感信息,由此以防不法分子基于上述敏感信息破解服务器账号密码或接口密钥等。

步骤s30,在检测到与所述目标敏感信息特征匹配的目标敏感信息时,获取所述目标敏感信息对应的存储信息,并基于所述存储信息进行敏感信息泄露提醒。

本实施例中,将所述目标开源代码中与所述目标敏感信息特征相匹配的信息作为目标敏感信息。并在所述目标开源代码中检测到所述目标敏感信息时,获取所述目标敏感信息的存储信息,其中,所述存储信息包括目标敏感信息所在的仓库地址、文件地址以及上传事件等。根据所述存储信息生成对应的敏感信息泄漏提醒消息,并通过敏感信息的检测程序所在终端显示敏感信息泄露的提醒消息,以便相关企业进行相关信息处理,如邮件报警或上报github以对该泄漏敏感信息进行删除处理。

本实施例中提供一种敏感信息的检测方法,通过获取目标对象的关联账号信息,并基于所述关联账号信息对应的关联项目信息在预设代码库中确定所述目标对象关联的目标开源代码;基于所述目标对象对应的目标敏感信息特征以及目标检测规则,在所述目标开源代码中进行敏感信息检测;在检测到与所述目标敏感信息特征匹配的目标敏感信息时,获取所述目标敏感信息对应的存储信息,并基于所述存储信息进行敏感信息泄露提醒。通过上述方式,本发明基于待检测是否发生敏感信息泄露的目标对象对应的关联账号信息,在代码库中确定目标对象上传的关联项目信息对应的目标开源代码,缩小了目标对象的泄漏敏感信息的检测范围,减少了敏感信息检测的查询数据量,提高了敏感信息检测效率,避免大数据量检测导致的误报,提高了敏感信息的检测准确率,解决了现有敏感信息检测效率低下或检测准确率较低的技术问题。

进一步地,基于本发明敏感信息的检测方法第一实施例,提出本发明敏感信息的检测方法第二实施例。

在本实施例中,所述步骤s10具体包括:

获取所述目标对象的目标代码上传账号,基于所述目标代码上传账号确定所述目标对象对应上传的目标开源项目信息,并基于所述目标开源项目信息确定所述目标对象对应的目标项目代码;

获取所述目标对象的关联对象以及所述关联对象的相关代码上传账号,基于所述相关代码上传账号确定所述关联对象对应上传的相关开源项目信息,并基于所述相关开源项目信息确定所述关联对象对应的相关项目代码;

基于所述目标项目代码以及所述相关项目代码,在所述代码库中确定所述目标对象关联的目标开源代码。

目前敏感信息的另一种检测方法是通过爬虫的方式进行敏感信息的定期爬取,但是进行敏感信息的爬虫时,github是一个黑盒,不确定其频率限制,也不确定检测规则,因为容易导致爬虫失败或爬虫程序异常,由此导致敏感信息爬取效率低下,为了解决上述问题,区别于目标敏感信息的检测方法将重心放在用于敏感信息的搜索的搜索引擎上,通过精确搜索敏感信息特征关键字以提高敏感信息的检测效率。本实施例中通过筛选出目标对象对应的目标开源代码,缩小敏感信息的检测范围,以有效降低误报率,提高敏感信息的检测准确率。即通过对企业开源账号和开源项目进行重点收集和扫描以实现极大降低误报率,同时遍历项目所有分支进行扫描和遍历项目所有分支的commit记录进行扫描。具体地,可通过账号获取接口api,根据预设周期定期获取目标对象对应的开源账号,包括企业内部员工github账号、企业内部管理的部门github账号,作为所述目标代码上传账号。并获取与目标企业合作的合作方对应的员工github账号及合作方部门github账号,作为相关代码上传账号。获取所述目标代码上传账号对应上传的目标开源项目对应的项目代码,作为目标项目代码。并获取所述相关代码上传账号对应上传的相关开源项目对应的项目代码,作为相关项目代码。在github代码库筛选出所述目标项目代码以及所述相关项目代码对应的开源代码,作为所述目标开源代码。

其中,所述获取所述目标对象的目标代码上传账号,基于所述目标代码上传账号确定所述目标对象对应上传的目标开源项目信息,并基于所述目标开源项目信息确定所述目标对象对应的目标项目代码的步骤之后,还包括:

基于预设查询周期以及预设查询接口,获取所述目标对象对应的上传账号,并判断所述目标对象对应的上传账号是否更新;

在所述目标对象的上传账号更新时,获取更新后的上传账号,并基于所述更新后的上传账号对应上传的开源项目信息确定所述目标对象更新后的项目代码。

本实施例中,根据预设查询周期以及预设查询接口,即定期通过账号获取接口api获取目标对象的上传账号。其中,所述目标对象的上传账号包括企业部门账号以及员工账号,还可以包括合作方部门账号和合作方员工账号。判断所述目标对象对应的上传账号是否发生更新,即检测所述目标对象对应的目标代码上传账号或相关代码上传账号是否增加或修改。在所述目标对象的上传账号发生更新时,对新增或修改的上传账号对应上传的项目代码进行敏感信息检测。

由此,通过确定目标企业账号对应上传的开源项目代码,缩小敏感信息的检测范围,然后可以进一步结合自定义的扫描系统或使用开源扫描工具(如cobra),如通过password、ip地址正则表达式或jdbc数据库连接串等扫描规则,实现扫描企业相关域名、内网ip、测试ip、密码配置、数据库配置等敏感信息,在缩小敏感信息检测范围的基础上,进一步丰富敏感信息检测通用规则,提高敏感信息的检测效率,如检测企业相关域名信息泄露:

<matchmode="regex-only-match"><![cdata

[https://.*((test|intra)\.com)]]></match>;

或者检测企业相关ip(内网ip或公网测试ip)信息泄露:

<matchmode="regex-only-match"><!

[cdata[((25[0-5]|2[0-4][0-9]|[01]?[0-9]{2}?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))]]></match>;

或者检测企业相关配置密码:

<matchmode="regex-only-match"><![cdata

[(?:username|email|host|password|passwd|mysql)\w*\s*(?:=)\s]]></match>。

进一步地,所述基于所述目标对象对应的目标敏感信息特征以及目标检测规则,在所述目标开源代码中进行敏感信息检测的步骤具体包括:

基于所述目标代码上传账号的账号级别以及目标开源项目信息的项目级别,确定所述目标项目代码中各个项目代码的目标代码优先级;

基于所述相关代码上传账号的账号级别以及所述相关开源项目信息的项目级别,确定所述相关项目代码中各个项目代码的相关代码优先级;

基于所述目标代码优先级以及相关代码优先级,确定所述目标开源代码中各个项目代码的代码检测顺序;

基于预设敏感信息特征优先级以及所述目标敏感信息特征,确定所述目标敏感信息特征对应的特征检测顺序;

基于所述代码检测顺序以及特征检测顺序,对所述目标开源代码进行敏感信息检测。

本实施例中,为了提高高级别敏感信息的检测效率,优先对目标对象对应的高级别的代码上传账号上传的优先级较高的项目代码进行优先检测。获取所述目标代码上传账号的优先级,企业越核心部门的账号优先级越高,员工级别越高的优先级越高。且目标代码上传账号的优先级高于相关代码上传账号。目标开源项目信息的优先级可预先根据开源项目的保密程度进行优先级定级,保密程度越高,则优先级越高。其中,进一步地根据企业相关域名、内网ip、测试ip、密码配置、数据库配置等敏感信息,依次设置优先级。即优先对优先级别最高的目标代码上传账号上传的目标开源项目信息进行企业相关域名的敏感信息检测。可通过设置相关权重,确定所述目标开源代码中各个项目代码的检测顺序,并依据特征检测顺序,依次对各个项目代码进行各个敏感信息检测。

其中,所述获取目标对象的关联账号信息,并基于所述关联账号信息对应的关联项目信息在预设代码库中确定所述目标对象关联的目标开源代码的步骤具体包括:

获取所述目标对象的关联账号信息和关联项目信息,并向所述代码库发送访问请求;

在接收到所述代码库基于所述访问请求反馈的允许指令时,获取所述允许指令中的目标字符串,作为授权令牌;

基于所述授权令牌访问所述代码库,并在所述代码库中确定所述关联账号信息以及关联项目信息对应的目标开源代码。

本实施例中,为了进一步防止github代码库对终端的频繁访问进行限制,即防止终端频繁访问代码库触发githubapi限制规则,本实施例中注册多个账号申请多个令牌token。由于在终端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,压力较大。而为了减轻服务器的压力,减少频繁的查询数据库,服务端基于通过验证的终端请求生成的一串字符串token,以作终端进行请求的一个令牌,当终端通过验证后,服务器生成一个token便将此token返回给终端,终端基于token即可获取服务器中的数据库数据,无需再次带上用户名和密码。即终端在接收到服务器或者代码库反馈的目标字符串时,将所述目标字符串作为授权令牌,并在预设时间内基于该授权令牌访问代码库,以在所述代码库中确定所述关联账号信息以及关联项目信息对应的目标开源代码。

进一步地,基于本发明敏感信息的检测方法第二实施例,提出本发明敏感信息的检测方法第三实施例。

在本实施例中,所述基于所述目标开源项目信息确定所述目标对象对应的目标项目代码的步骤具体包括:

获取所述目标开源项目信息的分支项目信息,并对所述分支项目信息进行去重处理,生成所述目标开源项目对应的可用分支项目列表;

获取所述可用分支项目列表中各个可用分支项目,获取所述可用分支项目对应的可用分支项目代码,并基于各个可用分支项目代码对应的各个可用分支项目代码生成所述目标项目代码。

本实施例中,在对企业github开源项目信息进行针对性扫描的基础上,依次对企业上传项目代码的所有分支进行扫描,并对项目所有分支的所有commit记录进行扫描,由此,实现对项目代码的层层检测,提高敏感信息的检测效率,降低误报率。具体地,获取到目标开源项目信息的所有分支信息(同理可应用于相关开源项目信息),并对所述目标开源项目信息的分支项目信息进行去重筛选整理,并将去重后可用分支项目,生成可用分支项目列表,然后依次切换到分支项目列表中的各个分支项目,并依次获取各个分支项目对应的分支项目代码,并调用扫描引擎对各个分支项目代码进行扫描。具体实施例中,可通过gitbranch-a命令获取到项目的所有远支信息,通过gitcheckout{branch}命令切换分支,通过获取最新分支对应代码('gitfetch--all|gitpull--all'),并在取得相应代码后通过scan_repo(key,branch)命令调用扫描引擎对相应代码进行扫描。

进一步地,所述获取所述可用分支项目列表中各个可用分支项目,获取所述可用分支项目对应的可用分支项目代码,并基于各个可用分支项目代码对应的各个可用分支项目代码生成所述目标项目代码的步骤具体包括:

获取所述可用分支项目的提交记录列表,并基于所述提交记录列表,确定所述可用分支项目对应的各个版本项目代码;

基于所述可用分支项目的各个版本项目代码,生成所述可用分支项目对应的可用分支项目代码;

基于各个可用分支项目代码对应的各个可用分支项目代码生成所述目标项目代码。

由于项目的commit记录对应着每个提交的版本的代码,通过commit记录可以查找到项目的各个历史版本,即commit记录中的项目代码相比当前版本的项目分支代码,会更加完整,因此可通过commit记录获取项目的完整代码。本实施例中,遍历项目所有分支的commit记录以确定所述可用分支项目对应的各个版本项目代码,另外,由于commit记录保存了历史的代码记录,在项目分支修复敏感信息风险后,commit记录中的敏感信息可能未被删除修复,因此仍然存在敏感信息泄露的风险,所以遍历项目所有分支的commit记录进行扫描是github敏感信息检测必不可少的一部分。具体地,获取可用分支项目列表,依次获取所述可用分支项目列表中的各个可用分支项目,并分别对每个可用分支项目获取commit记录列表,对commit记录列表进行去重筛选处理,得到目标对象的所有commit记录列表,并依次切换到commit记录中记录的各个版本项目代码,然后调用扫描引擎对各个版本项目代码进行扫描,以进行敏感信息的检测。其中,可以通过gitbranch-a命令获取到项目的所有分支信息,通过gitcheckout{branch}命令切换分支,通过('gitfetch--all|gitpull--all')命令获取最新分支对应代码,通过gitlog–online命令获取commit记录,并对内容结果进行解析处理,通过gitcheckout{commit}命令切换到commit记录的版本代码,通过scan_repo(key,branch,commit)命令取得相应代码后调用扫描引擎进行扫描。

本发明还提供一种敏感信息的检测装置,所述敏感信息的检测装置包括:

目标代码确定模块,用于获取目标对象的关联账号信息,并基于所述关联账号信息对应的关联项目信息在预设代码库中确定所述目标对象关联的目标开源代码;

敏感信息检测模块,用于基于所述目标对象对应的目标敏感信息特征以及目标检测规则,在所述目标开源代码中进行敏感信息检测;

信息泄露提醒模块,用于在检测到与所述目标敏感信息特征匹配的目标敏感信息时,获取所述目标敏感信息对应的存储信息,并基于所述存储信息进行敏感信息泄露提醒。

进一步地,所述目标代码确定模块具体包括:

目标代码获取单元,用于获取所述目标对象的目标代码上传账号,基于所述目标代码上传账号确定所述目标对象对应上传的目标开源项目信息,并基于所述目标开源项目信息确定所述目标对象对应的目标项目代码;

相关代码获取单元,用于获取所述目标对象的关联对象以及所述关联对象的相关代码上传账号,基于所述相关代码上传账号确定所述关联对象对应上传的相关开源项目信息,并基于所述相关开源项目信息确定所述关联对象对应的相关项目代码;

目标代码确定单元,用于基于所述目标项目代码以及所述相关项目代码,在所述代码库中确定所述目标对象关联的目标开源代码。

进一步地,所述目标代码确定单元还用于:

获取所述目标开源项目信息的分支项目信息,并对所述分支项目信息进行去重处理,生成所述目标开源项目对应的可用分支项目列表;

获取所述可用分支项目列表中各个可用分支项目,获取所述可用分支项目对应的可用分支项目代码,并基于各个可用分支项目代码对应的各个可用分支项目代码生成所述目标项目代码。

进一步地,所述目标代码确定单元还用于:

获取所述可用分支项目的提交记录列表,并基于所述提交记录列表,确定所述可用分支项目对应的各个版本项目代码;

基于所述可用分支项目的各个版本项目代码,生成所述可用分支项目对应的可用分支项目代码;

基于各个可用分支项目代码对应的各个可用分支项目代码生成所述目标项目代码。

进一步地,所述敏感信息检测模块还用于:

基于所述目标代码上传账号的账号级别以及目标开源项目信息的项目级别,确定所述目标项目代码中各个项目代码的目标代码优先级;

基于所述相关代码上传账号的账号级别以及所述相关开源项目信息的项目级别,确定所述相关项目代码中各个项目代码的相关代码优先级;

基于所述目标代码优先级以及相关代码优先级,确定所述目标开源代码中各个项目代码的代码检测顺序;

基于预设敏感信息特征优先级以及所述目标敏感信息特征,确定所述目标敏感信息特征对应的特征检测顺序;

基于所述代码检测顺序以及特征检测顺序,对所述目标开源代码进行敏感信息检测。

进一步地,所述敏感信息的检测装置还包括账号更新检测模块,所述账号更新检测模块用于:

基于预设查询周期以及预设查询接口,获取所述目标对象对应的上传账号,并判断所述目标对象对应的上传账号是否更新;

在所述目标对象的上传账号更新时,获取更新后的上传账号,并基于所述更新后的上传账号对应上传的开源项目信息确定所述目标对象更新后的项目代码。

进一步地,所述目标代码获取单元具体包括:

访问请求单元,用于获取所述目标对象的关联账号信息和关联项目信息,并向所述代码库发送访问请求;

令牌获取单元,用于在接收到所述代码库基于所述访问请求反馈的允许指令时,获取所述允许指令中的目标字符串,作为授权令牌;

数据库访问单元,用于基于所述授权令牌访问所述代码库,并在所述代码库中确定所述关联账号信息以及关联项目信息对应的目标开源代码。

上述各程序模块所执行的方法可参照本发明敏感信息的检测方法各个实施例,此处不再赘述。

本发明还提供一种计算机可读存储介质。

本发明计算机可读存储介质上存储有敏感信息的检测程序,所述敏感信息的检测程序被处理器执行时实现如上所述的敏感信息的检测方法的步骤。

其中,在所述处理器上运行的敏感信息的检测程序被执行时所实现的方法可参照本发明敏感信息的检测方法各个实施例,此处不再赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1