发明内容
本发明所要解决的技术问题是提供一种移动终端软件包安全检测方法及系统,能够对移动终端内软件包的安全类别进行划分。
为了解决上述问题,本发明公开了一种移动终端软件包安全检测方法,包括以下步骤:
获取移动终端内的软件包的唯一标识符,其中,所述唯一标识符由软件包开发平台分发给软件包,作为软件包的身份标识,所述软件包为已经安装于移动终端上的软件包时,从软件包开发平台的提供者的数据库中获取所述唯一标识符,所述软件包为未安装于移动终端的软件包时,通过对软件包解包分析后,从软件包开发平台的提供者的数据库中获取所述唯一标识符;
根据软件包的唯一标识符获取所述软件包的相关信息;
根据软件包的唯一标识符和软件包相关信息在预先设定的软件信息综合数据库中查询并确定软件包的安全类别。
进一步地,所述方法还包括根据所述确定的软件包安全类别对软件包进行相应的处理。
进一步地,所述对软件包进行相应的处理包括:
删除所述软件包;或
卸载所述软件包;或
禁止软件包安装;或
根据确定的安全类别给出提示信息。
进一步地,所述根据软件包的唯一标识符获取所述软件包的相关信息包括:
获取所述软件包的证书及版本号信息,所述软件包的安全类别根据所述软件包的唯一标识符、证书及版本号信息确定。
进一步地,所述根据软件包的唯一标识符获取所述软件包的相关信息还包括:
获取所述软件包的可执行程序信息,所述软件包的安全类别根据所述软件包的唯一标识符、证书、版本号及可执行程序信息确定。
进一步地,所述软件包的安全类别确定方法包括:
根据所述软件包的唯一标识符、证书及版本号信息逐级确定所述移动终端内软件包的安全类别。
进一步地,所述软件包的安全类别确定方法包括:
根据所述软件包的证书信息查询黑证书数据库,判断所述软件包的证书是否是黑证书。
进一步地,所述软件包的安全类别确定方法包括:
根据所述软件包的可执行程序信息查询木马插件数据库,判断所述软件包是否包含木马插件。
进一步地,所述软件包的安全类别确定方法包括:
根据所述软件包的可执行程序信息查询恶意插件数据库,判断所述软件包是否包含恶意插件。
进一步地,所述软件包的安全类别确定方法包括:
根据所述软件包的证书信息查询白证书数据库,判断所述软件包的证书是否是白证书。
进一步地,所述根据软件包的唯一标识符获取所述软件包的相关信息包括:
将所述软件包的唯一标识符作为关键字在数据库中查找包含有所述唯一标识符的一组信息;
包含有所述唯一标识符的一组信息为软件包的相关信息。
进一步地,所述获取移动终端内未安装软件包的唯一标识符的方法为:
对未安装的软件包进行解包;
从解包后的软件包中读取所述软件包的唯一标识符。
进一步地,所述移动终端内的软件包包括已经安装和未安装的软件包,所述未安装的软件包包括未启动安装和未完成安装的软件包。
进一步地,所述方法还包括:
根据用户需求启动对移动终端内的已经安装和未安装的软件包的安全检测;和/或
根据预设时间启动对移动终端内已经安装的软件包的安全检测;和/或
若监测到移动终端内正在安装或准备安装软件包,则自动启动对该安装软件包的安全检测。
为了解决上述问题,本发明还公开了一种移动终端软件包安全检测系统,包括:
唯一标识符获取模块,用于获取移动终端内的软件包的唯一标识符,其中,所述唯一标识符由软件包开发平台分发给软件包,作为软件包的身份标识,所述软件包为已经安装于移动终端上的软件包时,从软件包开发平台的提供者的数据库中获取所述唯一标识符,所述软件包为未安装于移动终端的软件包时,通过对软件包解包分析后,从软件包开发平台的提供者的数据库中获取所述唯一标识符;
软件包信息获取模块,用于根据唯一标识符来获取软件包的相关信息;
安全类别确定模块,根据获取的唯一标识符和软件包相关信息在预先设定的软件信息综合数据库中查询并确定软件包的安全类别。
进一步地,所述软件信息综合数据库包括:
软件信息数据库,用于确定软件包的逐级安全类别;和/或
黑证书数据库,用于判断软件包的证书是否为黑证书;和/或
木马插件数据库,用于判断软件包中是否包含木马插件;和/或
恶意插件数据库,用于判断软件包中是否包含恶意插件;和/或
白证书数据库,用于判断软件包的证书是否为白证书。
与现有技术相比,本发明具有以下优点:
本发明的移动终端软件包安全检测方法及系统,通过获取标识软件包身份的唯一标识符来获取软件包的其他信息,并结合预先设定的软件信息综合数据库来查询并确定软件包的安全类别。预先设定的软件信息综合库能够存储大量的软件包信息,能使安全类别的判断具有依据,从而能对软件包信息有较为准确的判断,可以保证确定的安全类别的准确性。
其次,此种方法可以对已安装的及未安装的软件包的安全类别进行检测,检测范围较广,不会受到软件包是否安装或者安装文件是否运行等限制。
另外,通过唯一标识符、证书及版本号的结合来对软件包的安全类别进行检测,能够对保证获取的软件包信息的准确性。因为虽然唯一标识符是软件包的标识,但软件包在开发后有可能被别人恶意修改,此时其唯一标识符可能不会改变,而证书则会因为修改而改变,此外,软件包也可能因为版本的改变而出现不同的安全类别。所以,通过三种信息的结合可以保证获取的软件包信息的准确性,从而保证确定的安全类别的准确性。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,示出本发明的移动终端软件包安全检测方法实施例,包括以下步骤:
步骤101,获取移动终端内的软件包的唯一标识符。
移动终端内的软件包可以是其中的已经安装和未安装的软件包,其中,未安装的软件包又可以包括未启动安装和未完全安装的软件包。
软件包在开发时会获得一个唯一标识符(UID,Unique identifier),此唯一标识符通常由软件包开发平台的提供者分发给基于平台开发的软件包,作为软件包的身份标识,以便提供者能对基于该开发平台开发的软件包进行识别。例如,每个Symbian软件包都会包含一个由Symbian公司分发的唯一标识符。其中,软件包可以是已经安装于移动终端上的软件包,也可以未安装的软件包。无论是已经安装的还是未安装的,都会具有唯一标识符。对于已经安装于移动终端上的软件包的唯一标识符可以直接从软件包开发平台的提供者的数据库中获取;对于未安装的软件包的唯一标识符,可以通过对其解包分析后从软件包开发平台的提供者的数据库获取。因为未安装的软件包中可能只包括一个安装包,也能包括多个,例如,主安装包及嵌套的子安装包,通过解包分析,可以获取软件包中所有安装包的唯一标识符。
未安装的软件包中可能会包括主安装包及嵌套的子安装包,通过解包分析,可以获取每一个安装包的唯一标识符。
步骤102,根据软件包的唯一标识符获取所述软件包的相关信息。
通过软件包的唯一标识符可以从软件包开发平台的提供者的数据库中获取该软件包的相关信息,例如证书、版本号等。此处的证书指按照某些规范进行的软件签名,通过软件签名可以保证软件包的安全性,即避免被他人篡改。例如,Symbian系统中的证书采用X509证书规范来进行软件的签名。
具体的,可以将获取的软件包的唯一标识符作为关键字,在软件包开发平台的提供者的数据库查询包含有该唯一标识符的一组信息,得到这组信息即为软件包的相关信息。
步骤103,根据软件包的唯一标识符和软件包相关信息在预先设定的软件信息综合数据库中查询并确定软件包的安全类别。
在获取软件包的唯一标识符、证书及版本号等信息后,可以从预先设定的软件信息综合数据库中查询软件包的安全类别。预先设定的软件信息综合库能够存储大量的软件包信息,能使安全类别的判断具有依据,从而能对软件包信息有较为准确的判断,可以保证确定的安全类别的准确性。
虽然唯一标识符是识别基于Symbian操作系统所开发的软件包的标识,但是因为软件包在开发后有可能被别人恶意修改,此时其唯一标识符可能不会改变,而证书则会因为修改而改变。此外,软件包也可能因为版本的改变而出现不同的安全类别,例如,某一软件开发者为了避免其开发的恶意程序被识别,首先开发出符合安全条件的第一版本的软件包,然后在第二版本中进行恶意插件的添加。所以通过前述三者的结合,通过三种信息的结合可以保证获取的软件包信息的准确性。
进一步地,在确定软件包安全类别后还包括根据确定的软件安全包类别对软件进行相应的处理。例如,删除所述软件包、卸载所述软件包、禁止软件包安装、或根据确定的安全类别给出提示信息等等。具体如何处理,可以根据安全类别来确定。
另外,软件包的安全类别可以采用逐渐确定的方式来实现。
首先,可以根据软件包的唯一标识符、证书及版本号信息查询软件信息数据库中,得到该软件包的初步安全类别。
初步安全类别一般根据软件包的安全级别来划分,例如,可以按照安全级别从高到低划分,划分的等级数量可以根据实际情况来确定。为了使软件包的安全类别较为准确,划分的等级数量越多越好,另外,为了简化程序,划分的等级又需要尽可能的少。所以,考虑前述两种情况,可以考虑划分的等级数量为3-5级之间,能保证确定的安全类别较为准确,同时又能使确定程序较少。
如果得到的软件包的初步安全类别是表示最低安全级别的那一类,那么可以直接将软件包确定为那一类别,就无需进行后续判断。如果初步安全类别是除最低安全级别以外的其他类,则可以进行后续的判断来进一步确定其安全类别。假设,以软件信息数据库中的初步安全类别为“安全”、“谨慎使用”、“危险”、“木马”四种以及表示软件信息数据库中无相应信息的“未知”,一共五种类别为例进行说明。如果在软件信息数据库中查询到软件包的初步安全类别为“木马”,则说明其具有较大的危险性,此时可以不进行后续判断,直接将软件包的安全类别确定为“木马”,如果是其他几种,则可以再进行后续的判断。
其次,如果软件包的初步安全类别是最低安全级别以外的类别,那么可以根据软件包的证书查询黑证书数据库,判断软件包的证书是否是黑证书。如果是黑证书,则也将软件包的安全类别确定为最低安全级别的那一类。
如果经过前面的判断得出,软件包的初步安全类别既不属于最低安全级别的一类,证书也不是黑证书,那么可以再借助软件包的其他信息来确定软件包的安全类别。此时可以通过获取软件包中可执行程序信息来进行判断,当然,为了简化流程,可执行程序信息也可以在获取软件包的证书、版本号信息的同时一并获取,供后续使用。
在获取软件包的可执行程序信息后,根据可执行程序信息查询木马插件数据库,判断软件包是否包含木马插件。如果包含,则也将软件包的安全类别确定为最低安全级别的那一类。反之,则判断软件包的初步安全类别是否是安全级别仅高于最低安全级别的那一类。如果是,则也无需再进行判断,则将软件包的安全类别确定为安全级别仅高于最低安全级别的那一类,并提示移动终端用户,表示虽然安全级别不是属于最低级别,但是还具有一定的危险性。如果不是,则根据可执行程序信息查询恶意插件数据库,判断软件包是否包含恶意插件。如果包含,则给出提示,反之,则继续判断。
如果软件包不包含恶意插件,则表示其安全类别应该属于安全或者根据前述判断尚无法确定。此时可以通过根据软件包的证书查询白证书数据库,判断软件包的证书是否是白证书。如果是白证书,那么可以确定软件包的安全类别属于最高安全级别那一类。反之,则说明根据当前的信息可以确定软件包的危险性较小,但是无法确定其足够的安全,那么可以根据预先设定的安全类别,将其确定为对应的一类,例如“未知”。
对移动终端软件包安全检测可以根据用户需求启动对移动终端内已经安装或者未安装软件包的安全检测,也可以根据预设时间启动对移动终端内已经安装的软件包的安全检测,还可以采用监测到移动终端内准备安装或者正在安装软件包,则自动启动对准备安装或者正在安装安装软件包的安全检测。具体的可以根据需要来确定,可以采用前述三种方式任何的组合方式来进行安全检测,也可以只采用其中一种方式来进行安全检测。
另外,在监测到移动终端内准备安装或者正在安装软件包时,可以先暂停软件包的安装包,等确认其安全类别后再允许其继续安装,也可以在安装的过程中同时确认其安全类别,本发明对此并不限制。
参照图2,假设将安全类别共分为四类,分别为“安全”、“危险”、“含恶意插件”及“木马”。软件信息数据库的初步安全类别也为四类,分别为“安全”、“谨慎使用”、“危险”及“木马”。因为数据库的更新问题或者其他原因,可能会存在无法确定某些软件包的初步安全类别或者安全类别的情况。所以,为了保证软件包安全信息确定的准确性,如果软件包的安全类别或者初步安全类别不属于前述的几种类别,则将其归为“未知”。即相当于,安全类别共有五类,分别为“安全”、“危险”、“含恶意插件”、“木马”及“未知”;初步安全类别也有五类,分别为“安全”、“谨慎使用”、“危险”、“木马”及“未知”。根据软件包的唯一标识符和软件包相关信息在预先设定的软件信息综合数据库中查询并确定软件包的安全类别可以通过以下步骤实现:根据软件包的唯一标识符、证书及版本号查询该软件包的初步安全类别。
软件信息数据库中的初步安全类别信息因为包括以下五种:“安全”、“谨慎使用”、“危险”、“木马”及“未知”。对于软件信息数据库中已记录信息的软件包,其初步安全类别分别对应前面四种,即,“安全”、“谨慎使用”、“危险”、“木马”。对于软件信息数据库中未记录信息的软件包,其初步安全类别为“未知”。
判断软件包的初步安全类别是否为“木马”,如果是,则确定软件包的安全类别为“木马”,反之,则进行下一步骤。
如果软件包的初步安全类别为木马,则无需再进行后续的判断,直接将该软件包的安全类别确定为“木马”。其中,对于安全类别为木马级的,如果是已经安装的软件包,则可以强制卸载,如果是未安装的软件包,则可以直接删除。如果初步安全类别不是木马,则需要再进行后续的判断。
判断软件包的证书是否为黑证书,如果是,则确定软件包的安全类别为“木马”,反之,则进行下一步骤。
黑证书数据库中存储有证书为黑证书的软件包的信息,表示该类软件包具有较大的危险性。在黑证书数据库中查询是否包含有软件包的证书信息,如果有,则说明软件包的证书为黑证书,那么可以将该软件包视为木马程序,且安全类别也确定为“木马”。反之,则说明软件包的证书不是黑证书,那么软件包的安全类别还需要进一步地判断。
判断软件包是否包含木马插件,如果是,则确定软件包的安全类别为“木马”,反之,则进行下一步骤。
木马插件数据库中存储有木马插件信息,根据获取的软件包信息来判断软件包中是否包含有木马插件,如果是,则将软件包的安全类别确定为“木马”,反之,则还需要进一步地判断。
判断软件包的初步安全类别是否为危险级,如果是,则确定软件包的安全类别为“危险”,反之,则进行下一步骤。
对于安全类别为“危险”的软件包,可以给出提示,表示该软件包具有一定的危险性,由移动终端用户来决定如何处理。
判断软件包是否包含恶意插件,如果是,则确定软件包的安全类别为“含恶意插件”,反之,则进行下一步骤。
此处的恶意插件是指出木马插件以外的恶意程序。如果软件包包含恶意插件,则说明软件包可能是盗版,可以给出相应的提示,告知移动终端用户,由用户来决定如何处理。
判断软件包的证书是否为白证书,如果是,则确定软件包的安全类别为“安全”,反之,则确定软件包的安全类别为“未知”。
白证书数据库中存储有证书为白证书的软件包的信息,表示该类软件包是经过安全检测的。在白证书数据库中查询是否包含有软件包的证书信息,如果有,则说明软件包的证书为白证书,那么可以将该软件包视为安全的,且安全类别确定为“安全”。反之,则说明软件包的证书不是白证书,那么软件包的安全类别确定为“未知”,可以给出相应的提示,告知移动终端用户,由用户来决定如何处理。
本实施例中,将安全类别分为“安全”、“未知”、“危险”、“含恶意插件”及“木马”五种。可以理解,软件的安全类别也可以分为其他种类,例如,将“含恶意插件”与“危险”合并为一种,或者用其他级别来代替本实施例中所确定的级别等等,只要能对软件包的安全类别进行分类就可以,本发明对此并不限制。
可以理解,上述步骤的顺序也可以调换,只要能满足各种安全类别的判断条件就可以确定出安全类别。另外,上述步骤是根据本实施例中所确定的安全类别来确定的,当安全类别的种类发生变化,上述步骤也可以相应变化,只要能按照前述步骤的判断思路来确定安全类别就可以。
前述步骤中的各种数据库可以统称为软件信息综合数据库,这些数据库可以直接存储在移动终端内,当需要查询时,可以直接读取,可以减少上网流量,也可以在脱机时使用。当然,这些数据库也可以存储在服务器上,当需要时,从服务器端读取,这样可以减少对移动终端资源的占用。当然,也可以采取数据库部分存储在移动终端内,另一部分数据库存储在服务器端的方式来进行存储。对于在服务器端的数据库可以进行管理和维护以做到实时更新,对于存储在移动终端的数据库可以通过网络从服务器上下载更新。
例如,移动终端数据库中存储“黑证书数据库”、“木马插件数据库”、“恶意插件数据库”和“白证书数据库”的数据,以及“软件信息数据库”中与移动终端内安装程序相关的数据信息。在使用时,根据需要与服务器同步“黑证书数据库”、“木马插件数据库”、“恶意插件数据库”和“白证书数据库”。如果发现移动终端内存储的“软件信息数据库”中未包含某软件包,则向服务器提交必要的软件信息(UID+版本号+证书信息+可执行程序信息),从服务器上获取该软件包的信息。另外,使用者根据需要向服务器提交移动终端内的“软件信息数据库”中的关键数据,查询软件信息是否需要更新,服务器下发更新的软件信息,使用者把下发的软件包数据更新至移动终端内的“软件信息数据库”
参照图3,示出本发明实施例的移动终端软件包安全检测系统,包括唯一标识符获取模块10、软件包信息获取模块20和安全类别确定模块30。
唯一标识符获取模块10,用于获取移动终端内的软件包的唯一标识符。
软件包信息获取模块20,用于根据唯一标识符来获取软件包的相关信息,如证书、版本号、可执行程序等信息。
安全类别确定模块30,根据获取的唯一标识符和软件包相关信息在预先设定的软件信息综合数据库中查询并确定软件包的安全类别。安全类别可以预先设定,例如,“安全”、“未知”、“危险”、“含恶意插件”及“木马”等。
参照图4,进一步地,软件信息综合数据库包括软件信息数据库41、黑证书数据库43、木马插件数据库44、恶意插件数据库45及白证书数据库46。
软件信息数据库41,用于确定软件包的初步安全类别,并将确定结果传递给安全类别确定模块30。其中初步安全类别可以人为界定,实现存储软件包的相关信息,并存入对应的级别。软件信息数据库41所确定的初步级别包括“安全”、“谨慎使用”、“危险”、“木马”及“未知”五种。如果软件包的初步安全类别为“木马”,则安全类别确定模块30直接将软件包的安全等级确定为“木马”,反之,则会通知后续判断单元继续判断。
黑证书数据库43,用于判断软件包的证书是否为黑证书,并将判断结果传递给安全类别确定模块30。如果软件包的证书为黑证书,则安全类别确定模块30确定软件包的安全等级为“木马”,反之,则通知后续单元继续判断。
木马插件数据库44,用于判断软件包中是否包含木马插件,并将判断结果传递给安全类别确定模块30。如果软件包包含木马插件,则安全类别确定模块30确定软件包的安全等级为“木马”,反之,则判断软件包的初步安全类别是否为“危险”,如果是,则确定软件包的安全类别为“危险”,反之,则通知后续单元继续判断。
恶意插件数据库45,用于判断软件包中是否包含恶意插件,并将判断结果传递给安全类别确定模块30。如果软件包中包含恶意插件,则安全类别确定模块30确定软件包的等级为“含恶意插件”,反之,则通知后续单元继续判断。
白证书数据库46,用于判断软件包的证书是否为白证书,并将判断结果传递给安全类别确定模块30,如果是,则安全类别确定模块30确定软件包的等级为“安全”,反之,则确定为“未知”。
本发明的移动终端软件包安全检测方法及系统,通过获取标识软件包身份的唯一标识符来获取软件包的其他信息,并通过唯一标识符、证书及版本号的结合来对软件包的安全类别进行检测,能够对软件信息有较为完整的判断,从而可以保证确定的安全类别的准确性。
另外,通过预先在服务器端或移动终端所建立的综合信息数据库,如软件包信息数据库、黑证书数据库、恶意插件数据库、木马插件数据库等,能够存储大量的软件包信息,也能使安全类别的判断具有依据,从而能更加准确的判断。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对本发明所提供的移动终端软件包安全检测方法及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。