攻击监控方法及具有攻击监控功能的装置的制作方法

文档序号:6340435阅读:181来源:国知局
专利名称:攻击监控方法及具有攻击监控功能的装置的制作方法
技术领域
本发明涉及数据安全技术领域,尤其涉及攻击监控方法及具有攻击监控功能的装置。
背景技术
目前,针对程序运行期间的攻击日趋多样化,干扰攻击就是其中的一种,干扰攻击 通过改变IC的正常行为以制造一个可以利用的错误,通过干扰源包括电压脉冲、时钟脉 冲、复位信号脉冲、环境温度、光脉冲、电磁场脉冲、大范围光照等等来造成程序流程混乱, 从而对正在运行的程序进行攻击。为了避免上述情况的发生,需要一套机制来监控程序运行期间是否受到攻击。

发明内容
本发明要解决的技术问题在于,提供攻击监控方法和具有攻击监控功能的装置, 能够监控数据处理装置是否受到攻击。有鉴于此,本发明提供了一种攻击监控方法,用于监控数据处理设备是否受到攻 击,包括在所述数据处理设备运行程序时,监控所述程序中的关键程序序列,获取所述关 键程序序列的已运行的指令数目;将所述已运行的指令数目与预设的指令的数目范围进行 比较;如果所述已运行的指令数目在所述预设的指令的数目范围之外,则判断所述数据处 理设备受到攻击;反之,则判断所述数据处理设备未受到攻击。通过上述技术方案,能够监控数据处理装置是否受到攻击,保证程序对敏感数据 的操作是在授权下进行的,从而避免对敏感数据非授权的访问。在上述技术方案中,优选地,所述将所述已运行的指令数目与预设的指令的数目 范围进行比较,包括在所述程序执行完毕后,将所述程序的所有关键程序序列的已运行的 指令数目的总和与预设的所述程序的所有关键程序序列的指令的总和的数目范围进行比 较;和/或在所述程序中的每个关键程序序列执行完毕后,将所述每个关键程序序列的已 运行的指令数目与预设的该关键程序序列的指令的数目范围进行比较。在上述技术方案中,优选地,所述获取所述关键程序序列的已运行的指令数目,包 括初始化已运行指令数,运行所述关键程序序列,每运行一条所述关键程序序列的指令, 按预设规则处理所述已运行指令数;初始化已运行指令数,可以将所述已运行指令数置为 零,也可以是其他数值等,所述预设规则可以是已运行指令数加1或者减1,或者其他规则。 或者,初始化硬件指令统计器,运行所述关键程序序列,每运行一条所述关键程序序列的指 令,所述硬件指令统计器按预设规则动作。初始化硬件指令统计器,可以将所述硬件指令统 计器置为零,也可以是其他数值等,所述预设规则可以是已运行指令数加1或者减1,或者 其他规则。在上述技术方案中,优选地,该攻击监控方法还包括在所述数据处理设备运行程 序之前,
获取并在所述程序中设置所述程序的所有关键程序序列的指令的总和的数目范 围;和/ 或获取并在所述程序中设置所述程序的每个关键程序序列的指令的数目范围。在上述技术方案中,优选地,所述获取并在所述程序中设置所述程序的所有关键 程序序列的指令的总和的数目范围,具体为对所述程序进行分析,提取所有至少一个关键 程序序列;对每一个关键程序序列进行分析,确定所述每一个关键程序序列中的指令的极 大值与极小值;对所有关键程序序列的极大值求和获得最大值,对所有关键程序序列的极 小值求和获得最小值,从而确定所述程序的所有关键程序序列的指令的总和的数目范围; 在所述程序中设置所述程序的所有关键程序序列的指令的总和的数目范围;所述获取并在 所述程序中设置所述程序的每个关键程序序列的指令的数目范围,具体为对所述程序进 行分析,提取所有关键程序序列;对每一关键程序序列进行分析,确定所述每一个关键程序 序列中的指令的极大值与极小值,从而确定所述程序的每个关键程序序列的指令的数目范 围;在所述程序中设置所述程序的每个关键程序序列的指令的数目范围。在上述技术方案中,优选地,对所述关键程序序列的分析的过程具体为执行所述 关键程序序列;计算所述关键程序序列的极大均值与极小均值;将所述极大均值与所述极 小均值增加到程序统计器的真值中。在上述技术方案中,优选地,对所述关键程序序列的分析的过程具体为启动硬件 机器指令记数器;执行所述关键程序序列;获取已执行的指令数目,并将所述已执行的指 令数目增加到程序统计器的真值中。在上述技术方案中,优选地,将计数结果与所述关键程序序列中的指令的数目范 围进行比较的过程具体为获取所述程序统计器的真值;判断所述真值是否在所述极小值 和所述极大值的区间内;如果判断结果为是,则设置程序执行正常;如果判断结果为否,则 设置程序执行异常。在上述技术方案中,优选地,在判断所述数据处理设备受到攻击的情况下,使所述 数据处理设备停止运行所述程序,在判断所述数据处理设备未受到攻击的情况下,使所述 数据处理设备继续运行所述程序。在上述技术方案中,优选地,所述数据处理设备为智能卡。本发明还提供了一种具有攻击监控功能的装置,包括计数模块,用于在所述数据 处理设备运行程序时,监控所述程序中的关键程序序列,获取所述关键程序序列的已运行 的指令数目;比较模块,将所述已运行的指令数目与预设的指令的数目范围进行比较;判 断模块,如果所述已运行的指令数目在所述预设的指令的数目范围之外,则判断所述数据 处理设备受到攻击;反之,则判断所述数据处理设备未受到攻击。通过上述技术方案,能够监控数据处理装置是否受到攻击,保证程序对敏感数据 的操作是在授权下进行的,从而避免对敏感数据非授权的访问。
在上述技术方案中,优选地,所述比较模块用于在所述程序执行完毕后,将所述程 序的所有关键程序序列的已运行的指令数目的总和与预设的所述程序的所有关键程序序 列的指令的总和的数目范围进行比较;和/或用于在所述程序中的每个关键程序序列执行 完毕后,将所述每个关键程序序列的已运行的指令数目与预设的该关键程序序列的指令的数目范围进行比较。在上述技术方案中,优选地,所述计数模块包括指令数初始化单元,初始化已运 行指令数,运行所述关键程序序列,每运行一条所述关键程序序列的指令,按预设规则处理 所述已运行指令数;初始化已运行指令数,可以将所述已运行指令数置为零,也可以是其他 数值等,所述预设规则可以是已运行指令数加1或者减1,或者其他规则。或者,硬件指令统 计器初始化单元,初始化硬件指令统计器,运行所述关键程序序列,每运行一条所述关键程 序序列的指令,所述硬件指令统计器按预设规则动作。初始化硬件指令统计器,可以将所述 硬件指令统计器置为零,也可以是其他数值等,所述预设规则可以是已运行指令数加1或 者减1,或者其他规则。在上述技术方案中,优选地,分析模块还用于在所述数据处理设备运行程序之前 获取所述程序的所有关键程序序列的指令的总和的数目范围;和/或,用于在所述数据处 理设备运行程序之前获取所述程序的每个关键程序序列的指令的数目范围。在上述技术方案中,优选地,分析模块在所述数据处理设备运行程序之前对所述 程序进行分析,提取所有至少一个关键程序序列,对每一个关键程序序列进行分析,确定所 述每一个关键程序序列中的指令的极大值与极小值,对所有关键程序序列的极大值求和获 得最大值,对所有关键程序序列的极小值求和获得最小值,从而确定所述程序的所有关键 程序序列的指令的总和的数目范围;分析模块在所述数据处理设备运行程序之前对所述程 序进行分析,提取所有关键程序序列;对每一个关键程序序列进行分析,确定所述每一个关 键程序序列中的指令的极大值与极小值,从而确定所述程序的每个关键程序序列的指令的 数目范围。在上述技术方案中,优选地,所述数据处理设备为智能卡。在上述技术方案中,优选地,所述具有攻击监控功能的系统是智能卡。在上述技术方案中,优选地,在判断所述数据处理设备受到攻击的情况下,使所述 数据处理设备停止运行所述程序,在判断所述数据处理设备未受到攻击的情况下,使所述 数据处理设备继续运行所述程序。根据上述技术方案,可有效保护保存在智能卡中的关键数据,提高智能卡的安全 性。保证在智能卡使用过程中,一些必须的程序流程得以执行,避免出现对命令的处理未按 照设计的预定顺序执行,完成对程序关键流程进行监控,确保在程序运行期间某些必须的 流程按预定的顺序执行,从而有效防止针对程序执行流程进行的攻击,绕过某些必要的安 全检查访问智能卡中的关键数据的情况。


