CN111752819A - 一种异常监控方法、装置、系统、设备和存储介质 - Google Patents
一种异常监控方法、装置、系统、设备和存储介质 Download PDFInfo
- Publication number
- CN111752819A CN111752819A CN201910248024.1A CN201910248024A CN111752819A CN 111752819 A CN111752819 A CN 111752819A CN 201910248024 A CN201910248024 A CN 201910248024A CN 111752819 A CN111752819 A CN 111752819A
- Authority
- CN
- China
- Prior art keywords
- code
- abnormal
- monitoring
- abnormal operation
- source code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012544 monitoring process Methods 0.000 title claims abstract description 129
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000003860 storage Methods 0.000 title claims abstract description 42
- 230000002159 abnormal effect Effects 0.000 claims abstract description 176
- 238000012806 monitoring device Methods 0.000 claims abstract description 5
- 238000013507 mapping Methods 0.000 claims description 77
- 238000004590 computer program Methods 0.000 claims description 5
- 230000005856 abnormality Effects 0.000 description 17
- 230000006870 function Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 12
- 238000012545 processing Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 230000004048 modification Effects 0.000 description 9
- 238000012986 modification Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3628—Software debugging of optimised code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3644—Software debugging by instrumenting at runtime
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Security & Cryptography (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种异常监控方法、装置、系统、设备和存储介质。其中,该方法包括:获取异常运行代码的当前发布版本和调用链信息;根据调用链信息确定异常运行代码的关联源码;根据关联源码在当前发布版本和上一发布版本之间的提交记录,确定对应的异常监控信息。本发明实施例提供的技术方案,对异常运行代码的关联源码的提交记录进行判断,提高异常监控的全面性和准确性,无需提交异常运行代码的关联源码的历史查找范围,保证关联源码的安全性。
Description
技术领域
本发明实施例涉及互联网技术领域,尤其涉及一种异常监控方法、装置、系统、设备和存储介质。
背景技术
在现代互联网系统中,需要在构建生产环境运行中的代码时,为了提高代码的安全性,往往会对源代码进行代码混淆,也就是使用某种算法与规则将源代码的变量名称、代码顺序、表达式等进行变换并保持变换前后代码对应的执行结果不变,从而增加攻击者的成本,保护商业系统的源码价值,或者节省代码在不同系统间传输时的大小和解析速度等问题;此时混淆过的代码在运行过程中出现异常时,只能提供当前混淆代码的出错行列信息以及被简化了变量名称的错误信息,而这些信息并不能准确在源代码中定位出问题代码,进行后续的代码恢复。
为了查找到相关异常源码,开发者会在代码构建时预先为混淆代码生成相应的映射关系文件(也就是sourcemap文件),但是由于安全需要,sourcemap文件往往是不被公开的,此时为了定位出源码中的问题代码,通常是在获得混淆代码抛出的异常信息时,借助sourcemap工具,如sourcemap-lookup工具查找出异常信息在源码中的位置;或者由异常监控系统根据已经上传过的相关sourcemap文件,直接自动查找异常信息在源码中的位置。
目前的异常监控存在以下不足:由于考虑上传权限、sourcemap文件与源码关联、上传接口、监控系统升级以及文件维护等众多因素,使得上传sourcemap文件到异常监控系统的复杂度与维护成本高,因此现有的异常监控存在一定的局限性;同时在确定异常信息在源码中的位置后,需要人工到版本管理系统进行代码查找,但又不能明确查找提交的历史范围;而且查找到的异常源码位置,不一定是引起代码异常的根本原因;因此从异常源码位置来查询出引起代码异常的原因存在一定困难。
发明内容
本发明实施例提供了一种异常监控方法、装置、系统、设备和存储介质,以解决现有技术中对于异常监控存在局限性和查找困难的问题,提高异常监控的全面性和准确性。
第一方面,本发明实施例提供了一种异常监控方法,该方法包括:
获取异常运行代码的当前发布版本和调用链信息;
根据所述调用链信息确定所述异常运行代码的关联源码;
根据所述关联源码在当前发布版本和上一发布版本之间的提交记录,确定对应的异常监控信息。
第二方面,本发明实施例提供了一种异常监控装置,该装置包括:
异常信息获取模块,用于获取异常运行代码的当前发布版本和调用链信息;
关联源码确定模块,用于根据所述调用链信息确定所述异常运行代码的关联源码;
异常监控模块,用于根据所述关联源码在当前发布版本和上一发布版本之间的提交记录,确定对应的异常监控信息。
第三方面,本发明实施例提供了一种异常监控系统,该系统包括:被监控端、版本管理端以及异常监控端;
所述被监控端向所述异常监控端发送异常运行代码的当前发布版本和调用链信息;
所述版本管理端存储关联源码的发布版本和提交记录;
所述异常监控端根据所述调用链信息确定所述异常运行代码的关联源码;根据所述版本管理端存储的所述关联源码在当前发布版本和上一发布版本之间的提交记录,确定对应的异常监控信息。
第四方面,本发明实施例提供了一种设备,该设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例中所述的异常监控方法。
第五方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例中所述的异常监控方法。
本发明实施例提供了一种异常监控方法、装置、系统、设备和存储介质,根据调用链信息确定执行的异常运行代码的关联源码,并根据关联源码在当前发布版本和上一发布版本之间的提交记录,确定对应的异常监控信息,对异常运行代码的关联源码的提交记录进行判断,提高异常监控的全面性和准确性,无需提交异常运行代码的关联源码的历史查找范围,保证关联源码的安全性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明实施例提供的一种异常监控系统的原理架构图;
图2A为本发明实施例一提供的一种异常监控方法的流程图;
图2B为本发明实施例一提供的方法中关联源码的确定过程的原理示意图;
图3A为本发明实施例二提供的一种异常监控方法的流程图;
图3B为本发明实施例二提供的一种异常监控过程的原理示意图;
图4为本发明实施例三提供的一种异常监控系统的原理架构图;
图5为本发明实施例四提供的一种异常监控装置的结构示意图;
图6为本发明实施例五提供的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
目前,借助sourcemap工具在预先设定的sourcemap文件中查找异常运行代码中的异常信息在源码中的位置,从而对引起运行代码异常的因素进行监控,此时存在一定的监控局限性,因此本发明实施例中通过对调用链信息中的异常运行代码的关联源码进行分析,而不是仅分析当前出错代码的关联源码,通过判断各个关联源码在当前发布版本和上一发布版本之间的提交记录,确定对应的异常监控信息,提高了异常监控的全面性和准确性。
图1为本发明实施例提供的一种异常监控系统的原理架构图。具体的,参照图1,该异常监控系统包括:被监控端10、版本管理端20以及异常监控端30。
具体的,被监控端10在获取到用户的触发操作时,可以执行与该触发操作匹配的代码,并实时监控该代码的运行状况,在检测到代码在运行过程中出错,则获取本次执行的异常运行代码所在的当前发布版本以及包含该异常运行代码整体执行流程的调用链信息,从而向异常监控端30发送异常运行代码的当前发布版本和调用链信息,进而由异常监控端30根据当前版本信息和调用链信息对本次的异常运行原因进行分析。
版本管理端20中存储关联源码的发布版本和提交记录;具体的,由于为了提高代码的安全性,往往会对源代码进行代码混淆,从而增加攻击者的成本,此时被监控端10上运行的代码均为混淆后的代码,在检测到代码运行异常时,需要对各个异常运行代码的关联源码进行分析,同时开发人员会对关联源码进行修改提交,在设定周期或者设定条件下会对当前范围内的修改提交后的最终代码进行发布,得到新的发布版本,此时版本管理端20中会相应存储关联源码每次发布后的发布版本以及开发人员对关联源码进行修改的提交记录,以便后续向异常监控端30提供关联源码的版本信息和提交信息。
异常监控端30通过获取被监控端10检测到代码在运行过程中出错时发送的异常运行代码的当前发布版本和调用链信息,根据调用链信息确定异常运行代码的关联源码,并根据关联源码在版本管理端20中存储的当前版本信息和上一版本信息之间的提交记录,确定对应的异常监控信息。具体的,异常监控端30用于执行本发明实施例中提供的异常监控方法,对被监控端10中执行的代码的运行状况进行监控,进而得到对应的异常监控信息,也就是引起被监控端10上的代码运行异常的可能原因,后续根据该异常监控信息对异常运行代码的关联源码进行修复。
需要说明的是,本实施例中的被监控端10可以是面向用户相应操作的用户终端或者执行某类业务的业务终端,其上安装有与异常监控端30对应的客户端监控应用程序,本实施例中被监控端10的数量具体可以取决于被监控端10对自身运行的代码是否存在异常检测需求,对此不作限定。同时,本实施例中的异常监控端30可以执行下述的异常监控方法,具体的执行过程在下述异常监控方法中进行进一步说明,在此不作详细介绍。
实施例一
图2A为本发明实施例一提供的一种异常监控方法的流程图,本实施例可应用于任一种可以对被监控端的异常运行代码进行监控的异常监控端中。本发明实施例的方案可以适用于如何解决异常监控存在局限性的问题。本实施例提供的一种异常监控方法可以由本发明实施例提供的异常监控装置来执行,该装置可以通过软件和/或硬件的方式来实现,并集成在执行本方法的设备中,该设备可以是具备相应的异常监控能力的任一种服务器。
具体的,参考图2A,该方法可以包括如下步骤:
S210,获取异常运行代码的当前发布版本和调用链信息。
具体的,开发人员在编写好源码后,为了提高代码的安全性,将该源码在某一特定环境下运行时,往往会预先对该源码进行代码混淆,后续被监控端根据用户的触发操作执行对应混淆后的代码,而不直接执行源码;本实施例中的异常运行代码是指被监控端上运行的对源码进行混淆后的代码,包含用户触发操作对应的在各个执行阶段上的完整执行流程下执行的各个混淆代码;异常运行是指被监控端在代码执行过程中由于某种原因导致了执行中断,使得被监控端不能按照正常代码流程执行。
同时,由于源码在编写完成后,开发人员中途会根据运行效果等因素对源码进行相应的修改,并将相应的修改信息记录到对应的版本管理端中,此时在满足某种设定条件时,开发人员会将修改后的最终源码进行发布,从而与初始编写的源码进行区分,此时发布版本是指开发人员对源码进行修改后进而发布的各类版本,每一发布版本中对应的源码各不相同。
具体的,被监控端在获取到用户的触发操作时,说明当前需要执行对应的代码来实现相应的功能,被监控端会通过各个代码执行阶段依次执行相应的代码,同时对整个代码运行流程中的代码运行状况进行检测,如果检测到运行异常,则确定当前运行的整体代码流程中存在异常情况,此时确定异常运行代码所在的当前发布版本以及对应的调用链信息,并将该异常运行代码的当前发布版本和调用链信息发送给异常监控端。异常监控端获取异常运行代码的当前发布版本和调用链信息,并对该调用链信息进行分析,确定包含的用于执行异常运行代码的各个代码执行阶段的信息,以便后续对异常运行代码的关联源码进行确定。
S220,根据调用链信息确定异常运行代码的关联源码。
其中,关联源码是指异常运行代码在混淆前,能够明确代码含义的原始代码;同一代码执行阶段上执行的异常运行代码的关联源码的存储位置可能不同。
具体的,由于在对源码进行混淆时,会预先为源码和混淆后的代码生成对应的匹配关系,以便能够明确混淆后的代码所指向的源码;因此异常监控端在获取到异常运行代码的当前发布版本和调用链信息后,首先对该调用链信息进行分析,确定出本次异常运行代码对应的整体运行流程所在的各个代码执行阶段,进而根据各个代码执行阶段上执行的异常运行代码,查找预先生成的匹配关系,从而确定异常运行代码的关联源码。
可选的,如图2B所示,本实施例中的调用链信息可以包括代码调用节点的信息,该代码调用节点用于执行异常运行代码;此时根据调用链信息确定异常运行代码的关联源码,具体可以包括:根据代码调用节点获取代码映射关系;根据代码映射关系确定异常运行代码的关联源码。
其中,代码映射关系是指混淆前后的代码之间的匹配关系,能够明确混淆代码是由哪部分的源码混淆得到;本实施例中的代码映射关系可以为描述源代码及其混淆代码之间映射关系的sourcemap文件。
进一步的,由于被监控端在获取到用户触发操作而执行相应的功能时,可能会通过多个代码调用节点来执行不同的代码,每个代码调用节点对应一个代码执行阶段,从而根据完整的代码流程来实现该触发操作对应的功能,此时该代码调用节点是指实现用户触发操作对应的功能时所涉及的各个执行节点,用于执行整体代码运行流程中各个阶段内的运行代码,此时调用链信息中包含整体代码运行流程所在的各个代码调用节点的信息;由于用户触发操作对应实现的功能不同,使得代码运行流程也不相同,因此本实施例中代码调用节点的数量为至少一个,可以是被监控端在本地直接实现用户触发操作对应的功能,也可以是被监控端与后台服务端或者其他第三方设备交互来实现用户触发操作对应的功能,此时本实施例中的代码调用节点可以是被监控端和后台服务端或者其他第三方设备。
具体的,通过对调用链信息进行解析得到本次触发操作涉及的需要执行相应代码而实现对应功能的各个代码调用节点,并确定各个代码调用节点上执行的异常运行代码,该异常运行代码均为混淆代码,此时根据各个代码调用节点上的异常运行代码,查找该异常运行代码在进行混淆处理时对应生成的代码映射关系,进而根据各个代码调用节点上异常运行代码匹配的代码映射关系,确定各个代码调用节点上异常运行代码的关联源码,从而后续对该关联源码进行分析,判断可能引起代码运行异常的原因。
示例性的,本实施例在获取异常运行代码的调用链信息后,为了对参与代码整体运行流程的各个代码调用节点进行分析,提高异常监控的全面性,此时可以将调用链信息按照代码执行顺序将各个代码调用节点的相关信息依次存储至预先设定的临时顺序列表中,该临时顺序列表主要用于保证调用链信息中携带的各个代码调用节点均能够被处理,而不被遗漏,此时该临时顺序列表可以是临时栈或者临时队列等,本实施例中对此不作限定。同时,按照列表顺序依次从临时顺序列表中选取出一个代码调用节点作为当前处理节点,并查找该当前处理节点上执行的异常运行代码在进行混淆时生成的代码映射关系,进而根据该代码映射关系确定当前处理节点上执行的异常运行代码的关联源码;按照列表顺序继续获取临时顺序列表中下一代码调用节点作为当前处理节点,执行同样的处理过程,得到下一代码调用节点上执行的异常运行代码的关联源码,依次循环,直至对临时顺序列表中包含的全部代码调用节点均进行处理,得到每一代码调用节点上执行的异常运行代码的关联源码,后续对每一代码调用节点对应的关联源码进行分析,判断引起代码运行异常的可能原因。
S230,根据关联源码在当前发布版本和上一发布版本之间的提交记录,确定对应的异常监控信息。
其中,由于源码在编写完成后,开发人员中途会根据运行效果等因素对源码进行相应的修改,并将相应的修改信息提交到对应的版本管理端中,此时提交记录是指开发人员中途对源码进行修改的相关信息,可以包括修改位置、修改内容以及修改者信息等;异常监控信息是指分析得到的可能引起代码运行异常的因素范围。
具体的,本实施例中在根据调用链信息确定异常运行代码的关联源码后,由于引起代码运行异常的原因可能是开发人员在相邻版本发布期间内对源码进行修改,而导致在运行修改后的源码对应混淆的混淆代码时出现异常,此时可以根据异常运行代码的当前发布版本在版本管理端中获取对应的上一发布版本,并查询每一代码执行阶段上对应的关联源码在当前发布版本和上一发布版本之间的修改提交信息,也就是本实施例中的提交记录,进而根据每一代码执行阶段上对应的关联源码在当前发布版本和上一发布版本之间的提交记录,分析得到关联源码的相关修改信息,并在调用链信息的每一代码执行阶段上执行的异常运行代码上标记出对应的源码位置,以便根据修改信息和标记源码位置在后续判断代码运行异常的原因,从而确定对应的异常监控信息,此时能够为引起代码运行异常的原因确定一个大致的范围,降低开发人员对异常代码进行修复而耗费的精力。
示例性的,在按照列表顺序依次从临时顺序列表中选取出一个代码调用节点作为当前处理节点,进而确定出当前处理节点上对应的关联源码时,还可以确定该当前处理节点上对应的关联源码在当前发布版本和上一发布版本之间的提交记录,进而得到当前处理节点上的代码异常信息;同时继续获取临时顺序列表中的下一代码调用节点作为当前处理节点进行同样的处理,确定下一代码调用节点上对应的关联源码在当前发布版本和上一发布版本之间的提交记录,进而得到下一代码调用节点上的代码异常信息,依次循环,直至得到调用链信息中全部代码调用节点上的代码异常信息,进而确定本次异常运行代码对应的异常监控信息。
本实施例提供的技术方案,根据调用链信息确定各个代码执行阶段内执行的异常运行代码的关联源码,并根据关联源码在当前发布版本和上一发布版本之间的提交记录,确定对应的异常监控信息,对异常运行代码的关联源码的提交记录进行判断,提高异常监控的全面性和准确性,无需提交异常运行代码的关联源码的历史查找范围,保证关联源码的安全性。
实施例二
图3A为本发明实施例二提供的一种异常监控方法的流程图,图3B为本发明实施例二提供的一种异常监控过程的原理示意图。本实施例中是在上述实施例提供的技术方案的基础上进行优化。具体的,本实施例中主要对代码映射关系的获取过程,以及异常运行代码的关联源码的确定过程进行详细的解释说明。
可选的,本实施例中可以包括如下步骤:
S310,获取异常运行代码的当前发布版本和调用链信息。
S320,从代码调用节点中获取执行文件地址。
其中,执行文件是指存储有对源码进行混淆后的代码,也就是本实施例中的异常运行代码的文件,代码调用节点通过该执行文件对应执行其存储的混淆代码;执行文件地址是指执行文件在业务端存储的位置。
具体的,在获取到异常运行代码的调用链信息后,通过分析该调用链信息可以得到包含的各个代码调用节点对应的存储有异常运行代码的执行文件地址,以便后续根据各个代码调用节点对应的执行文件地址,从业务端获取代码调用节点对应的执行文件,进而确定该执行文件中包含得代码混淆前后的匹配关系。
S330,从执行文件地址中解析出代码映射关系存储地址。
具体的,在从各个代码调用节点中获取到对应的执行文件地址后,根据该执行文件地址在业务端的相应位置获取代码调用节点对应的执行文件,此时该执行文件中包含有异常运行代码在混淆时生成的代码映射关系的存储地址,因此根据获取的执行文件可以解析出各个代码调用节点上的异常运行代码在由源码混淆时生成的代码映射关系在映射资源服务端的存储地址。
S340,根据代码映射关系存储地址获取代码映射关系。
可选的,获取到代码调用节点上执行的异常运行代码对应的代码映射关系存储地址后,根据该代码映射关系存储地址可以从映射资源服务端中获取到预先存储的各个代码调用节点上执行的异常运行代码进行混淆时生成的代码映射关系,以便后续查找对应的关联源码。进一步的,为了提高关联源码的安全性,防止映射资源服务端被其他第三方设备恶意攻击,导致其上存储的代码映射关系泄露,本实施例中在异常监控端以及映射资源服务端之间增加一个安全控制端,该安全控制端可以阻止非法者访问映射资源服务端上存储的代码映射关系;此时异常监控端在获取代码调用节点对应的代码映射关系存储地址时,通过安全控制端来访问映射资源服务端上存储的代码映射关系,安全控制端首先判断异常监控端的身份合法性,只有确定身份合法后才会允许对映射资源服务端进行访问,从而降低了代码映射关系泄露的可能,保证了关联源码的安全性。
S350,根据代码映射关系确定异常运行代码对应源码的位置。
可选的,在确定代码调用节点上执行的异常运行代码对应的代码映射关系后,可以根据该代码映射关系确定出异常运行代码对应的混淆前的源码的位置,以便在该位置获取各个代码调用节点对应的关联源码。
S360,将源码的位置关联到对应的代码调用节点,生成异常调用链信息。
可选的,在确定各个代码调用节点上执行的异常运行代码对应源码的位置时,可以在调用链信息中的相应代码调用节点的位置上标记出该代码调用节点上执行的异常运行代码对应源码的位置,也就是将异常运行代码对应源码的位置关联到对应的代码调用节点上,从而生成对应的异常调用链信息,使得在异常调用链信息中能够得到各个代码调用节点上执行的异常运行代码的关联源码位置,以便后续对引起代码运行异常的源码进行修复。
S370,根据关联源码在当前发布版本和上一发布版本之间的提交记录,确定对应的异常监控信息。
具体的,根据各个代码调用节点上关联源码在当前发布版本和上一发布版本之间的提交记录,确定各个代码调用节点上修改的源码信息,从而将各个代码调用节点上的提交记录作为对应的异常推荐处理人,并将各个代码异常节点上关联源码的提交记录存入异常推荐列表中,从而得到对应的包括各个代码调用节点对应的提交记录和携带源码位置的异常调用链信息的异常监控信息。
此外,在得到对应的异常监控信息后,还可以将该异常监控信息相应反馈给各个开发人员,由开发人员对异常运行代码的关联源码进行修复。
本实施例提供的技术方案,通过调用链信息确定各个代码调用节点上执行的异常运行代码对应的代码映射关系,进而根据该代码映射关系确定各个代码调用节点上异常运行代码的源码位置,进而生成对应的携带有源码位置的异常调用链信息,并根据关联源码在当前发布版本和上一发布版本之间的提交记录,确定对应的异常监控信息,对引起代码运行异常的原因进行判断,提高异常监控的全面性和准确性,无需提交异常运行代码的关联源码的历史查找范围,保证关联源码的安全性。
实施例三
图4为本发明实施例三提供的一种异常监控系统的原理架构图,本实施例中主要对特定应用场景下异常监控的具体过程进行详细描述。参照图4,本实施例中包括被监控端40、版本管理端41以及异常监控端42;异常监控端42分别与被监控端40和版本管理端41建立连接。
可选的,被监控端40在获取到用户的触发操作时,可以通过各个代码执行阶段执行与该触发操作匹配的代码,并实时检测代码的运行状况,在检测到代码运行异常时,将异常运行代码的当前发布版本以及包含本次触发操作对应的整体代码执行流程的调用链信息发送给异常监控端42,此时该调用链信息可以包括代码调用节点的信息,代码调用节点用于执行异常运行代码,异常监控端42通过分析获取的调用链信息,确定调用链信息中包含的各个代码调用节点上执行的异常运行代码,并根据对应的代码映射关系获取该异常运行代码的关联源码,进而在版本管理端41中确定每一代码调用节点上对应的关联源码在当前发布版本和上一发布版本之间的提交记录,从而确定对应包含有异常推荐处理人信息的异常推荐列表和携带源码位置的异常调用链信息的异常监控信息,提高异常监控的全面性和准确性。
此外,本实施例中的异常监控系统还可以包括:业务端43、映射资源服务端44和安全控制端45;其中,业务端43与异常监控端42连接,映射资源服务端44通过安全控制端45与异常监控端42连接。
具体的,业务端43上存储有异常运行代码的执行文件,异常监控端42从代码调用节点中获取到执行文件地址后,从该业务端43上根据该执行文件地址获取代码调用节点对应的执行文件;映射资源服务端44中存储有对源码进行混淆时相应生成的代码映射关系,也就是对应的sourcemap文件,此时异常监控端42可以从获取的执行文件中解析得到代码调用节点上执行的异常运行代码对应的代码映射关系存储地址,进而根据该代码映射关系存储地址从映射资源服务端44获取对应的代码映射关系。为了保证代码映射关系的安全性,异常监控端42可以通过安全控制端45从映射资源服务端44中获取对应的代码映射关系,该安全控制端45用于检测当前访问代码映射关系的设备身份合法性,防止非法者访问代码映射关系,进而保证源码的安全性。
本实施例提供的技术方案,根据调用链信息确定各个代码调用节点上执行的异常运行代码的关联源码,并根据关联源码在当前发布版本和上一发布版本之间的提交记录,确定对应的异常监控信息,对各个代码调用节点上异常运行代码的关联源码的提交记录进行判断,提高异常监控的全面性和准确性,无需提交异常运行代码的关联源码的历史查找范围,保证关联源码的安全性。
实施例四
图5为本发明实施例四提供的一种异常监控装置的结构示意图,具体的,如图5所示,该装置可以包括:
异常信息获取模块510,用于获取异常运行代码的当前发布版本和调用链信息;
关联源码确定模块520,用于根据调用链信息确定异常运行代码的关联源码;
异常监控模块530,用于根据关联源码在当前发布版本和上一发布版本之间的提交记录,确定对应的异常监控信息。
本实施例提供的技术方案,根据调用链信息确定各个代码执行阶段内执行的异常运行代码的关联源码,并根据关联源码在当前发布版本和上一发布版本之间的提交记录,确定对应的异常监控信息,对异常运行代码的关联源码的提交记录进行判断,提高异常监控的全面性和准确性,无需提交异常运行代码的关联源码的历史查找范围,保证关联源码的安全性。
进一步的,上述调用链信息可以包括代码调用节点的信息,代码调用节点用于执行异常运行代码,上述关联源码确定模块520,可以包括:映射关系获取单元,用于根据代码调用节点获取代码映射关系;关联源码确定单元,用于根据代码映射关系确定异常运行代码的关联源码。
进一步的,上述映射关系获取单元,具体可以用于:从代码调用节点中获取执行文件地址;从执行文件地址中解析出代码映射关系存储地址;根据代码映射关系存储地址获取代码映射关系。
进一步的,上述关联源码确定单元,具体可以用于:根据代码映射关系确定异常运行代码对应源码的位置;将源码的位置关联到对应的代码调用节点,生成异常调用链信息。
进一步的,上述异常监控信息可以包括提交记录和异常调用链信息。
进一步的,上述代码调用节点的数量可以为至少一个。
本实施例提供的异常监控装置可适用于本发明任意实施例提供的异常监控方法,具备相应的功能和有益效果。
实施例五
图6为本发明实施例五提供的一种设备的结构示意图,如图6所示,该设备包括处理器60、存储装置61和通信装置62;设备中处理器60的数量可以是一个或多个,图6中以一个处理器60为例;设备中的处理器60、存储装置61和通信装置62可以通过总线或其他方式连接,图6中以通过总线连接为例。
存储装置61作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中提供的异常监控方法对应的程序指令/模块。处理器60通过运行存储在存储装置61中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述异常监控方法。
存储装置61可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储装置61可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置61可进一步包括相对于处理器60远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
通信装置62可用于实现设备间的网络连接或者移动数据连接。
本实施例提供的一种设备可用于执行本发明任意实施例提供的异常监控方法,具备相应的功能和有益效果。
实施例六
本发明实施例六还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可实现本发明任意实施例中的异常监控方法。该方法具体可以包括:
获取异常运行代码的当前发布版本和调用链信息;
根据调用链信息确定异常运行代码的关联源码;
根据关联源码在当前发布版本和上一发布版本之间的提交记录,确定对应的异常监控信息。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的异常监控方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述异常监控装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种异常监控方法,其特征在于,包括:
获取异常运行代码的当前发布版本和调用链信息;
根据所述调用链信息确定所述异常运行代码的关联源码;
根据所述关联源码在当前发布版本和上一发布版本之间的提交记录,确定对应的异常监控信息。
2.根据权利要求1所述的方法,其特征在于,所述调用链信息包括代码调用节点的信息,所述代码调用节点用于执行所述异常运行代码,所述根据所述调用链信息确定所述异常运行代码的关联源码,包括:
根据代码调用节点获取代码映射关系;
根据所述代码映射关系确定所述异常运行代码的关联源码。
3.根据权利要求2所述的方法,其特征在于,根据代码调用节点获取代码映射关系,包括:
从代码调用节点中获取执行文件地址;
从所述执行文件地址中解析出代码映射关系存储地址;
根据所述代码映射关系存储地址获取所述代码映射关系。
4.根据权利要求2所述的方法,其特征在于,根据所述代码映射关系确定所述异常运行代码的关联源码,包括:
根据所述代码映射关系确定所述异常运行代码对应源码的位置;
将源码的位置关联到对应的代码调用节点,生成异常调用链信息。
5.根据权利要求4所述的方法,其特征在于,所述异常监控信息包括提交记录和异常调用链信息。
6.根据权利要求2至5任一项所述的方法,其特征在于,所述代码调用节点的数量为至少一个。
7.一种异常监控装置,其特征在于,包括:
异常信息获取模块,用于获取异常运行代码的当前发布版本和调用链信息;
关联源码确定模块,用于根据所述调用链信息确定所述异常运行代码的关联源码;
异常监控模块,用于根据所述关联源码在当前发布版本和上一发布版本之间的提交记录,确定对应的异常监控信息。
8.一种异常监控系统,其特征在于,包括:被监控端、版本管理端以及异常监控端;
所述被监控端向所述异常监控端发送异常运行代码的当前发布版本和调用链信息;
所述版本管理端存储关联源码的发布版本和提交记录;
所述异常监控端根据所述调用链信息确定所述异常运行代码的关联源码;根据所述版本管理端存储的所述关联源码在当前发布版本和上一发布版本之间的提交记录,确定对应的异常监控信息。
9.根据权利要求8所述的系统,其特征在于,所述调用链信息包括代码调用节点的信息,所述代码调用节点用于执行所述异常运行代码,所述系统还包括业务端;
所述业务端存储所述异常运行代码的执行文件;
所述异常监控端从代码调用节点中获取执行文件地址;根据执行文件地址从所述业务端中获取对应的执行文件。
10.根据权利要求9所述的系统,其特征在于,还包括映射资源服务端;
所述映射资源服务端存储代码映射关系;
所述异常监控端从执行文件地址中解析出代码映射关系存储地址;根据所述代码映射关系存储地址从所述映射资源服务端获取所述代码映射关系。
11.根据权利要求10所述的系统,其特征在于,还包括安全控制端:
所述异常监控端根据所述代码映射关系存储地址通过所述安全控制端从所述映射资源服务端获取所述代码映射关系。
12.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的异常监控方法。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的异常监控方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910248024.1A CN111752819B (zh) | 2019-03-29 | 2019-03-29 | 一种异常监控方法、装置、系统、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910248024.1A CN111752819B (zh) | 2019-03-29 | 2019-03-29 | 一种异常监控方法、装置、系统、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111752819A true CN111752819A (zh) | 2020-10-09 |
CN111752819B CN111752819B (zh) | 2024-04-05 |
Family
ID=72672311
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910248024.1A Active CN111752819B (zh) | 2019-03-29 | 2019-03-29 | 一种异常监控方法、装置、系统、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111752819B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113297076A (zh) * | 2021-05-21 | 2021-08-24 | 建信金融科技有限责任公司 | 基于调用链的服务变更识别方法及装置 |
CN113867730A (zh) * | 2021-09-28 | 2021-12-31 | 北京达佳互联信息技术有限公司 | 目标源码映射文件的确定方法、装置、设备及存储介质 |
CN114756272A (zh) * | 2021-01-08 | 2022-07-15 | 北京字跳网络技术有限公司 | 故障组件的处理方法、系统、装置、设备和存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103092761A (zh) * | 2013-02-05 | 2013-05-08 | 烽火通信科技股份有限公司 | 基于差异信息文件识别和检查修改代码块的方法及装置 |
US8719791B1 (en) * | 2012-05-31 | 2014-05-06 | Google Inc. | Display of aggregated stack traces in a source code viewer |
US20160246703A1 (en) * | 2015-02-20 | 2016-08-25 | International Business Machines Corporation | Identifying the lines of code that caused the error as identified in the stack trace in a source code version that generated the stack trace that does not reside on the user's computing device |
US20160342453A1 (en) * | 2015-05-20 | 2016-11-24 | Wanclouds, Inc. | System and methods for anomaly detection |
CN106203007A (zh) * | 2015-05-08 | 2016-12-07 | 腾讯科技(深圳)有限公司 | 一种代码处理方法、装置及计算设备 |
CN106354575A (zh) * | 2016-08-12 | 2017-01-25 | 中国航空工业集团公司西安飞行自动控制研究所 | 一种基于堆栈追溯的故障排查装置和方法 |
CN106502874A (zh) * | 2016-10-26 | 2017-03-15 | 南京途牛科技有限公司 | 一种调用链跟踪方法 |
CN106951228A (zh) * | 2017-02-21 | 2017-07-14 | 腾讯科技(深圳)有限公司 | 版本迭代中差异的处理方法和装置 |
CN107368313A (zh) * | 2017-07-18 | 2017-11-21 | 腾讯科技(深圳)有限公司 | 代码检测方法、装置及电子设备 |
CN107766075A (zh) * | 2016-08-22 | 2018-03-06 | 平安科技(深圳)有限公司 | 代码合并的处理方法及装置 |
CN108833184A (zh) * | 2018-06-29 | 2018-11-16 | 腾讯科技(深圳)有限公司 | 服务故障定位方法、装置、计算机设备及存储介质 |
-
2019
- 2019-03-29 CN CN201910248024.1A patent/CN111752819B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8719791B1 (en) * | 2012-05-31 | 2014-05-06 | Google Inc. | Display of aggregated stack traces in a source code viewer |
CN103092761A (zh) * | 2013-02-05 | 2013-05-08 | 烽火通信科技股份有限公司 | 基于差异信息文件识别和检查修改代码块的方法及装置 |
US20160246703A1 (en) * | 2015-02-20 | 2016-08-25 | International Business Machines Corporation | Identifying the lines of code that caused the error as identified in the stack trace in a source code version that generated the stack trace that does not reside on the user's computing device |
CN106203007A (zh) * | 2015-05-08 | 2016-12-07 | 腾讯科技(深圳)有限公司 | 一种代码处理方法、装置及计算设备 |
US20160342453A1 (en) * | 2015-05-20 | 2016-11-24 | Wanclouds, Inc. | System and methods for anomaly detection |
CN106354575A (zh) * | 2016-08-12 | 2017-01-25 | 中国航空工业集团公司西安飞行自动控制研究所 | 一种基于堆栈追溯的故障排查装置和方法 |
CN107766075A (zh) * | 2016-08-22 | 2018-03-06 | 平安科技(深圳)有限公司 | 代码合并的处理方法及装置 |
CN106502874A (zh) * | 2016-10-26 | 2017-03-15 | 南京途牛科技有限公司 | 一种调用链跟踪方法 |
CN106951228A (zh) * | 2017-02-21 | 2017-07-14 | 腾讯科技(深圳)有限公司 | 版本迭代中差异的处理方法和装置 |
CN107368313A (zh) * | 2017-07-18 | 2017-11-21 | 腾讯科技(深圳)有限公司 | 代码检测方法、装置及电子设备 |
CN108833184A (zh) * | 2018-06-29 | 2018-11-16 | 腾讯科技(深圳)有限公司 | 服务故障定位方法、装置、计算机设备及存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114756272A (zh) * | 2021-01-08 | 2022-07-15 | 北京字跳网络技术有限公司 | 故障组件的处理方法、系统、装置、设备和存储介质 |
CN113297076A (zh) * | 2021-05-21 | 2021-08-24 | 建信金融科技有限责任公司 | 基于调用链的服务变更识别方法及装置 |
CN113297076B (zh) * | 2021-05-21 | 2023-06-23 | 建信金融科技有限责任公司 | 基于调用链图的服务变更识别方法及装置 |
CN113867730A (zh) * | 2021-09-28 | 2021-12-31 | 北京达佳互联信息技术有限公司 | 目标源码映射文件的确定方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111752819B (zh) | 2024-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11327828B2 (en) | Process automation action repository and assembler | |
CN108768728B (zh) | 运维任务处理方法、装置、计算机设备和存储介质 | |
CN107657177B (zh) | 一种漏洞检测方法及装置 | |
CN108427632B (zh) | 自动测试方法及装置 | |
US9680848B2 (en) | Apparatus, system and method for detecting and preventing malicious scripts using code pattern-based static analysis and API flow-based dynamic analysis | |
US20060253837A1 (en) | Using a call stack hash to record the state of a process | |
US8938648B2 (en) | Multi-entity test case execution workflow | |
CN111680068A (zh) | 一种校验方法、装置、设备及存储介质 | |
CN111752819A (zh) | 一种异常监控方法、装置、系统、设备和存储介质 | |
CN108694320B (zh) | 一种多安全环境下敏感应用动态度量的方法及系统 | |
US8813229B2 (en) | Apparatus, system, and method for preventing infection by malicious code | |
US20180060224A1 (en) | Distinguishing Public and Private Code in Testing Environments | |
CN110232279A (zh) | 一种漏洞检测方法及装置 | |
US8892950B2 (en) | Failure diagnosis method and apparatus using resource relationship map | |
CN114238980B (zh) | 一种工控设备漏洞挖掘方法、系统、设备及存储介质 | |
CN109165513B (zh) | 系统配置信息的巡检方法、装置和服务器 | |
CN104461847B (zh) | 数据处理程序检测方法及装置 | |
KR102393913B1 (ko) | 이상행위 탐지 장치, 방법 및 이를 포함하는 시스템 | |
CN117633808A (zh) | 用于漏洞检测的方法、处理器及机器可读存储介质 | |
CN113360389A (zh) | 一种性能测试方法、装置、设备及存储介质 | |
CN109560964B (zh) | 一种设备合规检查方法及装置 | |
CN116302964A (zh) | 一种软件系统的安全测试方法、测试设备及介质 | |
CN112671741B (zh) | 一种网络防护的方法、装置、终端及存储介质 | |
CN111090575B (zh) | 测试方法 | |
WO2019064600A1 (ja) | 仮説検証装置、仮説検証方法、及びコンピュータ読み取り可能な記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |