具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明应用程序样本检测方法实施例流程图。如图1所示,本发明实施例的应用程序样本检测方法包括:
S101,收集应用程序样本。
在本发明实施例中,可以通过网络爬虫定期从各渠道应用市场收集Android应用程序样本。各渠道应用市场可以包括Android手机应用商店,或者还可以包括各软件下载平台。本发明实施例对此不作限定。网络爬虫可以采集指定网站上指定范围内的页面数据,然后通过正则表达式解析出页面上的任意数据项;或者可以据预设模版对内容、标题或者感兴趣的信息项进行自动解析或过滤性提取。
S102,对应用程序样本进行检测,得到检测结果;其中,检测包括盗版检测、静态权限检测、漏洞检测、隐私检测、内容检测、攻陷指标数据检测和恶意样本检测之中的至少两种。
在本发明实施例中,对应用程序样本进行检测可以包括盗版检测、静态权限检测、漏洞检测、隐私检测、内容检测,或者还可以包括盗版检测、静态权限检测、漏洞检测、隐私检测、内容检测、攻陷指标数据检测和恶意样本检测。本发明实施例对此不作限定。应用程序样本在经历上述检测后,任意一种检测认为参与检测的应用程序样本是不安全的,那么认为该样本是不安全的。
本发明实施例提供的应用程序样本检测方法,通过收集应用程序样本;对应用程序样本进行检测,得到检测结果;其中,检测包括盗版检测、静态权限检测、漏洞检测、隐私检测、内容检测、攻陷指标检测和恶意样本检测之中的至少两种。通过对应用程序样本进行多维度检测,可以有效提升检测结果的准确性。
图2为本发明盗版检测方法实施例流程图。如图2所示,本发明实施例的盗版检测方法,包括:
S201,收集与应用程序样本对应的应用程序样本文件信息及概要信息。
在本发明实施例中,收集的应用程序样本文件信息可以包括样本MD5、SHA1值;概要信息可以包括渠道信息、样本大小、样本url以及开发者信息。将file和text进程队列中收集的应用程序样本文件信息及概要信息合并存储到MongoDB集合。
S202,对应用程序样本进行解析,得到解析的应用程序样本文件信息。
在本发明实施例中,通过解析应用程序样本,可以获得收集的应用程序样本文件信息之外的应用程序样本文件信息。比如,可以获得应用程序名称,包名,证书信息,样本MD5等信息。
S203,将收集的应用程序样本文件信息和解析的应用程序样本文件信息整合,得到整合的应用程序样本文件信息。
在本发明实施例中,将收集的应用程序样本文件信息和通过解析应用程序样本得到的解析的应用程序样本文件信息进行整合,可以得到完整的应用程序样本文件信息。整合的过程可以包括将收集的应用程序样本文件信息与解析的应用程序样本文件信息进行汇总,其中,对内容相同的同一信息进行合并,若同一信息的内容不同,保留解析的应用程序样本文件信息中的该信息。比如,收集的应用程序样本文件信息与解析的应用程序样本文件信息中均包括样本MD5,若二者中样本MD5的值相同,那么将该信息合并;若二者中样本MD5的值不同,删除收集的应用程序样本文件信息中样本MD5的信息,保留解析的应用程序样本文件信息中样本MD5的信息。
S204,根据整合的应用程序样本文件信息和对应的概要信息得到白名单信息,白名单信息为初步安全的样本应用程序样本的集合。
在本发明实施例中,应用程序样本文件信息中的某些信息和对应的概要信息中信息某些信息包含了同样的信息,若判断同样的信息是一致的,认为该应用程序样本文件信息和概要信息对应的应用程序样本是安全的,将其收录在白名单上,满足条件的应用程序样本的集合构成白名单信息。比如,由于应用程序样本中整合的应用程序样本文件信息中的证书信息包括了开发者的信息,将证书信息和概要信息中的开发者信息进行对比,若二者的开发者信息一致,那么将该应用程序样本收录在白名单上。
可选地,在根据整合的应用程序样本文件信息和对应的概要信息得到白名单信息之前,还包括对概要信息进行筛选和过滤,去除不准确和不详实的信息。
S205,根据白名单信息对应用程序样本进行盗版检测,得到标记盗版的应用程序样本。
在本发明实施例中,可以通过白名单信息中的应用程序样本的包名、应用程序名称、图标等维度对收集的应用程序样本进行盗版标记。比如,收集的应用程序样本的包名和白名单信息中的应用程序样本的包名不一致,那么可以认为该收集的应用程序样本为盗版,且通过包名标记该应用程序样本为盗版。在此基础上,如果该应用程序样本的应用程序名称与白名单信息中的应用程序样本的包名不一致,那么通过应用程序名称标记该应用程序样本为盗版。该应用程序样本同时通过包名和应用程序名称两个维度标记盗版。如果待检测的应用程序样本的从多个维度别识别为盗版,那么需要从多个维度对该应用程序样本样本进行盗版标记。
本发明提供的盗版检测方法,可以从多个维度对待检测的应用程序样本进行标记,可以最大程度地检出盗版的应用程序样本。
图3为本发明静态权限检测方法实施例流程图。如图3所示,本发明实施例的静态权限检测方法,包括:
S301,对应用程序样本的权限进行检测,标记权限为高危、中危或低危。
在本发明实施例中,应用程序样本的权限可以包括网络连接权限、声音权限、录音权限、拍照权限、发短信权限以及获取联系人信息的权限等。通常认为,发短信权限以及获取联系人信息的权限为高危权限,录音权限和拍照权限为中危权限,网络连接权限和震动权限为低危权限。
S302,根据标记的权限,得到静态权限检测报告。
在本发明实施例中,在对权限标记完毕后,对标记为高危、中危或低危的静态权限进行汇总,可以形成静态权限检测报告。
本发明实施例提供的静态权限检测方法,通过对不同的权限进行不同等级的标识,可以对等级高的权限进行重点监控。
图4为本发明漏洞检测方法实施例流程图。如图4所示,本发明实施例的漏洞检测方法,包括:
S401,对应用程序样本的漏洞进行检测,标记漏洞为高危、中危或低危。
在本发明实施例中,步骤S401的描述同步骤S301的描述类似,详见步骤S301,在此不作敷述。此外,可以利用漏洞扫描工具对漏洞进行扫描。该漏洞扫描工具通过分析apk本身的配置文件与二进制文件,从多个维度出发,发现可能存在的安全漏洞。该漏洞扫描工具能够简单快速的对指定的合法apk文件进行静态漏洞扫描。目前输出结果可以为漏洞类型、漏洞名称、漏洞描述、修复建议以及漏洞等级。
S402,根据标记的漏洞,得到漏洞检测报告。
在本发明实施例中,步骤S402的描述同步骤S302的描述类似,详见步骤S302,在此不作敷述。
本发明实施例提供的漏洞检测方法,通过对漏洞进行不同等级的标记,可以对等级高的漏洞进行重点监控。
图5为本发明隐私检测方法实施例流程图。如图5所示,本发明实施例的隐私检测方法,包括:
S501,监控应用程序样本是否存在主动获取用户敏感信息的行为。
在本发明实施例中,主动获取用户敏感信息的行为可以包括未经用户授权或者在用户不知情的情况下获取用户的联系人信息、获取用户的身份信息,或者获取用户的银行卡信息等,本发明实施例对主动获取用户敏感信息的行为不作限定。目前,主要利用沙箱动态检测确定是否存在主动获取用户敏感信息的行为。沙箱中会预置用户个人信息与设备信息,应用程序样本在沙箱中运行时,用户敏感信息与设备敏感信息会被监控。若用户敏感信息与设备敏感信息被短信转发或者通过联网转发,那么确定该应用程序样本存在主动获取用户敏感信息的行为。
S502,根据应用程序样本的行为,得到隐私检测报告。
在本发明实施例中,如果应用程序样本存在主动获取用户敏感信息的行为,将该应用程序样本存在主动获取用户敏感信息的行为进行记录。其中,若该应用程序样本存在一种主动获取用户敏感信息的行为进行记录,那么对该种主动获取用户敏感信息的行为进行记录;若该应用程序样本存在多种主动获取用户敏感信息的行为进行记录,那么对多种主动获取用户敏感信息的行为进行记录。比如,某应用程序样本存在主动获取用户的联系人信息的行为,那么记录该应用程序样本主动获取用户的联系人信息;另一应用程序样本存在主动获取用户的联系人信息、获取用户的身份信息以及获取用户的银行卡信息的行为,那么需要记录以上三种行为。对所有应用样本的否存在主动获取用户敏感信息的行为检测,将检测的结果进行整合,得到隐私检测报告。
本发明实施例提供的隐私检测方法,通过对应用程序样本是否存在主动获取用户敏感信息的行为进行检测并记录,弥补了现有技术中缺乏隐私检测的不足,能够进一步应用程序样本是否是安全的,提升检测的准确性。
图6为本发明内容检测方法实施例的流程示意图。如图6所示,本发明实施例的内容检测方法,包括:
S601,对应用程序样本进行色情软件检测、博彩软件检测和流氓软件检测。
S602,根据内容检测,得到对应标记的应用程序样本。
在本发明实施例中,主要从关键字,图标,软件框架三方面对应用程序样本进行色情软件检测、博彩软件检测和流氓软件检测。其中,关键字可以包括软件名称和包名等。比如,若软件名称中有xx彩,xx老虎机,xx视频,xx影院,或者包名中带有sexvideo等关键字,标记其为色情软件或博彩软件;利用图标进行内容检测可以包括,利用图片相似度算法,先对博彩,色情软件等图标进行分类训练,符合算法阈值的,自动处置为色情软件或博彩软件;利用软件框架进行内容检测可以包括,利用插件提取反病毒引擎特征对流氓软件或者博彩软件进行识别。
本发明实施例提供的内容检测方法,通过对应用程序样本进行色情软件检测、博彩软件检测和流氓软件检测,增加了检测的维度的多样性,可以有效提升检测的准确性。
图7为本发明攻陷指标检测方法实施例流程图。如图7所示,本发明实施例的攻陷指标检测方法,包括:
S701,将触发的攻陷指标与已知高级持续性威胁的历史攻陷指标库进行匹配,得到第一已知高级持续性威胁组织;和/或,将触发攻陷指标的动态行为与动态高级持续性威胁特征进行匹配,得到第二已知高级持续性威胁组织。
在本发明实施例中,攻陷指标(Indicator of Compromise,简称IOC),一般是IP、URL或者域名的IOC指标。高级持续性威胁组织是黑客以窃取核心资料为目的所发动的网络攻击和侵袭行为的组织。已知高级持续性威胁的历史攻陷指标库是预先建立的。已知高级持续性威胁的历史攻陷指标库可以包括历史攻陷指标、与其对应的已知高级持续性威胁组织以及已知高级持续性威胁组织的动态高级持续性威胁特征。第一已知高级持续性威胁组织和第二已知高级持续性威胁组织是已知高级持续性威胁的历史攻陷指标库中,历史攻陷指标对应的发动网络攻击和侵袭行为的已知高级持续性威胁组织。动态高级持续性威胁特征是已知的高级持续性威胁组织发出攻击行为时形成的特征,被收集在已知高级持续性威胁的历史攻陷指标库中。
将触发的攻陷指标与已知高级持续性威胁的历史攻陷指标库进行匹配,若匹配成功,得到第一已知高级持续性威胁组织,并将触发攻陷指标的动态行为与其进行匹配,若匹配成功,得到第二已知高级持续性威胁组织。若第一已知高级持续性威胁组织与第二已知高级持续性威胁组织是相同的,那么可以确定发出攻击的已知高级持续性威胁组织;若二者是不同的,那么通过人工决策确定发出攻击的已知高级持续性威胁组织为二者中的哪一个。
将触发的攻陷指标与已知高级持续性威胁的历史攻陷指标库进行匹配,若匹配不成功,将触发攻陷指标的动态行为与进行匹配,若匹配成功,得到第二已知高级持续性威胁组织,并将其确定为发出攻击的已知高级持续性威胁组织。
将触发的攻陷指标与已知高级持续性威胁的历史攻陷指标库进行匹配,若匹配成功,得到第一已知高级持续性威胁组织,并将触发攻陷指标的动态行为与进行匹配,若匹配不成功,确定第一已知高级持续性威胁组织为发出攻击的已知高级持续性威胁组织。
S702,根据第一已知高级持续性威胁组织和/或第二已知高级持续性威胁组织,得到攻陷指标检测报告。
在本发明实施例中,将对应用程序样本进行攻陷指标检测确定的发出攻击的已知高级持续性威胁组织进行记录,得到攻陷指标检测报告。
本发明实施例提供的攻陷指标检测方法,通过对攻陷指标数据进行检测,可以弥补现有技术中缺乏攻陷指标检测的空白,提升检测维度与检测的全面性。
图8为本发明恶意样本检测方法实施例流程图。如图8所示,本发明实施例的恶意样本检测方法,包括:
S801,利用静态引擎对应用程序样本进行静态特征检出。
S802,利用沙箱对应用程序样本进行动态沙箱规则检出。
S803,根据静态特征检出的结果和动态沙箱规则检出的结果,得到恶意样本检测报告。
在本发明实施例中,对恶意样本进行检测通过自动化完成,以静态特征检出与沙箱规则结合为主,人工分析为辅。其中,静态引擎的检出占总检出的95%,沙箱规则检出占总检出的80%。沙箱规则检出主要是通过触发恶意行为或者触发恶意网址实现的。
本发明实施例提供的恶意样本检测方法,通过静态引擎和沙箱进行特征检出,提升了检测的全面性和准确性。
在一些可选的实施例中,收集应用程序样本之后,还包括:过滤存储应用程序样本;记录来源于不同渠道的同一样本信息的渠道信息;对应用程序样本进行检测,得到检测结果之后,还包括:将检测结果汇总发送至客户端,并对检测结果中的不安全的应用程序样本进行溯源。
在本发明实施例中,以如下例子说明记录来源于不同渠道的同一样本信息的渠道信息。某一应用程序样本从某手机应用商店中收集得到,同时也在某软件下载平台收集得到,需要记录该应用程序样本的来源渠道为某手机应用商店和某软件下载平台。
将经过盗版检测、静态权限检测、漏洞检测、隐私检测、内容检测、攻陷指标数据检测和恶意样本检测之中的至少两种检测的检测结果进行汇总,并将汇总的检测结果发送至客户端。同时,通过渠道信息或者开发者信息等对检测结果中不安全的应用程序样本进行溯源。
本发明实施例中,通过对同一应用程序样本的多个渠道进行记录,可以确定应用程序样本的来源,便于溯源;将汇总的检测结果发送至客户端可以提醒用户存在的安全隐患;对检测结果中不安全的应用程序样本进行溯源可以有针对性地对不安全样本的来源进行防护。
图9为本发明一种应用场景实施例示意图。如图9所示,对应用程序样本进行检测包括以下步骤:步骤1,收集流程,包括对手机应用程序样本的收集、物联网(Internet ofThings,简称IOT)应用程序样本的收集以及企业内生应用程序样本的收集,同时收集与应用程序样本对应的应用程序样本文件信息和概要信息,将收集的应用程序样本及对应的应用程序样本文件信息和概要信息进行汇总;步骤2,对收集的应用程序样本进行解析,得到解析的应用程序样本文件信息,将收集的应用程序样本文件信息和解析的应用程序样本文件信息整合,与人工整理的概要信息中的开发者信息对比,得到白名单信息;步骤3,根据白名单信息对应用程序样本进行盗版检测;步骤4,对应用程序样本进行静态权限检测;步骤5,对应用程序样本进行漏洞检测;步骤6,对应用程序样本进行隐私检测;步骤7,对应用程序样本进行内容检测;步骤8,对应用程序样本进行攻陷指标检测;步骤9,对应用程序样本进行恶意样本检测,恶意样本检测通过静态特征检出、沙箱规则以及人工监控处理完成;步骤9,将步骤3至步骤9的检测结果进行汇总,上传至云引擎并下发至客户端。
图10为本发明应用程序样本检测装置实施例结构示意图。如图10所示,该应用程序样本检测装置,包括:
收集模块1001,用于收集应用程序样本;
检测模块1002,用于对应用程序样本进行检测,得到检测结果;其中,检测包括盗版检测、静态权限检测、漏洞检测、隐私检测、内容检测、攻陷指标数据检测和恶意样本检测之中的至少两种。
可选地,检测模块1002,包括:
收集单元,用于收集与应用程序样本对应的应用程序样本文件信息及概要信息;
解析单元,用于对应用程序样本进行解析,得到解析的应用程序样本文件信息;
整合单元,用于将收集的应用程序样本文件信息和解析的应用程序样本文件信息整合,得到整合的应用程序样本文件信息;
确定单元,用于根据整合的应用程序样本文件信息和对应的概要信息得到白名单信息,白名单信息为初步安全的样本信息;
盗版检测单元,用于根据白名单信息对应用程序样本进行盗版检测,得到标记盗版的应用程序样本。
可选地,检测模块1002,还包括:
静态权限检测单元,用于对应用程序样本的权限进行检测,标记权限为高危、中危或低危;
第一生成单元,用于根据标记的权限,得到静态权限检测报告。
可选地,检测模块1002,还包括:
漏洞检测单元,用于对应用程序样本的漏洞进行检测,标记漏洞为高危、中危或低危;
第二生成单元,用于根据标记的漏洞,得到漏洞检测报告。
可选地,检测模块1002,还包括:
隐私检测单元,用于监控应用程序样本是否存在主动获取用户敏感信息的行为;
第三生成单元,用于根据应用程序样本的行为,得到隐私检测报告。
可选地,检测模块1002,还包括:
内容检测单元,用于对应用程序样本进行色情软件检测、博彩软件检测和流氓软件检测;
第四生成单元,用于根据内容检测,得到对应标记的应用程序样本。
可选地,检测模块1002,还包括:
攻陷指标检测单元,用于将触发的攻陷指标与已知高级持续性威胁的历史攻陷指标库进行匹配,得到第一已知高级持续性威胁组织;和/或,将触发攻陷指标的动态行为与动态高级持续性威胁特征进行匹配,得到第二已知高级持续性威胁组织;
第五生成单元,用于根据第一已知高级持续性威胁组织和/或第二已知高级持续性威胁组织,得到攻陷指标检测报告。
可选地,检测模块1002,还包括:
恶意样本检测单元,用于利用静态引擎对应用程序样本进行静态特征检出;利用沙箱对应用程序样本进行动态沙箱规则检出;
第六生成单元,用于根据静态特征检出的结果和动态沙箱规则检出的结果,得到恶意样本检测报告。
可选地,应用程序样本检测装置,还包括:
过滤存储模块,用于过滤存储应用程序样本;
记录模块,用于记录来源于不同渠道的同一样本信息的渠道信息;
可选地,应用程序样本检测装置,还包括:
汇总溯源模块,用于将检测结果汇总发送至客户端,并对检测结果中不安全的应用程序样本进行溯源。
图11示例了一种电子设备的实体结构示意图,如图11示,该电子设备可以包括:处理器(processor)1101、通信接口(Communications Interface)1102、存储器(memory)1103和通信总线1104,其中,处理器1101,通信接口1102,存储器1103通过通信总线1104完成相互间的通信。处理器1101可以调用存储器1103中的逻辑指令,以执行如下方法:收集应用程序样本;对应用程序样本进行检测,得到检测结果;其中,检测包括盗版检测、静态权限检测、漏洞检测、隐私检测、内容检测、攻陷指标检测和恶意样本检测之中的至少两种。
此外,上述的存储器1103中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各实施例提供的应用程序样本检测方法,例如包括:收集应用程序样本;对应用程序样本进行检测,得到检测结果;其中,检测包括盗版检测、静态权限检测、漏洞检测、隐私检测、内容检测、攻陷指标检测和恶意样本检测之中的至少两种。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的应用程序样本检测方法,例如包括:收集应用程序样本;对应用程序样本进行检测,得到检测结果;其中,检测包括盗版检测、静态权限检测、漏洞检测、隐私检测、内容检测、攻陷指标检测和恶意样本检测之中的至少两种。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。