图1示出了根据本发明的实施例的攻击监控方法的流程图;图2示出了根据本发明的实施例的对程序进行分析的过程的流程图;图3A示出了根据本发明的一个实施例的对关键程序序列进行分析的过程的流程 图;图;3B示出了根据本发明的另一实施例的对关键程序序列进行分析的过程的流程 图;图4示出了根据本发明的另一实施例的攻击监控方法的流程图5示出了根据本发明的实施例的具有攻击监控功能的装置的结构框图;图6A示出了图5中示出的攻击监控系统中作为一个实例的分析模块的结构框 图;图6B示出了图5中示出的攻击监控系统中作为另一实例的分析模块的结构框 图;图7示出了图5中示出的攻击监控系统中的比较模块的结构框图;图8示出了采用本发明的方法对程序分析整理后的结构的示意图;图9示出了采用本发明的方法对程序分析整理后需要记录的数据的结构的示意 图;图10示出了采用本发明的方法进行初始化程序流程统计器的过程的流程图;图IlA示出了采用本发明的方法进行程序关键序列记录的一个实施例的具体过 程的流程图;图IlB示出了采用本发明的方法进行程序关键序列记录的另一个实施例的具体 过程的流程图;图12示出了采用本发明的方法进行程序统计分析的具体过程的流程图;图13示出了采用本发明的方法得到的程序的最终结构的示意图。
具体实施例方式下面结合附图和具体实施方式
对本发明进行进一步的详细描述。在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可 以采用不同于在此所描述内容的其他方式来实施,因此,本发明并不限于下面公开的具体 实施例的限制。图1示出了根据本发明的实施例的攻击监控方法的流程图。根据本发明的攻击监控方法,用于监控数据处理设备是否受到攻击,包括步骤 S10,在所述数据处理设备运行程序时,监控所述程序中的关键程序序列,获取所述关键程 序序列的已运行的指令数目;步骤S20,将所述已运行的指令数目与预设的指令的数目范 围进行比较;步骤S30,判断所述已运行的指令数目是否在所述预设的指令的数目范围之 外,如果判断结果为否,则进入步骤S40,如果判断结果为是,则进入步骤S50 ;步骤S40,确 定该数据处理设备未受到攻击;步骤S50,确定该数据处理设备受到攻击。通过上述技术方案,能够监控数据处理装置是否受到攻击,保证程序对敏感数据 的操作是在授权下进行的,从而避免对敏感数据非授权的访问。在上述技术方案中,优选地,所述将所述已运行的指令数目与预设的指令的数目 范围进行比较,包括在所述程序执行完毕后,将所述程序的所有关键程序序列的已运行的 指令数目的总和与预设的所述程序的所有关键程序序列的指令的总和的数目范围进行比 较;和/或在所述程序中的每个关键程序序列执行完毕后,将所述每个关键程序序列的已 运行的指令数目与预设的该关键程序序列的指令的数目范围进行比较。
在上述技术方案中,优选地,所述获取所述关键程序序列的已运行的指令数目,包 括初始化已运行指令数,运行所述关键程序序列,每运行一条所述关键程序序列的指令, 按预设规则处理所述已运行指令数;初始化已运行指令数,可以将所述已运行指令数置为零,也可以是其他数值等,所述预设规则可以是已运行指令数加1或者减1,或者其他规则。 或者,初始化硬件指令统计器,运行所述关键程序序列,每运行一条所述关键程序序列的指 令,所述硬件指令统计器按预设规则动作。初始化硬件指令统计器,可以将所述硬件指令统 计器置为零,也可以是其他数值等,所述预设规则可以是已运行指令数加1或者减1,或者 其他规则。在上述技术方案中,优选地,根据本发明的攻击监控方法还包括在所述数据处理 设备运行程序之前,获取并在所述程序中设置所述程序的所有关键程序序列的指令的总和 的数目范围;和/或,获取并在所述程序中设置所述程序的每个关键程序序列的指令的数 目范围。在上述技术方案中,优选地,所述获取并在所述程序中设置所述程序的所有关键 程序序列的指令的总和的数目范围,具体为对所述程序进行分析,提取所有至少一个关键 程序序列;对每一个关键程序序列进行分析,确定所述每一个关键程序序列中的指令的极 大值与极小值;对所有关键程序序列的极大值求和获得最大值,对所有关键程序序列的极 小值求和获得最小值,从而确定所述程序的所有关键程序序列的指令的总和的数目范围; 在所述程序中设置所述程序的所有关键程序序列的指令的总和的数目范围。所述获取并在 所述程序中设置所述程序的每个关键程序序列的指令的数目范围,具体为对所述程序进 行分析,提取所有关键程序序列;对每一个关键程序序列进行分析,确定所述每一个关键程 序序列中的指令的极大值与极小值,从而确定所述程序的每个关键程序序列的指令的数目 范围;在所述程序中设置所述程序的每个关键程序序列的指令的数目范围。在上述技术方案中,优选地,对关键程序序列的分析的过程可以具体为执行关键 程序序列;计算关键程序序列的极大均值与极小均值;将所述极大均值与所述极小均值增 加到程序统计器的真值中。在上述技术方案中,优选地,对关键程序序列的分析的过程可以具体为启动硬件 机器指令记数器;执行所述关键程序序列;获取已执行的指令数目,并将所述已执行的指 令数目增加到程序统计器的真值中。在上述技术方案中,优选地,该数据处理设备可以为智能卡。本领域技术人员应 当理解,该数据处理设备可以是任何具有数据处理能力的设备,例如,计算机、传感器节点、 PDA等等。在上述技术方案中,优选地,在判断所述数据处理设备受到攻击的情况下,使所述 数据处理设备停止运行所述程序,在判断所述数据处理设备未受到攻击的情况下,使所述 数据处理设备继续运行所述程序。图2示出了根据本发明的实施例的对程序进行分析的过程的流程图。对程序进行分析的过程具体为步骤S102,对程序进行分析,提取关键程序序列; 步骤S104,对关键程序序列进行编号,并获取第一个程序序列;步骤S106,对关键程序序列 进行分析,提取极大值与极小值;步骤S108,判断关键程序序列是否是最后一个程序序列, 如果判断结果为是,则进入步骤S110,如果判断结果为否,则进入步骤S114;步骤110,对 所有程序序列的极大值求和获得最大值,对所有程序序列的极小值求和获得最小值;步骤 S112,启动程序统计器,初始化所述程序统计器的真值,结束;步骤S114,获取下一个程序 序列,并返回步骤S106。
在上述技术方案中,优选地,如图3A所示,对关键程序序列进行分析的过程具体 为步骤S202,执行原程序序列;步骤S204,计算原程序序列的极大均值与极小均值;步骤 S206,将极大均值与极小均值增加到程序统计器的真值中。在上述技术方案中,优选地,如图IBB所示,作为选择,对关键程序序列进行分析的 过程可以具体为步骤S202’,启动硬件机器指令记数器;步骤S204’,执行原程序序列;步 骤S206’,获取已执行机器指令数目,并将所述已执行机器指令数目增加到所述程序统计器 的真值中。在上述技术方案中,优选地,在判断所述数据处理设备受到攻击的情况下,使所述 数据处理设备停止运行所述程序,在判断所述数据处理设备未受到攻击的情况下,使所述 数据处理设备继续运行所述程序。图4示出了根据本发明的另一实施例的攻击监控方法的流程图。该攻击监控方法 用于监控数据处理设备是否受到攻击,具体包括步骤S302,获取程序统计器的真值;步骤 S304,判断真值是否在极小值和极大值的区间内,如果判断结果为是,则进入步骤S306,如 果判断结果为否,则进入步骤S308 ;步骤S306,设置程序执行正常;步骤S308,设置程序执 行异常。在上述技术方案中,优选地,所述关键程序序列是一个程序整体。通过上述方法,能够有效地防止数据处理设备受到攻击,从而保证了数据安全。图5示出了根据本发明的实施例的具有攻击监控功能的装置的结构框图。根据本发明的攻击监控系统500包括计数模块502,用于在数据处理设备运行程 序时,监控程序中的关键程序序列,获取所述关键程序序列的已运行的指令数目;比较模块 504,将所述已运行的指令数目与预设的指令的数目范围进行比较;判断模块506,如果所 述已运行的指令数目在所述预设的指令的数目范围之外,则判断所述数据处理设备受到攻 击;反之,则判断所述数据处理设备未受到攻击。在上述技术方案中,优选地,所述比较模块用于在所述程序执行完毕后,将所述程 序的所有关键程序序列的已运行的指令数目的总和与预设的所述程序的所有关键程序序 列的指令的总和的数目范围进行比较;和/或用于在所述程序中的每个关键程序序列执行 完毕后,将所述每个关键程序序列的已运行的指令数目与预设的该关键程序序列的指令的 数目范围进行比较。在上述技术方案中,优选地,所述计数模块502还用于初始化已运行指令数,运行 所述关键程序序列,每运行一条所述关键程序序列的指令,按预设规则处理所述已运行指 令数;初始化已运行指令数,可以将所述已运行指令数置为零,也可以是其他数值等,所述 预设规则可以是已运行指令数加1或者减1,或者其他规则。或者,用于初始化硬件指令统 计器,运行所述关键程序序列,每运行一条所述关键程序序列的指令,所述硬件指令统计器 按预设规则动作。初始化硬件指令统计器,可以将所述硬件指令统计器置为零,也可以是其 他数值等,所述预设规则可以是已运行指令数加1或者减1,或者其他规则。在上述技术方案中,优选地,进一步包括分析模块508,用于在所述数据处理设 备运行程序之前获取所述程序的所有关键程序序列的指令的总和的数目范围;和/或,在 所述数据处理设备运行程序之前用于获取所述程序的每个关键程序序列的指令的数目范 围。
在上述技术方案中,优选地,所述分析模块在所述数据处理设备运行程序之前对 所述程序进行分析,提取所有至少一个关键程序序列,对每一个关键程序序列进行分析,确 定所述每一个关键程序序列中的指令的极大值与极小值,对所有关键程序序列的极大值求 和获得最大值,对所有关键程序序列的极小值求和获得最小值,从而确定所述程序的所有 关键程序序列的指令的总和的数目范围;所述分析模块在所述数据处理设备运行程序之前 对所述程序进行分析,提取所有关键程序序列;对每一个关键程序序列进行分析,确定所述 每一个关键程序序列中的指令的极大值与极小值,从而确定所述程序的每个关键程序序列 的指令的数目范围。在在上述技术方案中,优选地,如图6A所示,作为一个实例,分析模块508包括执行 模块5082,执行关键程序序列;计算模块5084,计算关键程序序列的极大均值与极小均值; 增加模块5086,将极大均值与极小均值增加到程序统计器的真值中。在上述技术方案中,优选地,如图6B所示,作为另一个实例,分析模块508包括 启动模块5082’,启动硬件机器指令记数器;执行模块5084’,执行关键程序序列;增加模块 5086’,获取已执行机器指令数目,并将已执行机器指令数目增加到程序统计器的真值中。在上述技术方案中,优选地,如图7所示,比较模块504包括真值获取模块5042, 获取程序统计器的真值;真值判断模块5044,判断所述真值是否在极小值和极大值的区间 内;状态设置模块5046,如果真值判断模块5044的判断结果为是,则设置程序执行正常,如 果真值判断模块5044的判断结果为否,则设置程序执行异常。在上述技术方案中,优选地,所述数据处理设备可以为智能卡。在上述技术方案中,优选地,所述具有攻击监控功能的装置可以为智能卡。在上述技术方案中,优选地,所述关键程序序列是一个程序整体。在上述技术方案中,优选地,在判断所述数据处理设备受到攻击的情况下,使所述 数据处理设备停止运行所述程序,在判断所述数据处理设备未受到攻击的情况下,使所述 数据处理设备继续运行所述程序。根据上述技术方案,可有效保护保存在智能卡中的关键数据,提高智能卡的安全 性。保证在智能卡使用过程中,必须的程序流程得以执行,避免出现对命令的处理未按照设 计的预定顺序执行的情况,从而完成对程序关键流程进行监控,确保在程序运行期间必须 的流程按预定的顺序执行,有效防止针对程序执行流程进行的攻击,绕过必要的安全检查 访问智能卡中的关键数据的情况发生。根据本发明的方法可以理解为通过对要保护的程序序列的执行情况加以记录, 在整个处理流程的关键位置加以校验,来达到对程序的管理及流程上的监控,有效防止一 些特定的攻击手段,有效保护保存在智能卡中的关键数据,提高智能卡的安全性。具体实现 如下设置程序关键流程统计器,关键流程一旦执行就会刷新这个统计器,在特定时间点, 对统计器进行分析,若其值在预先设定的范围内,那么则认为关键流程已执行,若不在范围 内,则认为关键流程未被执行,以此来达到对程序关键流程的监控目的,并且通过设计这个 范围可以做到对安全级别的控制。共分3个部分来实现以上功能1.初始化程序流程统计器这部分主要是对程序统计器的输入参数进行设置。
2.程序关键序列记录这部分完成对程序序列的统计工作。3.程序统计分析这部分完成对统计结果的分析工作,分析本次运行期间程序的执行情况。下面参照图8至图14进行具体说明。首先是初始化程序流程统计器,对程序进行分析,分析整理关键的程序序列。程序分析整理后的结构如图8所示。统计出每个关键程序序列的机器指令数目,那么每个关键的程序序列就会存在一 个机器指令数目的极大值;统计每个程序序列的关键机器指令数目,那么每个关键的程序 序列就会存在一个机器指令数目的极小值。任何程序最后都会被编译器编译成机器代码,那么一个程序序列最终也是由一系 列的机器指令组成的,那么每个程序序列的机器代码数量就是一个度量,统计出其值就是 这个程序序列的极大值;而程序序列可能存在条件分支,那么在程序正常运行时必然有个 主分支,那么只统计这些主分支上的机器指令数目就可以得出另外一个度量,因为此流程 为其主流程,那么程序正常运行期间这些机器指令是一定会执行的,因此其值就可以作为 此程序序列的极小值。整理后需要记录的数据如图9所示。那么将所有关键程序序列的极小值相加得到一个值minValue,将所有关键程序的 极大值相加得到一个值maxValue。将minValue、maxValue作为输入参数来启动程序统计器。程序统计器会统计程序运行期间的机器指令执行情况,那么将会使用一个程序计 数器记录机器指令的处理数目,为了方便记忆设计TrueValue记录,因此在程序统计器启 动的时候需要清OTrueValue。可参考图10示出的流程图,初始化程序流程统计器的过程包括步骤S1202,对 程序进行分析,提取重要程序序列;步骤S1204,对程序序列进行编号并获取第一个程序序 列;步骤S1206,对程序序列进行分析,提取极大值与极小值;步骤S1208,判断是否是最后 一个程序序列,在判断结果为否的情况下,进入步骤S1210,在判断结果为是的情况下,进入 步骤S1212 ;步骤S1210,获取下一个程序序列,进入步骤S1206 ;步骤S1212,对所有程序序 列的极大值求和获得maxValue,对极小值求和获得minValue ;步骤S1214,启动程序统计 器,初始化统计计数器TrueValue。其次是,程序关键序列记录本发明提供两种实现方法方法1简单实现容易,方法2实现复杂需要一些硬件的支持,下面参考图1IA和图 IlB分别就以上两种方法进行说明方法1:数据结构定义如下Typedef struct {Private Int minValue ;
Int maxValue ;Int TrueValue ;Public int Initializition(int minValue, int maxValue);int AddRecord(int IncValue);int StatAnalyse(void);}将每个关键程序序列独立成单独的函数,在函数处理返回前,一次性的完成程序 序列记录,即将统计器TrueValue增加本序列的极大值与极小值的均值。如图IlA所示,该过程包括步骤S1302,序列开始;步骤S1304,原程序序列;步骤 S1306,计算本序列极大均值与极小均值的hcValue ;步骤S1308,调用函数AddRecord将 TrueValue增加hcValue ;步骤S1310,序列结束。方法2:数据结构定义如下Typedef struct {Private Int minValue ;Int maxValue ;Int TrueValue ;Public int Initializition(int minValue, int maxValue);int NoteStart (void);int NoteEnd (void);int StatAnalyse (void);}若机器硬件本身设计对机器指令的统计模块,那么可以用此模块完成对程序序列 的统计工作在进入此程序序列时,启动硬件统计模块。程序序列执行,硬件统计模块完成机器指令的统计工作。程序序列结束时,读取硬件统计模块的统计数据,将其加到统计器TrueValue中, 完成程序序列记录。若机器硬件本身无机器指令的统计模块,可以利用程序计数器达到上述目的。如图IlB所示,该过程包括步骤S1302’,序列开始;步骤S1304’,调用 NoteMart,启动硬件机器指令计数器;步骤S1306’,原程序序列;步骤S1308’,调用 NoteEnd获取已执行机器指令数目hcValue,将TrueValue增加hcValue ;步骤S1310,,序 列结束。最后是程序统计分析。通过对程序统计器的分析,完成对程序流程的监控目的。要求TrueValue在 minValue与maxValue区间之内,那么就判断为程序按照预定的流程进行,一些关键的程序序列已被覆盖,那么则认可本次处理。当受到攻击时,会影响一些程序的执行,有些程序序列没有被执行,比如程序序列 2的极大值为50,极小值为45,那么设置minValue = 45、maxValue = 50,那么当程序序列 2受到外界的攻击导致程序执行异常,导致程序序列2有一些程序未被执行到,这样统计器 就会统计出本序列执行的机器指令数目,假设统计出的数目为10即TrueValue = 10,这 样通过 TrueValue 与 minValue、maxValue 的比较就可以发现 TrueValue 不在[minValue, maxValue]区间内,即发现此攻击。如图12所示,具体过程包括步骤S1402,统计分析开始;步骤S1404,获取 TureValue ;步骤 S1406,判断 iTrueValue 是否在[minValue,maxValue]区间内,如果判断结 果为是,则进入步骤S1408,如果判断结果为否,则进入步骤S1410 ;步骤S1408,设置程序执 行正常;步骤S1410,设置程序执行异常;步骤S1412,统计分析结束。程序的最终结构如图13所示,首先是统计器统计启动,然后是程序基本序列1和 程序关键序列1,直至程序基本序列η和程序关键序列η,最后是统计器统计分析。本领域技术人员应当理解,可以根据实际情况,可以将一个程序整体当成一个关 键的程序序列,也可以单独对一个程序序列启动统计器的统计和分析功能。根据上述技术方案,可有效保护保存在于诸如智能卡的数据处理装置中的关键数 据,提高可智能卡的安全性。保证在智能卡使用过程中,一些必须的程序流程得以执行,避 免出现对命令的处理未按照设计的预定顺序执行的情况,完成对程序关键流程进行监控, 从而确保在程序运行期间某些必须的流程按预定的顺序执行,有效防止一些针对程序执行 流程进行的攻击,绕过某些必要的安全检查访问智能卡中的关键数据的情况的发生。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技 术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修 改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种攻击监控方法,用于监控数据处理设备是否受到攻击,其特征在于,包括 在所述数据处理设备运行程序时,监控所述程序中的关键程序序列,获取所述关键程序序列的已运行的指令数目;将所述已运行的指令数目与预设的指令的数目范围进行比较; 如果所述已运行的指令数目在所述预设的指令的数目范围之外,则判断所述数据处理 设备受到攻击;反之,则判断所述数据处理设备未受到攻击。
2.根据权利要求1所述的攻击监控方法,其特征在于,所述将所述已运行的指令数目 与预设的指令的数目范围进行比较,包括在所述程序执行完毕后,将所述程序的所有关键程序序列的已运行的指令数目的总和 与预设的所述程序的所有关键程序序列的指令的总和的数目范围进行比较;和/或在所述程序中的每个关键程序序列执行完毕后,将所述每个关键程序序列的已运行的 指令数目与预设的该关键程序序列的指令的数目范围进行比较。
3.根据权利要求1所述的攻击监控方法,其特征在于,所述获取所述关键程序序列的 已运行的指令数目,包括初始化已运行指令数,运行所述关键程序序列,每运行一条所述关键程序序列的指令, 按预设规则处理所述已运行指令数;或者,初始化硬件指令统计器,运行所述关键程序序列,每运行一条所述关键程序序列的指 令,所述硬件指令统计器按预设规则动作。
4.根据权利要求1至3任一所述的攻击监控方法,其特征在于,在所述数据处理设备运 行程序之前,还包括获取并在所述程序中设置所述程序的所有关键程序序列的指令的总和的数目范围; 和/或获取并在所述程序中设置所述程序的每个关键程序序列的指令的数目范围。
5.根据权利要求4所述的攻击监控方法,其特征在于,所述获取并在所述程序中设置所述程序的所有关键程序序列的指令的总和的数目范 围,具体为对所述程序进行分析,提取所有至少一个关键程序序列;对每一个关键程序序列进行分析,确定所述每一个关键程序序列中的指令的极大值与 极小值;对所有关键程序序列的极大值求和获得最大值,对所有关键程序序列的极小值求和获 得最小值,从而确定所述程序的所有关键程序序列的指令的总和的数目范围; 在所述程序中设置所述程序的所有关键程序序列的指令的总和的数目范围; 所述获取并在所述程序中设置所述程序的每个关键程序序列的指令的数目范围,具体为对所述程序进行分析,提取所有关键程序序列;对每一个关键程序序列进行分析,确定所述每一个关键程序序列中的指令的极大值与 极小值,从而确定所述程序的每个关键程序序列的指令的数目范围;在所述程序中设置所述程序的每个关键程序序列的指令的数目范围。
6.根据权利要求1至3任一所述的所述的攻击监控方法,其特征在于,在判断所述数据 处理设备受到攻击的情况下,使所述数据处理设备停止运行所述程序,在判断所述数据处 理设备未受到攻击的情况下,使所述数据处理设备继续运行所述程序。
7.一种具有攻击监控功能的装置,其特征在于,包括计数模块,用于在所述数据处理设备运行程序时,监控所述程序中的关键程序序列,获 取所述关键程序序列的已运行的指令数目;比较模块,将所述已运行的指令数目与预设的指令的数目范围进行比较;判断模块,如果所述已运行的指令数目在所述预设的指令的数目范围之外,则判断所 述数据处理设备受到攻击;反之,则判断所述数据处理设备未受到攻击。
8.根据权利要求7所述的装置,其特征在于,所述比较模块用于在所述程序执行完毕 后,将所述程序的所有关键程序序列的已运行的指令数目的总和与预设的所述程序的所有 关键程序序列的指令的总和的数目范围进行比较;和/或用于在所述程序中的每个关键程 序序列执行完毕后,将所述每个关键程序序列的已运行的指令数目与预设的该关键程序序 列的指令的数目范围进行比较。
9.根据权利要求7所述的装置,其特征在于,所述计数模块还用于初始化已运行指令 数,运行所述关键程序序列,每运行一条所述关键程序序列的指令,按预设规则处理所述已 运行指令数;或者,用于初始化硬件指令统计器,运行所述关键程序序列,每运行一条所述 关键程序序列的指令,所述硬件指令统计器按预设规则动作。
10.根据权利要求7至9中任一项所述的装置,其特征在于,还包括分析模块,用于在所述数据处理设备运行程序之前获取所述程序的所有关键程序序列 的指令的总和的数目范围;和/或,在所述数据处理设备运行程序之前用于获取所述程序 的每个关键程序序列的指令的数目范围。
11.根据权利要求10所述的装置,其特征在于,所述分析模块在所述数据处理设备运行程序之前对所述程序进行分析,提取所有至少 一个关键程序序列,对每一个关键程序序列进行分析,确定所述每一个关键程序序列中的 指令的极大值与极小值,对所有关键程序序列的极大值求和获得最大值,对所有关键程序 序列的极小值求和获得最小值,从而确定所述程序的所有关键程序序列的指令的总和的数 目范围;所述分析模块在所述数据处理设备运行程序之前对所述程序进行分析,提取所有关键 程序序列;对每一个关键程序序列进行分析,确定所述每一个关键程序序列中的指令的极 大值与极小值,从而确定所述程序的每个关键程序序列的指令的数目范围。
12.根据权利要求7至9任一所述的装置,其特征在于,在判断所述数据处理设备受到 攻击的情况下,使所述数据处理设备停止运行所述程序,在判断所述数据处理设备未受到 攻击的情况下,使所述数据处理设备继续运行所述程序。
全文摘要
本发明提供了一种攻击监控方法,用于监控数据处理设备是否受到攻击,包括在数据处理设备运行程序时,监控程序中的关键程序序列,获取所述关键程序序列的已运行的指令数目;将所述已运行的指令数目与预设的指令的数目范围进行比较;如果所述已运行的指令数目在所述预设的指令的数目范围之外,则判断所述数据处理设备受到攻击;反之,则判断所述数据处理设备未受到攻击。通过上述技术方案,能够监控数据处理装置是否受到攻击,保证程序对敏感数据的操作是在授权下进行的,从而避免对敏感数据非授权的访问。本发明还提供了攻击监控装置和智能卡。
文档编号G06F12/14GK102053927SQ201010612608
公开日2011年5月11日 申请日期2010年12月29日 优先权日2010年12月29日
发明者于付真 申请人:北京握奇数据系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1