本技术涉及安全运维,尤其是涉及一种应用安全巡检系统及方法。
背景技术:
1、随着线上销售平台架构的不断优化,平台架构复杂,中间件繁多,组件之间的耦合度高,同时微服务的故障自愈水平尚待提高,故可通过应用安全巡检手段,对应用程序进行准确分析和检查,以发现可能存在的安全漏洞或者潜在的攻击威胁的过程,及时发现和解决问题,保障线上销售平台的持续稳定运行。
2、现有的应用巡检方式基于深度学习在源代码进行漏洞挖掘,可分为动态巡检和静态巡检两类。其中,动态巡检基于模糊测试技术,具有挖掘效率高、自动化程度高等优点,但是其依赖于程序崩溃来发现故障,难以在用户发现问题前消除潜在的问题,且无法遍历所有的程序路径,存在局限性;静态巡检则基于符号执行技术,能够使用符号变量代替具体值作为程序或函数的参数,具有代价小、覆盖率高等优点,但缺点是程序路径状态空间的爆炸导致系统运行资源空间不足,实用性较差;静态污点分析是另外一种静态巡检手段,它将受外部源影响的一系列初始对象标记为污染源来引导分析,通常会在分析大型程序时,由于程序对象被错误地污染而产生大量误报,检测精度低。
3、针对上述中的相关技术,发明人发现现有的应用巡检方式存在有实用性较差,难以推广应用的问题。
技术实现思路
1、为了增强应用安全巡检的适用性,本技术提供了一种应用安全巡检系统及方法。
2、第一方面,本技术提供一种应用安全巡检系统。
3、本技术是通过以下技术方案得以实现的:
4、一种应用安全巡检系统,包括由上至下的预警层、巡检层、接口层和数据层;
5、所述预警层用于对巡检过程发现的问题进行告警,包括用于告警巡检过程中发现的问题的告警模块;
6、所述巡检层用于接收操作指令进行应用安全巡检,包括基于底层通讯协议和自定义协议进行协议巡检,对业务应用自定义业务应用巡检,对关键业务能力进行关键能力巡检,对预设巡检参数进行通用服务巡检;
7、所述接口层用于接收所述巡检层下发的采集任务,对所述数据层的数据进行采集,并向所述巡检层反馈采集结果;
8、所述数据层用于提供应用安全巡检涉及的软件和硬件资源数据。
9、本技术在一较佳示例中可以进一步配置为:所述预警层还包括动态化模拟模块;
10、所述动态化模拟模块用于模拟人工登录各业务页面,并通过截图获取平台运行状态,动态化回放故障画面。
11、本技术在一较佳示例中可以进一步配置为:所述预警层还包括静态化记录模块;
12、所述静态化记录模块用于实现故障业务状态和数据快照持久化。
13、本技术在一较佳示例中可以进一步配置为:所述接口层包括设备通信接口、服务接口和开发接口;
14、所述设备通信接口包括数据访问和协议适配;
15、所述服务接口包括数据服务接口、地图服务接口、报表服务接口和告警通知接口;
16、所述开发接口包括可视化组件、数据连接和业务逻辑定义。
17、本技术在一较佳示例中可以进一步配置为:所述数据层采用网络监控、设备监控、应用监控和第三方系统监控方式获得应用安全巡检涉及的软件和硬件资源数据。
18、本技术在一较佳示例中可以进一步配置为:还包括决策层;
19、所述决策层用于基于大数据分析和数据建模制定巡检决策。
20、第二方面,本技术提供一种应用安全巡检方法。
21、本技术是通过以下技术方案得以实现的:
22、一种应用安全巡检方法,包括以下步骤,
23、从数据层获取应用安全巡检涉及的目标数据;
24、基于所述目标数据,对底层通讯协议和自定义协议进行协议巡检,对业务应用自定义业务应用巡检,对关键业务能力进行关键能力巡检,对预设巡检参数进行通用服务巡检;
25、若所述协议巡检、所述业务应用巡检、所述关键能力巡检或所述通用服务巡检存在问题,对巡检过程发现的所述问题进行告警。
26、本技术在一较佳示例中可以进一步配置为:基于所述目标数据,对底层通讯协议和自定义协议进行协议巡检的步骤包括,
27、获取待巡检端口的报文;
28、解析所述报文的源地址、目的地址、源端口、目的端口和协议;
29、根据所述源地址和所述目的地址查询预设的数据库,获得目标巡检设备及其关联设备;
30、向所述目标巡检设备及其关联设备下发统一的配置文件;
31、当所述目标巡检设备及其关联设备接收到所述配置文件后,采集所述目标巡检设备及其关联设备的巡检参数;
32、判断所述巡检参数是否满足预设条件;
33、若所述巡检参数满足预设条件,则确定所述目标巡检设备及其关联设备处于异常运行状态。
34、本技术在一较佳示例中可以进一步配置为:基于所述目标数据,对业务应用自定义业务应用巡检的步骤包括,
35、获取预设的应用程序的运行状态参数、安全性参数和可用性参数;
36、设置运行状态参数阈值、安全性参数阈值和可用性参数阈值;
37、将所述运行状态参数、所述安全性参数和所述可用性参数分别与所述运行状态参数阈值、所述安全性参数阈值和所述可用性参数阈值进行比较,判断所述运行状态参数、所述安全性参数或所述可用性参数是否位于阈值范围内;
38、若所述运行状态参数、所述安全性参数或所述可用性参数任一个位于阈值范围外,则确定巡检的所述业务应用处于异常运行状态。
39、本技术在一较佳示例中可以进一步配置为:基于所述目标数据,对关键业务能力进行关键能力巡检的步骤包括,
40、基于至少两条延时指令,生成至少两条测试命令;
41、分别统计目标服务器对各测试命令的实际响应时间;
42、基于所述实际响应时间,计算所述目标服务器的平均响应时间;
43、将所述平均响应时间与预设的响应时间阈值进行比较;
44、若所述平均响应时间小于或等于所述响应时间阈值,则确定响应时间能力异常。
45、本技术在一较佳示例中可以进一步配置为:基于所述目标数据,对关键业务能力进行关键能力巡检的步骤包括,
46、下发运行指令;
47、获取运行预设时间后的网络设备的测试吞吐量;
48、基于所述测试吞吐量,结合存储设备的读写时间和时钟频率,得到预测吞吐量;
49、将所述预测吞吐量与预设的吞吐量阈值进行比较;
50、若所述预测吞吐量小于或等于所述吞吐量阈值,则确定吞吐能力异常。
51、本技术在一较佳示例中可以进一步配置为:基于所述目标数据,对关键业务能力进行关键能力巡检的步骤包括,
52、设置并发请求数量、并发请求类型、并发持续时间和并发访问频率;
53、基于所述并发请求数量、所述并发请求类型、所述并发持续时间和所述并发访问频率,在应用程序或测试环境下模拟并发访问场景,并记录测试结果;
54、将所述测试结果与预设的并发问题巡检表进行对比;
55、若所述测试结果存在于所述并发问题巡检表中,则确定并发能力异常。
56、本技术在一较佳示例中可以进一步配置为:基于所述目标数据,对预设巡检参数进行通用服务巡检的步骤包括,
57、设置巡检参数,包括应用健康状况、负载能力和心跳数据;
58、为所述巡检参数配置对应的告警规则;
59、基于所述巡检参数和所述告警规则,按照预设周期进行巡检;
60、若任一所述巡检参数满足对应的所述告警规则,则确定通用服务异常。
61、本技术在一较佳示例中可以进一步配置为:所述对巡检过程发现的所述问题进行告警的步骤后,还包括,
62、根据告警场景下发相应的模拟指令,模拟用户登录该业务页面的操作行为;
63、通过截图获取各业务页面的运行状态;
64、基于截图获取的所述各业务页面的运行状态生成视频,以动态化回放故障画面。
65、本技术在一较佳示例中可以进一步配置为:所述对巡检过程发现的所述问题进行告警的步骤后,还包括,
66、对告警场景下的故障业务状态及相关数据进行快照持久化,以实现静态化记录。
67、本技术在一较佳示例中可以进一步配置为:若所述协议巡检、所述业务应用巡检、所述关键能力巡检或所述通用服务巡检存在问题,对巡检过程发现的所述问题进行告警的步骤后,还包括以下步骤,
68、记录所述协议巡检、所述业务应用巡检、所述关键能力巡检或所述通用服务的故障位置以提供故障定位;
69、基于预设的巡检策略表,推送按修复成功率由高到低排列的巡检策略,以及,
70、通知指定的联系人。
71、本技术在一较佳示例中可以进一步配置为:推送巡检策略时,还包括以下步骤,
72、剔除修复成功率低于预设成功率阈值的所述巡检策略。
73、本技术在一较佳示例中可以进一步配置为:还包括以下步骤,
74、执行所述巡检策略,直至所述协议巡检、所述业务应用巡检、所述关键能力巡检和所述通用服务巡检恢复正常状态。
75、第三方面,本技术提供一种计算机设备。
76、本技术是通过以下技术方案得以实现的:
77、一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一种应用安全巡检方法的步骤。
78、第四方面,本技术提供一种计算机可读存储介质。
79、本技术是通过以下技术方案得以实现的:
80、一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一种应用安全巡检方法的步骤。
81、综上所述,与现有技术相比,本技术提供的技术方案带来的有益效果至少包括:
82、通过设计由上至下的预警层、巡检层、接口层和数据层,定制化巡检系统;其中,数据层用于提供应用安全巡检涉及的软件和硬件资源数据;接口层用于接收巡检层下发的采集任务,对数据层的数据进行采集,并向巡检层反馈采集结果;巡检层用于接收操作指令进行应用安全巡检,包括基于底层通讯协议和自定义协议进行协议巡检,对业务应用自定义业务应用巡检,对关键业务能力进行关键能力巡检,对预设巡检参数进行通用服务巡检,以针对不同的应用场景定制化巡检方式,增强应用安全巡检的适用性,更能适应实际的应用巡检需求,使得应用安全巡检的检测精度更高;预警层用于对巡检过程发现的问题进行告警,有利于及时提醒运维管理人员对巡检问题进行确认与检查,辅助运维管理人员进行故障检修,有利于更快解决巡检发现的故障问题。