发明内容
针对上述的缺陷,本发明的目的在于提供一种进程识别方法及系统,其具有识别准确性高、识别效率高、安全性强的优点。
为了实现上述目的,本发明提供一种进程识别方法,包括如下步骤:
信息采集步骤,采集目标进程的PE文件所述PE文件的属性信息;
加密计算步骤,对所述PE文件和所述属性信息进行加密算法计算,获得对应的特征值;
进程识别步骤,将所述特征值与预存的效验值进行比较,以识别所述目标进程是否为合法进程。
根据本发明所述的进程识别方法,所述信息采集步骤进一步包括:
获取所述目标进程的所述PE文件的文件大小数值;
将所述文件大小数值与一预存的阈值进行比较;
若所述文件大小数值大于所述阈值,则采集所述目标进程的所述PE文件的预定部分内容和所述属性信息,否则采集所述目标进程的整个所述PE文件和所述属性信息。
根据本发明所述的进程识别方法,所述PE文件的所述预定部分内容包括:固定大小数值的一头部文件段、一中部文件段和一尾部文件段。
根据本发明所述的进程识别方法,所述属性信息包括所述PE文件的版本号、文件大小和/或数字签名;和/或
所述加密算法计算采用SHA1值计算。
根据本发明所述的进程识别方法,所述进程识别步骤进一步包括:
将所述特征值与预存的白名单进程的所述效验值进行比较;
若所述特征值与所述效验值相符,则将所述目标进程识别为合法进程,否则将所述目标进程识别为非法进程。
根据本发明所述的进程识别方法,所述信息采集步骤之前还包括:
获取所述目标进程的进程标识符;
判断所述目标进程的所述进程标识符是否存在于一合法进程标识符数据库中,若存在则判定所述目标进程合法,否则继续进行所述信息采集步骤;
在所述进程识别步骤中,若所述目标进程判断为合法进程,则还包括步骤有:
将所述目标进程的所述进程标识符存入所述合法进程标识符数据库。
本发明还提供一种进程识别系统,包括有:
信息采集模块,用于采集目标进程的PE文件所述PE文件的属性信息;
加密计算模块,用于对所述PE文件和所述属性信息进行加密算法计算,获得对应的特征值;
进程识别模块,用于将所述特征值与预存的效验值进行比较,以识别所述目标进程是否为合法进程。
根据本发明所述的进程识别系统,所述信息采集模块进一步包括:
数值获取子模块,用于获取所述目标进程的所述PE文件的文件大小数值;
数值比较子模块,用于将所述文件大小数值与一预存的阈值进行比较;
信息采集子模块,用于若所述文件大小数值大于所述阈值,则采集所述目标进程的所述PE文件的预定部分内容和所述属性信息,否则采集所述目标进程的整个所述PE文件和所述属性信息。
根据本发明所述的进程识别系统,所述PE文件的所述预定部分内容包括:固定大小数值的一头部文件段、一中部文件段和一尾部文件段。
根据本发明所述的进程识别系统,所述属性信息包括所述PE文件的版本号、文件大小和/或数字签名;和/或
所述加密算法计算采用SHA1值计算。
根据本发明所述的进程识别系统,所述进程识别模块进一步包括:
特征值比较子模块,用于将所述特征值与预存的白名单进程的所述效验值进行比较;
进程识别子模块,用于若所述特征值与所述效验值相符,则将所述目标进程识别为合法进程,否则将所述目标进程识别为非法进程。
根据本发明所述的进程识别系统,还包括有:
标识符获取模块,用于在执行所述信息采集模块之前,获取所述目标进程的进程标识符;
标识符判断模块,用于判断所述目标进程的所述进程标识符是否存在于一合法进程标识符数据库中,若存在则判定所述目标进程合法,否则交由所述信息采集模块处理;
标识符存储模块,用于若所述进程识别模块判断出所述目标进程判断为合法进程时,则将所述目标进程的所述进程标识符存入所述合法进程标识符数据库。
本发明提供一种基于信息摘要的进程识别技术,采集PE文件及其属性信息进行加密算法计算,获得对应的特征值,再将所述特征值与预存的效验值进行比较并识别目标进程是合法进程或是非法进程,其并不只依靠进程名进行进程识别,可有效识别伪造进程名的非法进程,使得进程识别的准确性更高。本发明优选在采集PE文件时先进行PE文件大小的判断,对于大于设定范围的PE文件只采集预定部分内容,在保证识别精准度的前提下,大幅度减少了检验时间,加快了整个识别过程的速度。本发明优选采用SHA1值计算,SHA1值具有唯一性,不可伪造,从而提高了进程识别的安全性。更好的是,本发明将判定为合法进程的进程标识符存入一合法进程标识符数据库,使得下一次对同一目标进程进行识别时可直接根据进程标识符进行识别,省去了对同一进程进行重复判断的过程,避免了识别的重复性,从而减少了识别进程所需的时间,加快了识别速度。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1是本发明进程识别系统的结构示意图,所述进程识别系统100包括有信息采集模块10、加密计算模块20以及进程识别模块30,其中:
所述信息采集模块10,用于采集目标进程的PE文件(PortableExecute,可移植执行文件)所述PE文件的属性信息。优选的是,所述属性信息包括所述PE文件的版本号、文件大小和/或数字签名等。
所述加密计算模块20,用于对所述PE文件和属性信息进行加密算法计算,获得对应的特征值。优选的是,所述加密算法计算采用SHA1(Secure Hash Algorithm,安全哈希算法)值计算,SHA1值具有唯一性,不可伪造,从而提高了进程识别的安全性。
所述进程识别模块30,用于将所述特征值与预存的效验值进行比较,以识别所述目标进程是否为合法进程。
本发明优选采用的是文件过滤驱动,采用微软封装的Minifilter的框架实现,在所有线程通过CreateFile函数打开文件或设备时,在PreCreate回调函数中可以对要访问的目的文件及发起访问的线程和进程等信息进行信息采集分析,从而完成进程身份的识别过程。
图2是本发明优选进程识别系统的结构示意图,所述进程识别系统100包括有信息采集模块10、加密计算模块20以及进程识别模块30,其中:
所述信息采集模块10,用于采集目标进程的PE文件所述PE文件的属性信息。所述属性信息优选包括所述PE文件的版本号、文件大小和/或数字签名等。优选的是,所述信息采集模块10进一步包括:
数值获取子模块11,用于获取所述目标进程的PE文件的文件大小数值。
数值比较子模块12,用于将所述文件大小数值与一预存的阈值进行比较。本实施例中所述阈值优选为10MB。
信息采集子模块13,用于若所述文件大小数值大于所述阈值,则采集所述目标进程的所述PE文件的预定部分内容和所述属性信息,否则采集所述目标进程的整个所述PE文件和属性信息。优选的是,所述PE文件的预定部分内容包括:固定大小数值的一头部文件段、一中部文件段和一尾部文件段。本实施例中固定大小数值为4KB。
本实施例在采集PE文件时先进行PE文件大小的判断,对于大于设定范围的PE文件只采集预定部分内容,在保证识别精准度的前提下,大幅度减少了检验时间,加快了整个识别过程的速度。
所述加密计算模块20,用于对所述PE文件和属性信息进行加密算法计算,获得对应的特征值。所述加密算法计算采用SHA1值计算。
所述进程识别模块30,用于将所述特征值与预存的效验值进行比较,以识别所述目标进程是否为合法进程。所述预存的效验值优选为预存白名单进程的效验值。更好的是,所述进程识别模块30进一步包括:
特征值比较子模块31,用于将所述特征值与预存的白名单进程的效验值进行比较。
进程识别子模块32,用于若特征值与效验值相符,则将目标进程识别为合法进程,否则将目标进程识别为非法进程。
更好的是,所述进程识别系统100还包括:
标识符获取模块40,用于在执行信息采集模块10之前,获取目标进程的进程标识符(PID)。
标识符判断模块50,用于判断目标进程的进程标识符是否存在于一合法进程标识符数据库中,若存在则判定所述目标进程合法,否则交由信息采集模块10继续处理。
标识符存储模块60,用于若进程识别模块30判断出目标进程判断为合法进程时,则将所述目标进程的所述进程标识符存入所述合法进程标识符数据库。
本实施例将判定为合法进程的进程标识符存入一合法进程标识符数据库,使得下一次对同一目标进程进行识别时可直接根据进程标识符进行识别,省去了对同一进程进行重复判断的过程,避免了识别的重复性,从而减少了识别进程所需的时间,加快了识别速度。
图3是本发明进程识别方法的流程图,其可通过如图1或图2所示的进程识别系统100实现,所述方法包括如下步骤:
步骤S301,信息采集步骤,采集目标进程的PE文件和PE文件的属性信息。优选的是,所述属性信息包括PE文件的版本号、文件大小和/或数字签名等。
步骤S302,加密计算步骤,对PE文件和属性信息进行加密算法计算,获得对应的特征值。优选的是,所述加密算法计算采用SHA1值计算,SHA1值具有唯一性,不可伪造,从而提高了进程识别的安全性。
步骤S303,进程识别步骤,将特征值与预存的效验值进行比较,以识别目标进程是否为合法进程。
图4是本发明第一实施例中进程识别方法的流程图,其可通过如图2所示的进程识别系统100实现,所述方法包括如下步骤:
步骤S401,获取目标进程的进程标识符(PID)。
步骤S402,判断目标进程的进程标识符是否存在于一合法进程标识符数据库中,若存在则执行步骤S403,否则执行步骤S404。
步骤S403,判定目标进程合法。
步骤S404,采集目标进程的PE文件和PE文件的属性信息。优选的是,所述属性信息包括PE文件的版本号、文件大小和/或数字签名等。
步骤S405,对PE文件和属性信息进行SHA1值计算,获得对应的特征值。
步骤S406,判断特征值与预存的效验值是否相符,若是则执行步骤S408,否则执行步骤S407。所述预存的效验值优选为预存白名单进程的效验值。
步骤S407,若特征值与效验值不相符,则将目标进程识别为非法进程。
步骤S408,若特征值与效验值相符,则将目标进程识别为合法进程。
步骤S409,将目标进程的进程标识符存入合法进程标识符数据库。
本实施例将判定为合法进程的进程标识符存入一合法进程标识符数据库,使得下一次对同一目标进程进行识别时可直接根据进程标识符进行识别,省去了对同一进程进行重复判断的过程,避免了识别的重复性,从而减少了识别进程所需的时间,加快了识别速度。
图5是本发明第二实施例中进程识别方法的流程图,其可通过如图2所示的进程识别系统100实现,所述方法包括如下步骤:
步骤S501,获取目标进程的进程标识符(PID)。
步骤S502,判断目标进程的进程标识符是否存在于一合法进程标识符数据库中,若存在则执行步骤S503,否则执行步骤S504。
步骤S503,判定目标进程合法。
步骤S504,获取目标进程的PE文件的文件大小数值。
步骤S505,将文件大小数值与一预存的阈值进行比较,判断文件大小数值是否大于阈值,若是则执行步骤S506,否则执行步骤S507。本实施例中所述阈值优选为10MB。
步骤S506,若文件大小数值大于阈值,则采集目标进程的PE文件的预定部分内容和属性信息。优选的是,所述固定大小数值的一头部文件段、一中部文件段和一尾部文件段。本实施例中固定大小数值优选为4KB。
本实施例在采集PE文件时先进行PE文件大小的判断,对于大于设定范围的PE文件只采集预定部分内容,在保证识别精准度的前提下,大幅度减少了检验时间,加快了整个识别过程的速度。
步骤S507,若文件大小数值小于或等于阈值,则采集目标进程的整个PE文件和属性信息。优选的是,所述属性信息包括PE文件的版本号、文件大小和/或数字签名等。
步骤S508,对PE文件(或PE文件的预定部分内容)和属性信息进行加密算法计算,获得对应的特征值。优选的是,所述加密算法计算采用SHA1值计算。
步骤S509,将特征值与预存的白名单进程的效验值进行比较是否相符,若是则执行步骤S511,否则执行步骤S510。
步骤S510,若特征值与效验值不相符,则将目标进程识别为非法进程。
步骤S511,若特征值与效验值相符,则将目标进程识别为合法进程。
步骤S512,将目标进程的进程标识符存入合法进程标识符数据库。
综上所述,本发明提供一种基于信息摘要的进程识别技术,采集PE文件及其属性信息进行加密算法计算,获得对应的特征值,再将所述特征值与预存的效验值进行比较并识别目标进程是合法进程或是非法进程,其并不只依靠进程名进行进程识别,可有效识别伪造进程名的非法进程,使得进程识别的准确性更高。本发明优选在采集PE文件时先进行PE文件大小的判断,对于大于设定范围的PE文件只采集预定部分内容,在保证识别精准度的前提下,大幅度减少了检验时间,加快了整个识别过程的速度。本发明优选采用SHA1值计算,SHA1值具有唯一性,不可伪造,从而提高了进程识别的安全性。更好的是,本发明将判定为合法进程的进程标识符存入一合法进程标识符数据库,使得下一次对同一目标进程进行识别时可直接根据进程标识符进行识别,省去了对同一进程进行重复判断的过程,避免了识别的重复性,从而减少了识别进程所需的时间,加快了识别速度。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。